访问VBA-使用实际表的名称将新列添加到现有表

时间:2018-12-12 11:04:35

标签: vba ms-access

我已经导入了各种表-WIP_100_AGR_USERS,WIP_100_USR06,WBP_100_USR02及其真实名称,这些名称是从SAP下载的。现在,我需要在特定表中的所有其他记录旁边添加“ SYSTEM_NO”列,该列将是通过VBA for ACCESS使用表的名称。

例如我有表WIP_100_USR06,所以结果将是:

AGR NAME| SYSTEM NO
________|______________
ashkjas | WIP_100_USR_06
asdjhjh | WIP_100_USR_06

谢谢!

1 个答案:

答案 0 :(得分:1)

如果没有一个表已经有一个名为SYSTEM NO的字段,那么这应该起作用:

Sub InsertNameField()

    Dim tdf As DAO.TableDef

    For Each tdf In CurrentDb.TableDefs
        If Left(tdf.Name, 4) <> "MSys" And Left(tdf.Name, 1) <> "~" Then
            CurrentDb.Execute "ALTER TABLE [" & tdf.Name & _
                "] ADD COLUMN [SYSTEM NO] TEXT(255)", dbFailOnError

            CurrentDb.Execute "UPDATE [" & tdf.Name & _
                "] SET [SYSTEM NO] = '" & tdf.Name & "'", dbFailOnError

        End If
    Next tdf

    MsgBox "Finished."

End Sub

NB 首先对数据库副本进行测试。