数据库为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

解决方案 »

  1.   

    删除一般这样写:
    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 )就是刷新了
      

  2.   

    我的listboxdisplsy过程可以达到listbox控件的更新过程.
    --------
    我问错了,本意是,要如何进行了delete,update,insert into 这些 sql语句?
    都不用rs作为recordset可以进行吗?
    都用cn作为connection并用execute??
    ----
    我在公共模块有定义了一个g_conn作为connection!
    但是g_conn.execute(sql语句)会出错.
    所以我才改用重新定议了一个cn,rs.
      

  3.   

    还有,我想知道.
    "rs.Close-----------------------------这一句出错。"
    这一句为什么会出错???
      

  4.   

    rs.Open rsStr, cn
    rs.Close-----------------------------这一句出错。因为rsStr是删除语句,所以执行后,rs的状态并不是打开的,所以关闭它时会出错,可以这样写:rs.Open rsStr, cn
    If rs.State = adStateOpen Then rs.Close
      

  5.   

    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 = nothinglistboxDisplayEnd SubPrivate 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, cnListName.ClearDo Until rs.EOF
        tempstr = rs("name")
        ListName.AddItem tempstr
        rs.MoveNext
    Loop
    rs.Close
    set rs = nothing
    cn.Close
    set cn = nothing
    End Sub