0

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

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

有什么想法会有所帮助吗?

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

INSERT INTO masterTable SELECT * FROM siteTable

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

感谢您的帮助,
保罗

4

1 回答 1

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

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

希望这可以帮助

于 2013-11-06T02:20:16.807 回答