Vb6 如何修复对象关闭时不允许的此操作

Vb6 如何修复对象关闭时不允许的此操作,vb6,Vb6,列表项 如何修复此错误“对象关闭时不允许操作” 此选项用于在vb6的listview中添加和显示存储的数据 Dim connect As New ADODB.Connection Dim rs As New ADODB.Recordset Dim a As Integer Dim b As Integer Dim x As Long Dim c As String Option Explicit Private Sub Command1_Click() rs

列表项

如何修复此错误“对象关闭时不允许操作”

此选项用于在vb6的listview中添加和显示存储的数据

 Dim connect As New ADODB.Connection
  Dim rs As New ADODB.Recordset
  Dim a As Integer
  Dim b As Integer
  Dim x As Long
  Dim c As String
 Option Explicit

  Private Sub Command1_Click()
    rs.AddNew    'this line shows the error
    ado.Recordset.Fields("EMPID").Value = emp.Text
    ado.Recordset.Fields("DEPARTMENT") = Text2.Text
    ado.Recordset.Fields("EMPNAME") = Text1.Text
    ado.Recordset.Fields("TIMEIN") = DTPicker3.Value
    ado.Recordset.Fields("TIMEOUT") = DTPicker4.Value
    ado.Recordset.Fields("LOGDATE") = DTPicker2.Value
    rs.Update

  End Sub

     Private Sub Command2_Click()
           a = DateDiff("d", DTPicker1, DTPicker2)
     b = DateDiff("h", DTPicker3, DTPicker4)

     x = a * b
     c = x * 52.5
     Text7.Text = "Hours:" & x & " Days:" & a & "$ " & c
     End Sub

     Private Sub Form_Load()
      connect.Open _
    "Provider=Microsoft.ACE.OLEDB.12.0;Data 
    Source=C:\Users\MIS02\Desktop\FILE.accdb;Persist Security Info=False"


    With ListView1.ColumnHeaders
    .Add , , "EMPID", Width / 15, lvwColumnLeft
    .Add , , "DEPARTMENT", Width / 10, lvwColumnCenter
    .Add , , "EMPNAME", Width / 12, lvwColumnCenter
    .Add , , "TIMEIN", Width / 12, lvwColumnCenter
    .Add , , "TIMEOUT", Width / 12, lvwColumnCenter
    .Add , , "LOGDATE", Width / 10, lvwColumnCenter
    End With

      End Sub

Sub dbconnection()
connect.Open _
  "Provider=Microsoft.ACE.OLEDB.12.0;Data         
  Source=C:\Users\MIS02\Desktop\FILE.accdb;Persist Security Info=False"

      End Sub
     Sub loaddata()
      Dim list As ListItem
      ListView1.ListItems.Clear
      dbconnection
            rs.Open "Select *from Attendance", con, adOpenDynamic,                  
   adLockOptimistic

      Do Until rs.EOF
      Set list = ListView1.ListItems.Add(, , rs!Employee)
      list.SubItems(1) = rs!Department
      list.SubItems(2) = rs!Surename
      list.SubItems(3) = rs!FirstName
      list.SubItems(4) = rs!TimeIn
        list.Subitems(5)=rs!Timeout
      list.SubItems(6) = rs!DateRecord
      rs.MoveNext


Loop
=======================================================


我希望我可以在listview中存储和显示数据。

您将
connect
声明为连接,并且似乎倾向于使用它(因为您正在调用
dbconnection
方法)。但同时,您要传递
con
作为打开记录集的参数。此变量可能不存在,或者如果存在于全局级别-未正确初始化/打开。

您将
connect
声明为连接,并且似乎倾向于使用它(因为您正在调用
dbconnection
方法)。但同时,您要传递
con
作为打开记录集的参数。此变量可能不存在或存在于全局级别-未正确初始化/打开。

记录集
rs
似乎在子
loaddata
中打开。但是
loaddata
不会在发布的代码中的任何地方调用,因此当您尝试调用
rs.AddNew
时,我预计会出现“objectclosed”错误,而那些
ado.Recordset.Fields
引用将导致接下来的问题。我希望您打算将这些列值添加到刚刚添加到记录集
rs
的新记录中?请这样做:
rs.Fields(“blahblah”)
。您好,谢谢您的回复我将loaddata放入表单load中,但我的dbconnection中存在另一个错误相同的错误您打开连接对象
connect
两次,效率很低,但不应引发异常。
rs.open
调用使用的是
con
,它未在发布的代码中定义、创建或打开-我预计可能会引发异常或编译错误。记录集
rs
似乎在子
loaddata
中打开。但是
loaddata
不会在发布的代码中的任何地方调用,因此当您尝试调用
rs.AddNew
时,我预计会出现“objectclosed”错误,而那些
ado.Recordset.Fields
引用将导致接下来的问题。我希望您打算将这些列值添加到刚刚添加到记录集
rs
的新记录中?请这样做:
rs.Fields(“blahblah”)
。您好,谢谢您的回复我将loaddata放入表单load中,但我的dbconnection中存在另一个错误相同的错误您打开连接对象
connect
两次,效率很低,但不应引发异常。
rs.open
调用使用的是
con
,它未在发布的代码中定义、创建或打开-我预计可能会引发异常或编译错误。