【问题标题】:MS Access Database insert values on a column using vba and sql queryMS Access 数据库使用 vba 和 sql 查询在列上插入值
【发布时间】:2020-05-15 22:58:52
【问题描述】:

有没有办法使用 VBA 和 SQL 查询将列添加到 MS Access 数据库中,然后使用其他列中的公式插入值。

例如,我想创建一个列employee,它应该对所有记录都有计算值。我想在employee 字段中使用LEFT(col2, 3)

这是我的代码:

Sub createcolumn()
    Dim objAccess As Object
    Set objAccess = CreateObject("Access.Application")
    Call objAccess.OpenCurrentDatabase("H:\VBA\Array Practice\Database1array.accdb")
    objAccess.CurrentProject.Connection.Execute ("ALTER TABLE Company ADD COLUMN employee CHAR ")
End Sub
Sub insertvalues()
    Dim objAccess As Object
    Set objAccess = CreateObject("Access.Application")
    Call objAccess.OpenCurrentDatabase("H:\VBA\Array Practice\Database1array.accdb")
    objAccess.CurrentProject.Connection.Execute "INSERT INTO Employee (Gross) VALUES LEFT([full_name], 3)"
End Sub

我能够创建一个新列,但无法插入值。

【问题讨论】:

  • 我不确定我的 sql 查询是否会运行,是否有可能这样做并创建列

标签: sql vba ms-access


【解决方案1】:

您可以使用列 FULL_NAME 直接更新表,而不是插入。我已经测试了以下代码并且它正在运行。

Sub test()
Dim dbs As Database
Set dbs = OpenDatabase("Database1.accdb")  
dbs.Execute "UPDATE EMPLOYEE SET GROSS=LEFT(FULL_NAME, 3)"
dbs.Close
End Sub

【讨论】:

  • 谢谢。如果您觉得有帮助,请为答案投票。
【解决方案2】:

您在名为 Company 的表中添加了一列,但您正试图将值插入到名为 employee 的表中。

如果表名为 company 作为记录,则需要一条更新语句将值添加到新列员工中,但如果表没有任何记录,则可以使用插入语句将值添加到员工中字段。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    相关资源
    最近更新 更多