好的,我在Access数据库中有近200个表。表格是植物物种丰富数据,我想将它们组合成一个主数据文件。每个表包含基本相同的物种列;然而,许多拼写略有不同。
当我在MS Access中运行SQL查询时,它不会让我相互追加表,因为字段名称的拼写略有不同。
任何有用的想法?
我正在运行的查询是追加查询:
INSERT INTO masterTable SELECT * FROM siteTable
并且,作为示例,字段名称的差异非常小 (例如“Spp.A”vs“SppA”或“SpeciesOne”vs“Species1”)
感谢您的帮助,
保罗
答案 0 :(得分:0)
你需要使用vba,你还需要更改我在masterTable中使用的列名,在我的例子中只是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
我认为这应该有效。 (我希望没有语法错误,因为我没有测试它,但逻辑并不完全是火箭科学)
希望这有帮助