新疆最低分数线:谁能帮我看看这个VB代码错在哪,谢了.

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 20:52:23
Private Sub Command2_Click()
Dim sqlthree As String
If Text1.Text = "" Then
MsgBox "输入数据"
Exit Sub
Else
sqlthree = "delete * from tencent where 车牌 ='" + Text1.Text+ "'"
End If
Me.Adodc1.RecordSource = sqlthree
Me.Adodc1.Refresh
Me.DataGrid1.Refresh
End Sub
运行后数据库里相应的数据删除了,但是最后提示"关闭对象时,操作不被允许",然后"Me.Adodc1.Refresh"这行显示出错.我是用的VB6+ACCESS

RecordSource 不是这么用的, 既然你已经熟悉了SQL语言, 就可以考虑放弃使用数据绑定控件了.
dim cnn as adodb.connection
set cnn = new adodb.connection
cnn.open "your database connect string"
if (cnn.state = IS_OPENED) then ' 具体的枚举常数见参考
sqlthree = "delete * from tencent where [车牌] ='" + Text1.Text+ "'"
cnn.execute sqlthree
cnn.close
end if

另外, 使用连接字符串来形成SQL文本命令存在安全隐患(比如SQL注入), 建议你使用:
dim cmd as adodb.command
set cmd = new adodb.command
set cmd.activeconnection = cnn
cmd.commandtext = "delete * from tencent where [车牌]=?;"
cmd.commandtype = SQL_TEXT ' 具体的枚举常数见参考
cmd.execute , Text1.Text, adExecuteNoRecords