Access SQL中的字段名称和附加文件的问题

时间:2013-11-05 22:32:01

标签: sql ms-access-2007

好的,我在Access数据库中有近200个表。表格是植物物种丰富数据,我想将它们组合成一个主数据文件。每个表包含基本相同的物种列;然而,许多拼写略有不同。

当我在MS Access中运行SQL查询时,它不会让我相互追加表,因为字段名称的拼写略有不同。

任何有用的想法?

我正在运行的查询是追加查询:

INSERT INTO masterTable SELECT * FROM siteTable

并且,作为示例,字段名称的差异非常小 (例如“Spp.A”vs“SppA”或“SpeciesOne”vs“Species1”)

感谢您的帮助,
保罗

1 个答案:

答案 0 :(得分:0)

你需要使用vba,你还需要更改我在masterTable中使用的列名,在我的例子中只是column1,column2& column3,并在几个地方设置最大列索引(我已经写了一些注释,所以你可以看到需要更改的内容)。

如果您通常不使用vb​​a,请使用按钮创建表单,然后单击按钮&将此代码放入其中,然后打开表单并单击按钮。

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

我认为这应该有效。 (我希望没有语法错误,因为我没有测试它,但逻辑并不完全是火箭科学)

希望这有帮助