函数调用的VBA编译错误

时间:2017-09-08 20:57:52

标签: sql string vba ms-access

所以我试图在我调用的函数中运行这个SQL脚本,并且它给了我一个"编译错误:需要对象"当我试图运行它时!

代码调用函数

Private Sub cmdLogin_Click()

   Call Load_Username(Username)

End Sub

正在调用的函数

Private Sub Load_Username(Text As String)

    Dim SQL As String

    Set SQL = "UPDATE tbleUsername " & _
              "SET Username = '" & Text & "' " & _
              "WHERE ID = 1"

    DoCmd.RunSQL SQL

End Sub

2 个答案:

答案 0 :(得分:3)

Dim SQL As String
Set SQL = "string literal"

您无法使用Set分配字符串文字。使用Set分配对象引用。该分配是非法的,因为需要一个对象。因此,对象需要

两种可能的修复方法:

  1. 删除Set关键字并使用精彩的隐式值赋值语法。
  2. Set关键字替换为过时的Let关键字,以获取长期不推荐使用的显式值赋值语法。仅建议,因为我发现您也使用了已弃用的Call关键字。

答案 1 :(得分:-1)

我认为您应该在Username

之前定义变量call function LoadUsername(UserName)