2016-12-01 31 views
0

我有一个表的数据库,每个表包含两列,第一个是代码,第二个是数量。这些表格是从每天创建的数据中提取的,如果某个代码由该日期的外部事件触发,则该代码将包含特定日期的数据。对于例如对于2015年10月2日一天的表是这样的:在Access中通过vba/sql连接多个表

Code 2015-10-02 
1  321.23 
2  3442.13 
3  679.2 
4  6201.4 

所以每个表都有相同的第一列(代码),但代码的每一天都会有所不同。有些日子,我们可能会触发不同的代码,比前一天(首次触发)或前一天触发的代码不同,但金额不同。我想创建表的样子:

Code 2015-10-02 2015-10-03 2015-10-04 .... 
1 321.23  0   0   
2 3442.13 0   10.42 
3 679.2  41.2  0 
4 294.12  41.31  1042.12 
5 0   0   371.14 
. 
. 

我知道我可以参加所有的表,但我想任何新的代码为每个前几天的代码是不添加为好,假设0触发。 有没有一种简单的方法可以通过VBA/SQL来实现?

谢谢

+0

您希望每次运行vba代码时添加一列? – Kelaref

+0

是的,对应于我加入的表中的列的列。我基本上是将单个表转换为一个二维表,其中第一列将包括在该期间触发的所有代码,以及随后的列(名称对应于日期)由每天的“金额”组成。 – naiminp

+1

访问是一个关系数据库,使用它时,你应该遵循你的表的一些设计规则。在网上搜索“数据库标准化”(最终标准化)。您应该重新设计您的数据库的列以包含日期 – Kelaref

回答

3

Nooo。这不是数据库的工作方式。

你需要一个表3列,就像这样:

+------+------------+---------+ 
| Code | Date | Amount | 
+------+------------+---------+ 
| 1 | 2015-10-02 | 321.23 | 
| 2 | 2015-10-02 | 3442.13 | 
| 3 | 2015-10-02 | 679.2 | 
| 4 | 2015-10-02 | 6201.4 | 
| 3 | 2015-10-03 | 41.2 | 
+------+------------+---------+ 

代码+日期是主键。

然后,您可以使用交叉表查询(使用向导)获取代码与日期的矩阵。

+0

我明白你们在说什么,所以我改变了表格的格式,把日期作为字段而不是列标题。非常感谢交叉表的想法,它的工作方式就像一个美食。 – naiminp

+0

对穷人的初步建设道歉。 – naiminp

+0

虽然我的确在考虑链接http://www.nooooooooooooooo.com/,但并不需要道歉。 :)我们都在这里学习。很高兴解决方案适合你。 @naiminp – Andre