调用VBA过程 - 错误缺失=
问题描述:
我试图调用一个名为Ins_to_temp的VBA过程,但它不起作用。奇怪,因为Ins_to_temp是从另一个过程的模型构建的:Truncate_table工作正常!调用VBA过程 - 错误缺失=
你能帮我理解为什么这给出了一行“Ins_to_temp(x,y,z)”的错误 - 它说缺少一个“=”! (好像它是一个功能,但它显然是一个过程)
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
strQ = "insert into " & tbl1 & " (select * from " & tbl2 & " where id = '" & idx & "')"
rstRec.Open strQ, objCon, adOpenDynamic, adLockOptimistic
End Sub
Sub Test()
Ins_to_temp("temp_clients","clients","202")
End Sub
为参考,在这里是不会工作的程序:
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(“科尔” ) 谢谢
答
什么关于这个,它工作吗?
Sub Test()
Ins_to_temp tbl1:="temp_clients", tbl2:="clients", idx:="202"
End Sub
+0
有趣的是,我最初尝试过,但与括号!我也会尝试这个变体,肯定会起作用。谢谢! – Sam 2013-03-14 14:18:49
答
你的问题是一个错字:
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
去掉括号,即称其为'Ins_to_temp“temp_clients”,“客户”,“202”' – 2013-03-12 07:57:50
的'插入into'只有当TBL1工作,TBL2具有完全相同的列在同一订购! – 2013-03-12 08:04:07
谢谢你们,是的,删除括号取得了诀窍,我简直不敢相信,谢谢!但是截断过程与括号一起使用并不奇怪吗?所以我猜测,也许可以在有一个参数的时候放上括号,但是当你有几个语法规则时可以放入括号。惊人。 – Sam 2013-03-12 08:07:17