调用VBA过程-缺少错误=
我试图调用一个名为Ins_to_temp的VBA过程,但它不起作用。奇怪的是,Ins_to_temp是根据另一个过程的模型构建的:截断确实有效的表 你能帮我理解为什么在“Ins_to_temp(x,y,z)”行出现错误吗?它说缺少一个“=”!(好像这是一个函数,但显然是一个过程) 作为参考,以下是一个有效的程序:调用VBA过程-缺少错误=,vba,excel-2007,Vba,Excel 2007,我试图调用一个名为Ins_to_temp的VBA过程,但它不起作用。奇怪的是,Ins_to_temp是根据另一个过程的模型构建的:截断确实有效的表 你能帮我理解为什么在“Ins_to_temp(x,y,z)”行出现错误吗?它说缺少一个“=”!(好像这是一个函数,但显然是一个过程) 作为参考,以下是一个有效的程序: Sub Truncate_table(tbl1 As String) Connect Dim strQ As String Set rstR = New ADO
Sub Truncate_table(tbl1 As String)
Connect
Dim strQ As String
Set rstR = New ADODB.Recordset
rstR.CursorType = adOpenStatic
strQ = "DELETE FROM " & tbl1
rstR.Open strQ, objCon, adOpenDynamic, adLockOptimistic
End Sub
我可以称之为:Truncate_table(“coll”)
谢谢您的问题是打字错误:
Sub Ins_to_temp(tbl1 As String, tbl2 As String, idx As String)
Connect
Dim strQ As String
Set rstR = New ADODB.Recordset
rstR.CursorType = adOpenStatic
strQry = "insert into " & tbl1 & " (select * from " & tbl2 & " where id = '" & idx & "')"
' the line above should be
strQ = "insert into " & tbl1 & " (select * from " & tbl2 & " where id = '" & idx & "')"
rstRec.Open strQ, objCon, adOpenDynamic, adLockOptimistic
End Sub
那么这个呢,有用吗
Sub Test()
Ins_to_temp tbl1:="temp_clients", tbl2:="clients", idx:="202"
End Sub
删除括号,即将其称为
Ins\u to_temp“temp\u clients”、“clients”、“202”
如果tbl1和tbl2的列顺序完全相同,则“insert-in”只能工作!谢谢你们两位,是的,去掉支架就成功了,我真不敢相信,谢谢!但是truncate过程使用括号不是很奇怪吗?所以我猜,当你有一个参数时,放括号是可以的,但由于语法规则,当你有几个参数时,放括号是不行的?令人惊讶的是,关于()
对过程调用的影响的解释,请看这里。我在这里写问题时打错了,但最初代码没有包含它,所以应该是其他内容。谢谢。好的,我想首先要检查的是错误是来自VBA还是来自查询。如果手动键入SQL字符串,是否会出现错误?谢谢,罗杰去掉括号后它就工作了:Ins_to_temp“temp_clients”,“clients”,“202”有趣的是,我一开始就试过了,但是用括号!我也会尝试这个变体,当然它会起作用。非常感谢。
Sub Test()
Ins_to_temp tbl1:="temp_clients", tbl2:="clients", idx:="202"
End Sub