我有一个关于在MS Access 2010中更新具有不同值的多行的问题。
Table 1: Food
ID | Favourite Food
1 | Apple
2 | Orange
3 | Pear
Table 2: New
ID | Favourite Food
1 | Watermelon
3 | Cherries
现在,单独执行它们看起来很简单(因为这只是一个例子)。但是,如果我有500行来更新1000条记录,我将如何同时执行其中的大量内容。
所以我想要做的是根据“新”表中的新值更新“食物”表。
如果有人能给我一些方向/语法以便我可以在MS Access 2010上测试它,我将不胜感激。如果这需要VBA,请提供一些示例,说明我应该如何以编程方式执行此操作,而不是手动声明 - 言。
谢谢!
ADDENDUM(REAL DATA)
Table: Competitors
Columns: CompetitorNo (PK), FirstName, LastName, Score, Ranking
query: FinalScore
Columns: CompetitorNo, Score, Ranking
在竞争对手表中,填写了除“分数”和“排名”之外的所有列。我们需要从FinalScore查询中获取值并将它们插入相关的竞争对手列中。
附录(查询简要说明)
Table: Competitors
Columns: CompetitorNo (PK), FirstName, LastName, Score, Ranking
Sample Data: AX1234, Simpson, Danny, <blank initially>, <blank initially>
Table: CompetitionRecord
Columns: EventNo (PK composite), CompetitorNo (PK composite), Timing, Bonus
Sample Data1: E01, AX1234, 14.4, 1
Sample Data2: E01, AB1938, 12.5, 0
Sample Data3: E01, BB1919, 13.0, 2
事件否指定唯一的事件ID 时间测量运行200米所需的时间。越少越好。 奖金可以3个值给出(0 - 取消资格,1 - 正常,2 - 例外)。具有特殊优势的竞争对手获得奖励积分(他们的时间减少5%)。
Query: FinalScore
Columns: CompetitorNo (PK), Score, Ranking
分数由胜利计算。例如,在上述事件(E01)中,有三个竞争对手。该活动的获胜者是BB1919。获胜者获得1分。失败者不会得到任何积分。那些被取消资格的人也没有得到任何积分。
此查询列出竞争对手及其累积分数(来自许多事件列表 - E01,E02,E03等),并在每次执行查询时计算排名列中的排名。 (例如,赢得最多200米事件的人将位于此列表的顶部。)
现在,我需要使用此信息更新参赛者表。查询相当复杂 - 包括所有分组,汇总,排名和诸如此类的东西。因此,我不得不创建多个查询来实现最终结果。
答案 0 :(得分:0)
怎么样:
UPDATE Food
INNER JOIN [New]
ON Food.ID=New.ID
SET Food.[Favourite Food] = New.[Favourite Food]