编译错误:VBA 中需要访问的函数或变量
Posted
技术标签:
【中文标题】编译错误:VBA 中需要访问的函数或变量【英文标题】:Compile Error: Expected function or variable in VBA for access 【发布时间】:2015-03-02 18:04:55 【问题描述】:我对 VBA 几乎一无所知,但我正在尝试修改应用程序以连接到 mysql 数据库。
以下代码在rstProjets.Open
处产生编译错误,我似乎找不到原因。
Public mysqlConn As ADODB.Connection
Private Sub cmdUpdate_Click()
Dim rstProjets As ADODB.Recordset
ConnectMySQL
Set rstProjets = rstProjets.Open("SELECT * FROM subventions LIMIT 5", mysqlConn)
With rstProjets
If Not .EOF And Not .BOF Then
.MoveFirst
Do While Not .EOF
MsgBox "Subventions:" & rstProjets![pin], , "Subvention ajoutée"
.MoveNext
Loop
Else
MsgBox "Aucune données à mettre à jour !", , "LVMB"
End If
.Close
End With
mysqlConn.Close
End Sub
Private Sub ConnectMySQL()
Set mysqlConn = New ADODB.Connection
mysqlConn.Open "DRIVER=MySQL ODBC 5.3 Unicode Driver;" & _
"SERVER=127.0.0.1;" & _
"DATABASE=database;" & _
"USER=root;" & _
"PASSWORD=;" & _
"Option=0"
End Sub
【问题讨论】:
知道 where 和 what 编译错误会很有用:) 当我点击一个按钮时,它会触发这个子,我得到的只是这条消息:编译错误:预期的函数或变量 运行调试->从 VB 编辑器的主菜单编译。当触发编译错误时,它将突出显示代码中的某些内容。当您收到编译错误时突出显示的是什么? 编译错误应该突出显示编译器编译失败的行。你能告诉我们是哪条线吗? (很可能是ConnectMySQL
(第三行代码),这是一个来自其他地方的宏,您没有包含在项目中)。
第一行突出显示:Private Sub cmdUpdate_Click()。 ConnectMySQL 已正确包含在内。如果我删除 sub 中的代码并用 MsgBox 替换它,则不会出现编译错误。
【参考方案1】:
将您的rstProjets 对象变量设置为New ADODB.Recordset
,然后调用其.Open
方法。
Dim rstProjets As ADODB.Recordset
ConnectMySQL
Set rstProjets = New ADODB.Recordset
rstProjets.Open "SELECT * FROM subventions LIMIT 5", mysqlConn
【讨论】:
以上是关于编译错误:VBA 中需要访问的函数或变量的主要内容,如果未能解决你的问题,请参考以下文章