VBA-SQL更新与列匹配的行

VBA-SQL更新与列匹配的行,sql,ms-access,vba,Sql,Ms Access,Vba,我正在使用MS Access,目前正在使用VBA,现在有两个表。我正在尝试从一个表插入/更新另一个表中的行。区别在于一个表的数据是行方向的,另一个是列方向的,这是第一个表(表A),第一行作为标题: Item_Num Cost YearMonth 1 2 201101 2 5 201102 Item_Num 201101 201102 201103 201104 ... 1 2 2 2

我正在使用MS Access,目前正在使用VBA,现在有两个表。我正在尝试从一个表插入/更新另一个表中的行。区别在于一个表的数据是行方向的,另一个是列方向的,这是第一个表(表A),第一行作为标题:

Item_Num  Cost  YearMonth
1         2     201101
2         5     201102
Item_Num  201101  201102  201103  201104  ...
1         2       2       2       2
2         1       5       5       5
下面是我希望以第一行作为标题更新此表(表B)的方式:

Item_Num  Cost  YearMonth
1         2     201101
2         5     201102
Item_Num  201101  201102  201103  201104  ...
1         2       2       2       2
2         1       5       5       5
在表A中,2011年1月是第1项2的成本。因此,表B将于2011年更新101,并于2011年更新第1项(至最后一年月栏),费用为2


我已经能够更新它出现的第一个YearMonth(在上一个示例中为201101),但似乎无法获得其余的列。

我似乎已经得到了它。我决定创建一个临时表来存储我想为表B更新的值,这有点混乱,但它可以工作。

除了表a的“历史”透视之外,表B还包含什么?为什么不在Access中创建一个透视表报表/查询来动态地重新创建表B?它基本上与表a具有相同的列(Item_Num和一些其他唯一标识符)。您是指Excel中的数据透视表报表还是Access中有方法?请查看Access中的交叉表查询。哦,是的,它不完全是历史数据,实际上用于未来/预测。我在这个例子中使用了历史年份月份。例如,有人会在201201以2的成本更新表A中的项目。那么对于201201、201202等列,表B的该项成本为2。但是,用户通常不会为每个YearMonth输入成本,因此YearMonth列中存在漏洞。