我在Access 2003 VBA中有一个包含164列的表,但我得到的数据有181列,未来它可能会变大。 我需要知道如何调整表的大小以在运行时添加额外的列 我知道如何检查我需要多少列,所以我只需要知道如何调整自己的表格。
感谢
答案 0 :(得分:3)
另一种选择;而不是有一个包含大量列的“ short-fat </ em>”表,有一个包含大量行的“ tall-skinny ”表:
<强>短发强>
ID
FirstName
LastName
...
Amount
1 Joe Smith ... $123
2 Bob Roberts ... $214
3 Jim Black ... $500
<强> TALL-瘦:强>
RecordID
FieldNumber
FieldName
FieldValue
1 1 FirstName Joe
1 2 LastName Smith
...
1 n Amount $123
2 1 FirstName Bob
2 2 Lastname Roberts
...
2 n Amount $214
3 1 FirstName Jim
3 2 LastName Black
...
3 n Amount $500
如果你有一个不需要与其他表连接的“独立”表,这是很好的,否则你就会陷入痛苦的世界。
答案 1 :(得分:3)
没有太多基础,但这听起来像是一个设计问题。我会查看驱动这些附加列的数据,看看是否可以创建一个列来存储它。
如果数据真的那么不稳定,我会考虑创建一个以Key, FieldName, FieldValue
为列的新表。这样,每次数据更改时,您都不必更改报表,查询和导入例程。
答案 2 :(得分:2)
我没有评论的声誉,但是为了扩展短发和长篇大论,我认为从一开始就是一个好主意。然后,您可以使用具有旧字段名称作为列标题的字段创建交叉表查询。然后从该查询中写下一个make-table,你将获得你的表。
答案 3 :(得分:1)
可能是here。我可能会根据旧表创建一个新表,并使用数据源中的额外列。然后我将从两个数据源填充新表。如果没有其他原因,我会这样做,这意味着我在制作新数据时保持旧数据安全。
答案 4 :(得分:1)
如果您遇到这种糟糕的设计,可以根据需要使用SQL添加列:
strSQL="ALTER TABLE tblTable ADD COLUMN NewCol Text (25)"
CurrentDB.Execute strSQL,dbFailOnError
或者您可以使用TableDef。
答案 5 :(得分:0)
问题是我无权更改设计 已经创建了完整的数据库,我的工作只是为了破坏csv数据的读取,但这些大坝...数据需要更多的colums而不是previos程序员所建议的 这就是为什么我不能只删除表 此外,大约有30或40个表,就像我在问题中所描述的那样 这就是为什么我要求某种算法来改变列数
但感谢快速的芒果
答案 6 :(得分:0)
那么您是否正在寻找改变MDB中表格的VB / VBA代码?这听起来像是你所追求的 - 基于传入数据自动化的东西。如果你没有MDB文件的权限,那将很难做到,但我认为你真正说的是你没有选择在Access中打开MDB并修改它。