提问人:kronos8111 提问时间:10/19/2023 最后编辑:June7kronos8111 更新时间:10/19/2023 访问量:72
访问 VBA 中的 DoCmd.RunSQL
DoCmd.RunSQL in access VBA
问:
我在私人潜艇中有以下内容,但我不知道为什么我无法让它工作。任何帮助将不胜感激。
Me.FirstRecordL 和 Me.LastRecordL 是命令按钮执行 sql 的相同形式的标签。如果我运行以下命令,它可以工作:(但它删除了整个表。 我只想删除 Me.FirstRecordL 和 Me.LastRecordL 之间的记录范围)
Private Sub RunSQL_Click()
DoCmd.RunSQL ("delete * from CTRTable")
End Sub
所以,我猜问题出在“ ' ”和 &,他们正在杀死我。我尝试了多种组合,但没有运气。
Private Sub RunSQL_Click()
DoCmd.RunSQL ("delete * from CTRTable where '[ctr #] >= & Me.FirstRecordL'" & "'[CTR #] <= & Me.LastRecordL'")
End Sub
我在多个论坛上尝试过,但没有运气。如果有人能帮我解决这个问题,我会很高兴的。
答:
2赞
June7
10/19/2023
#1
串联搞砸了。请记住,所有文字文本都在引号之间,变量在引号外连接。
还缺少 AND 运算符。
DoCmd.RunSQL ("DELETE FROM CTRTable " & _
"WHERE [ctr #] >='" & Me.FirstRecordL & "' AND [CTR #] <='" & Me.LastRecordL & "'")
或
DoCmd.RunSQL ("DELETE FROM CTRTable " & _
"WHERE [ctr #] BETWEEN '" & Me.FirstRecordL & "' AND '" & Me.LastRecordL & "'")
要避免弹出警告,请执行以下操作:
DoCmd.SetWarnings False
DoCmd.RunSQL ...
DoCmd.SetWarnings True
或使用:
CurrentDb.Execute "DELETE FROM CTRTable " & _
"WHERE [ctr #] BETWEEN '" & Me.FirstRecordL & "' AND '" & Me.LastRecordL & "'"
如果 [ctr #] 是数字字段,请不要使用撇号分隔符。
强烈建议不要在命名约定中使用空格或标点符号/特殊字符。最好是 CtrNum。
评论
0赞
kronos8111
10/19/2023
您好,感谢您的及时回复。我仍然收到运行时错误 438 对象不支持此属性或方法。可能会发生什么?
0赞
kronos8111
10/19/2023
此外,[CTR #] 是一个数字。那么我应该删除哪个撇号“或双撇号”?
0赞
June7
10/19/2023
单号是撇号,双号是引号。
0赞
kronos8111
10/19/2023
我仍然收到运行时错误 438 对象不支持此属性或方法。可能会发生什么?
0赞
June7
10/19/2023
SQL对我有用。FirstRecordL 和 LastRecordL 是文本框?我在其他评论中问过他们,你还没有回答。你的叙述说它们是标签,这没有意义。
评论