我在做向数据库添加数据的时候,在模块里已经定义如下:
Public conn As ADODB.Connection
Public cmd As ADODB.Command
Public rs As ADODB.Recordset
Public str_conn As String
Public strsql As String
Sub main()str_conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\book_manage_system\bms.mdb;Persist Security Info=False"
Set conn = New ADODB.Connection
Set cmd = New ADODB.Command
Set rs = New ADODB.Recordset
conn.open str_conn
frmStart.ShowEnd Sub
但是在窗体里运行如下程序,提示conn变量未设置,请问为什么?
Private Sub add_user_Click()
Set rs = New ADODB.Recordset
conn.open str_conn
rs.open "登陆信息", conn, adOpenKeyset, adLockPessimistic, adCmdTable
   strText1 = Trim(Text1.Text)
   strText2 = Trim(Text2.Text)
   strText3 = Trim(Text3.Text)
   strText4 = Trim(Text4.Text)
   strstrCombo1 = Trim(Combo1.Text)
   strDTPicker1 = Trim(DTPicker1.Value)
    With rs
    .AddNew
    rs!姓名 = strText1
    rs!卡号 = strText2
    rs!用户名 = strText3
    rs!密码 = strText4
    rs!权限 = strCombo1
    rs!创建日期 = strDTPicker1
    .update
   End With
rs.Close
End Sub
这里,我想问的是,是不是在模块里定义了,在各个窗体里就直接可以调用?谢谢各位大虾了

解决方案 »

  1.   

    conn.open str_conn模块里打開,窗口中直接用就行了,不用再open了
      

  2.   

    我将conn.open str_conn注释掉,提示conn=Nothing ,但是数据库明明已经连上,并打开了
    在此过程中要是重新连接并打开数据库就可以用
    郁闷中
      

  3.   

    我就怀疑,你怎么写的那么麻烦呢?
    Dim sStr As String
    Dim con As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Private Sub Command1_Click()
    Open App.Path + "\turkey.txt" For Input As #1
     While Not EOF(1)
      Input #1, sStr
      rs.AddNew
      rs(0) = sStr
     Wend
      rs.Update
      rs.Close
    End SubPrivate Sub Form_Load()
     mdbPath = App.Path + "\file.mdb"
     con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mdbPath & ";Persist Security Info=False"
     rs.Open "select * from data", con, adOpenDynamic, adLockOptimistic
    End Sub
    ***************************
    Dim sStr As String
    Dim con As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Private Sub Command1_Click()
    Open App.Path + "\turkey.txt" For Input As #1
     While Not EOF(1)
      DoEvents
      Input #1, sStr
      rs.AddNew
      rs(0) = sStr
     Wend
      rs.Update
      rs.Close
    End SubPrivate Sub Command2_Click()
    Open App.Path + "\turkey.txt" For Output As #1
     For i = 1 To 50000
      DoEvents
      Write #1, i
     Next i
    Close #1
    End SubPrivate Sub Form_Load()
     mdbPath = App.Path + "\file.mdb"
     con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mdbPath & ";Persist Security Info=False"
     rs.Open "select * from data", con, adOpenDynamic, adLockOptimistic
    End Sub
      

  4.   

    将conn.open str_conn改为下面的看看
    conn.connectionstring=str_conn
    conn.CursorLocation =adUseClient
    conn.open