注册 登录
编程论坛 VB6论坛

sql语句总是出现 语法错误(操作符丢失)在查询表达式‘[管段编号]’中

凛冬1 发布于 2020-03-14 17:51, 2552 次点击
求教各位 请问我这个究竟哪里错了???老是报错语法错误(操作符丢失)在查询表达式‘[管段编号]’中
Set rs = New ADODB.Recordset     '创建数据集对象的连接
sql = "delete from [设计计算] where  [管段编号]= " & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 0)      '删除某行指定项

rs.Open sql, conn, adOpenKeyset, adLockBatchOptimistic
6 回复
#2
xyxcc1772020-03-14 21:27
sql = "delete from  [设计计算]  where  [管段编号]='" & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 0) & "'"
conn.Execute(sql)
#3
凛冬12020-03-15 12:14

Set rs = New ADODB.Recordset     '创建数据集对象的连接

sql = "delete from [设计计算] where  [管段编号]=' " & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 0) & " ' "     '删除指定行

rs.Open sql, conn, adOpenKeyset, adLockBatchOptimistic

MSHFlexGrid1.RemoveItem MSHFlexGrid1.Row

我后面加了一句为啥删除之后再点查询,删除的东西又回来了?
#4
凛冬12020-03-15 12:26
回复 2楼 xyxcc177
Set rs = New ADODB.Recordset     '创建数据集对象的连接

sql = "delete from [设计计算] where  [管段编号]=' " & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 0) & " ' "     '删除指定行

rs.Open sql, conn, adOpenKeyset, adLockBatchOptimistic

MSHFlexGrid1.RemoveItem MSHFlexGrid1.Row

请问我后面加了一句为啥删除之后再点查询,删除的东西又回来了?
#5
show1472020-03-15 23:19
rs没有刷新
#6
凛冬12020-03-16 11:22
回复 5楼 show147
我加上Set MSHFlexGrid1.DataSource = rs之后显示Hierarchical FlexGrid不支持所要求的数据绑定类型
#7
show1472020-03-17 23:33
不是 MSHFlexgrid控件数据源问题,这个没问题,不用重新绑定。
你用rs 删除数据并没有真正写入数据库, 要在后面加上 rs.update  ,  这样才真正的在数据库里删掉了记录,MSHFlexgrid控件绑定了数据表的,你数据表变了,只要刷新MSHFlexgrid1就行了,不用再删除相应MSHFlexgrid1 对应的行,即在这里rs.update后再加上去MSHFlexgrid1.Refresh 就可以了。  
好久没用过ado对象了,比较喜欢用Adodc控件,不知道你sql这样写行不行,你先看看问题解决没,不行的话在帮你查下以前资料
1