请教Access中SQL的delete的用法

yzhcg25 2007-10-09 11:06:24
在VB中使用ADO控件连接Access,想删除表suspects中的CaseID为str1的记录,用delete老是出现编译错误,我的语句如下:
delete from suspects where CaseID=str1
会出现错误提示: suspects处缺少:语句结束
还有 delete * from suspects where CaseID=str1
delete * from suspects where CaseID='str1'
也都不行,错误光标就会移到*上,真是快崩溃了
求各位大侠指条明路啊!感激不尽啊!!!
...全文
给本帖投票
2155 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hngong01 2010-06-28
  • 打赏
  • 举报
回复
Private Sub Command1_Click()

Dim pubConn As New ADODB.Connection
Dim rsTable As New ADODB.Recordset

Set rsTable = New ADODB.Recordset
Set pubConn = New ADODB.Connection

pubConn.ConnectionString = "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;password=123;Initial Catalog=BuySaleStorage;Data Source=(local)"
pubConn.Open
rsTable.CursorLocation = adUseClient

Dim SQL As String

SQL = "delete from Goods where GoodsName='&Text2.Text&'"
rsTable.Open SQL, pubConn, adOpenKeyset, adLockOptimistic
Set rsTable = pubConn.Execute(SQL)
MsgBox ("删除成功"), vbOKOnly + vbExlamation, "删除成功!"
Unload Me

End Sub
csgsred 2007-10-12
  • 打赏
  • 举报
回复
别复制粘贴了,用手打上去吧!
yzhcg25 2007-10-10
  • 打赏
  • 举报
回复

多谢楼上兄台解答
但是把你代码放上去,第一行还是出现了错误,错误光标指在“;”上,缺少;语句结束
这又是为何啊?
期望赐教
of123 2007-10-10
  • 打赏
  • 举报
回复
你那样写当然不行。SQL 命令是传给数据库引擎的一个字符串参量:
Private Sub CmdDel_Click()
adodc2.Recordset.ActiveConnection.Execute "delete from suspects where CaseID='" & str1 & "'";
adodc2.Refresh
End Sub
yzhcg25 2007-10-10
  • 打赏
  • 举报
回复

那个表suspects跟adodc2绑定,用datagrid显示出来,我想用一个按钮把当前CaseID=str1的记录全部删掉,可是不知道怎么写语句:
private sub CmdDel_click()
delete from suspects where CaseID=str1;
adodc2.refresh
end sub

还请兄台言明该怎么改一下,感激不尽!
以前从没弄过这个,看教程上就这么说的啊。
vbman2003 2007-10-10
  • 打赏
  • 举报
回复
你还是贴上一点相关代码吧

----------------------------------------------
delete from suspects where CaseID=str1
adodc2.refresh
----------------------------------------------
如果你代码就是如上这样写的,那肯定是不正确的
  • 打赏
  • 举报
回复
---delete from fromsuspects where CaseID= '" & str1 & " '"
最后个 " '" --> "'" 多了个空格
delete from fromsuspects where CaseID= '" & str1 & "'"
yzhcg25 2007-10-10
  • 打赏
  • 举报
回复

我把最后那个“;”给去掉之后,没有了编译错误,但是达不到删除记录的效果,我还检验到str1此时确实如意,这是为什么啊?
vbman2003 2007-10-09
  • 打赏
  • 举报
回复
VB中,try :

delete from suspects where CaseID= 'str1'
南山明月 2007-10-09
  • 打赏
  • 举报
回复
delete * from suspects where CaseID="str1"
yzhcg25 2007-10-09
  • 打赏
  • 举报
回复

那个CaseID为了保险起见,我在Access里面设置成文本格式,str1就是输入的查询号的字符串变量,我想删除表suspects中全部满足CaseID为str1的记录:
delete from suspects where CaseID=str1
adodc2.refresh
会不会是delete语句要在特别的场所才能使呢?比如说在它之前要进行什么别的操作之类的,我不太懂,还请有使过delete的各位大侠透露点经验,小弟在此感激不尽!!!
yzhcg25 2007-10-09
  • 打赏
  • 举报
回复

多谢兄台热心建议!
那个str1是字符串变量,后来我把它改成记录里面存在的常量测试了一下,也出同样的问题,感觉根本不识别表名suspects一样,怎么都会错误光标都在suspects上,真是不知道问题出哪了
Fanks 2007-10-09
  • 打赏
  • 举报
回复
delete * from suspects where CaseID=" & str1
vbman2003 2007-10-09
  • 打赏
  • 举报
回复
你最好贴一点相关代码来分析一下
vbman2003 2007-10-09
  • 打赏
  • 举报
回复
错了

str1本身是变量还是字符串?
vbman2003 2007-10-09
  • 打赏
  • 举报
回复
str1中变量还是字符串?
yzhcg25 2007-10-09
  • 打赏
  • 举报
回复

楼上二位的方法我也试过,还是一样的出错提示,真是郁闷……

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧

手机看
关注公众号

关注公众号

客服 返回
顶部