Access SQL中的字段名和附加文件问题
好的,我在Access数据库中有将近200个表。这些表格是植物物种丰度数据,我想把它们合并成一个主数据文件。每个表包含基本相同的物种列;然而,许多单词的拼写略有不同 当我在MS Access中运行SQL查询时,它不允许我将表相互追加,因为字段名的拼写略有不同 有什么想法可以帮助你吗 我正在运行的查询是追加查询:Access SQL中的字段名和附加文件问题,sql,ms-access-2007,Sql,Ms Access 2007,好的,我在Access数据库中有将近200个表。这些表格是植物物种丰度数据,我想把它们合并成一个主数据文件。每个表包含基本相同的物种列;然而,许多单词的拼写略有不同 当我在MS Access中运行SQL查询时,它不允许我将表相互追加,因为字段名的拼写略有不同 有什么想法可以帮助你吗 我正在运行的查询是追加查询: INSERT INTO masterTable SELECT * FROM siteTable 例如,字段名之间的差异非常小 (例如,“Spp.A”与“SppA”或“SpeciesOn
INSERT INTO masterTable SELECT * FROM siteTable
例如,字段名之间的差异非常小(例如,“Spp.A”与“SppA”或“SpeciesOne”与“Species1”) 谢谢你的帮助,
Paul为此,您需要使用vba,还需要更改我在主表中使用的列名,在我的示例中,这些列名仅为column1、column2和column3,并在几个位置设置最大列索引(我插入了一些注释,以便您可以看到需要更改的内容) 如果您通常不使用vba,请创建一个带有按钮的窗体,并为该按钮创建一个单击事件&将此代码放入其中,然后打开窗体并单击该按钮
Dim db As Database
Dim tdf As TableDef
Dim ii As Long
dim sql as String
Set db = CurrentDb()
docmd.setwarnings false
For Each tdf In db.TableDefs
'change column list as required:
sql = "INSERT INTO masterTable (Column1, Column2, Column3) SELECT "
'change 2 to maximum column number - 1:
for ii = 0 to 2
sql = sql & tdf.Fields(ii).Name
'change 2 to maximum column number - 1 again:
if ii < 2 then
sql = sql & ","
end if
next
sql = sql & ")"
docmd.runsql sql
Next
docmd.setwarnings true
Dim db作为数据库
将tdf调暗为TableDef
只要
将sql设置为字符串
Set db=CurrentDb()
docmd.setwarnings错误
对于以db.TableDefs为单位的每个tdf
'根据需要更改列列表:
sql=“插入主表(第1列、第2列、第3列)选择”
'将2更改为最大列数-1:
对于ii=0到2
sql=sql&tdf.Fields(ii).名称
'再次将2更改为最大列数-1:
如果ii<2,则
sql=sql&“
如果结束
下一个
sql=sql&“
docmd.runsql
下一个
docmd.setwarnings true
我想这应该行得通。(我希望没有语法错误,因为我还没有测试过,但逻辑并不完全是火箭科学)
希望这有帮助您应该首先统一所有表字段名称。。。手工操作更好,真的吗?你的意思是更好的控制还是更好的努力?您是说我应该进入每个表并手动更改每个字段名?或者插入到主表(y1、y2、y3)中,从siteTable中选择x1、x2、x3;对于所有站点表,每次使用不同的x1、x2、x3:相同的工作量?如果站点表中的字段数量相同,顺序相同,即使名称不同,也会更简单。我认为这将需要更多的工作。不幸的是,这些字段的名称很长。谢谢你的帮助。