删除记录出错,关于sql,listbox的。
数据库为stockinfo2k.mdb,表为userinfo,字段为name
listname为text控件
Private Sub del()
Dim cn As Connection
Dim rs As Recordset
Dim cnStr As String
Dim rsStr As String
cnStr = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\db\StockInfo2k.mdb"
rsStr = "delete * from userinfo where name=" & "'" & Trim(ListName.Text) & "'"
Set cn = New Connection
Set rs = New Recordset
cn.CursorLocation = adUseClient
cn.Open cnStr
rs.Open rsStr, cn
rs.Close-----------------------------这一句出错。
cn.Close
End Sub
*********************************************************************************
另外,这个表是连接到listbox控件的。
进行了delete,update,insert into 这些 sql语句,要怎么才能刷新listbox上显示的记录.
我连接listbox的方法哪下:
Private Sub listboxDisplay()
Dim cn As Connection
Dim rs As Recordset
Dim tempstr As String
Dim cnStr As String
Dim rsStr As String
cnStr = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\db\StockInfo2k.mdb"
rsStr = "select name from userinfo"
Set cn = New Connection
Set rs = New Recordset
cn.CursorLocation = adUseClient
cn.Open cnStr
rs.Open rsStr, cn
Do Until rs.EOF
tempstr = rs("name")
ListName.AddItem tempstr
rs.MoveNext
Loop
rs.Close
cn.Close
End Sub
问题点数:20、回复次数:5Top
1 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-16 22:57:05 得分 10
删除一般这样写:
Private Sub del()
Dim cn As Connection
Dim cnStr As String
Dim rsStr As String
cnStr = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\db\StockInfo2k.mdb"
rsStr = "delete * from userinfo where name=" & "'" & Trim(ListName.Text) & "'"
Set cn = New Connection
cn.CursorLocation = adUseClient
cn.Open cnStr
cn.Execute rsStr
cn.Close
Set cn=Nothing
End Sub
进行了delete,update,insert into 这些 sql语句,要怎么才能刷新listbox上显示的记录.
------------------------------
先清除List的内容(list1.Clear ),再调用一下listboxDisplay()过程(Call listboxDisplay )就是刷新了
Top
2 楼tully(天涯)回复于 2006-03-17 08:32:26 得分 0
我的listboxdisplsy过程可以达到listbox控件的更新过程.
--------
我问错了,本意是,要如何进行了delete,update,insert into 这些 sql语句?
都不用rs作为recordset可以进行吗?
都用cn作为connection并用execute??
----
我在公共模块有定义了一个g_conn作为connection!
但是g_conn.execute(sql语句)会出错.
所以我才改用重新定议了一个cn,rs.
Top
3 楼tully(天涯)回复于 2006-03-17 08:33:32 得分 0
还有,我想知道.
"rs.Close-----------------------------这一句出错。"
这一句为什么会出错???
Top
4 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-17 09:16:28 得分 0
rs.Open rsStr, cn
rs.Close-----------------------------这一句出错。
因为rsStr是删除语句,所以执行后,rs的状态并不是打开的,所以关闭它时会出错,可以这样写:
rs.Open rsStr, cn
If rs.State = adStateOpen Then rs.CloseTop
5 楼of123()回复于 2006-03-17 10:39:08 得分 10
Delete, Insert Into, Select Into, Update 语句是不返回记录集的。所以不要用 recordset 对象。
Private Sub del()
Dim cn As Connection
Dim rs As Recordset
Dim cnStr As String
Dim rsStr As String
cnStr = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\db\StockInfo2k.mdb"
rsStr = "delete * from userinfo where name=" & "'" & Trim(ListName.Text) & "'"
Set cn = New Connection
cn.CursorLocation = adUseClient
cn.Open cnStr
cn.Execute rsStr
cn.Close
set cn = nothing
listboxDisplay
End Sub
Private Sub listboxDisplay()
Dim cn As Connection
Dim rs As Recordset
Dim tempstr As String
Dim cnStr As String
Dim rsStr As String
cnStr = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\db\StockInfo2k.mdb"
rsStr = "select name from userinfo"
Set cn = New Connection
Set rs = New Recordset
cn.CursorLocation = adUseClient
cn.Open cnStr
rs.Open rsStr, cn
ListName.Clear
Do Until rs.EOF
tempstr = rs("name")
ListName.AddItem tempstr
rs.MoveNext
Loop
rs.Close
set rs = nothing
cn.Close
set cn = nothing
End Sub
Top




