一个ADO问题,我想让一个ADO.CONNECTION在两个窗体上传递,但总是传不过去!!!!
我的代码:
窗体1(FORM1)
Public cona1 As New ADODB.ConnectionPrivate Sub Command1_Click()
Dim cona1 As New ADODB.Connection        
cona1.Provider = "Microsoft.Jet.OLEDB.4.0" 
cona1.Open "Data Source=c:\ss.mdb;Jet OLEDB:Database Password=ldp;Persist Security Info=False"
   
   
Dim reo1 As New ADODB.Recordset
reo1.Open "select * from [SS1] where [ID]='" & Text1.Text & "'", cona1, 3, 2
Form2.Show
End Sub窗体2(FORM2)Private Sub a_Click()
Dim xu As New ADODB.Recordsetxu.Open "select * from [ss1]", Form1.cona1, 3, 2
End Sub提示:在一个已关闭或无效的连接上对象操作不被允许
设置断点Form1.cona1=“”
怎么会呢???

解决方案 »

  1.   

    在模塊里這樣寫:
    Public cona1 As New ADODB.Connection
    cona1.Provider = "Microsoft.Jet.OLEDB.4.0" 
    cona1.Open "Data Source=c:\ss.mdb;Jet OLEDB:Database Password=ldp;Persist Security Info=False"
    然后在窗体1和2中直接調用
      

  2.   

    删除Private Sub Command1_Click()下的
    Dim cona1 As New ADODB.Connection   这一句
      

  3.   

    模块中这样写的
    Public cona1 As New ADODB.Connection
    cona1.Provider = "Microsoft.Jet.OLEDB.4.0"
    cona1.Open "Data Source=c:\ss.mdb;Jet OLEDB:Database Password=pianopan412424;Persist Security Info=False"在第2行高亮
    提示“无效外部过程”
      

  4.   

    可以封装成类
    或者防到模块里Public cona1 As ADODB.ConnectionPrivate Sub Command1_Click()
    set cona1 = New ADODB.Connection        
    cona1.Provider = "Microsoft.Jet.OLEDB.4.0" 
    cona1.Open "Data Source=c:\ss.mdb;Jet OLEDB:Database Password=ldp;Persist Security Info=False"
      

  5.   

    Public mCnn As ADODB.ConnectionPublic Sub ConnectDB(ByVal ConnectionString As String, ByVal Options As Long)
      On Error GoTo ErrHandler
      If mCnn Is Nothing Then Set mCnn = New ADODB.Connection
      mCnn.ConnectionString = ConnectionString
      mCnn.Open ConnectionString:=ConnectionString, Options:=Options
      Exit Sub
    ErrHandler:
      Err.Raise Err.Number
    End Sub
      

  6.   

    Public cona1 As New ADODB.Connection
    strDBPass=App.Path + "\ss.mdb;Jet OLEDB:Database Password=pianopan412424;"
    cona1.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPass
      

  7.   

    sorry,忘記定義strDBPass
    Public cona1 As New ADODB.Connection
    Dim strSQLPass As String
    strDBPass=App.Path + "\ss.mdb;Jet OLEDB:Database Password=pianopan412424;"
    cona1.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPass
      

  8.   

    Private Sub Command1_Click()Dim cona1 As New ADODB.Connection   'zsgzsgzsg说的对,这一句要删除  
          cona1.Provider = "Microsoft.Jet.OLEDB.4.0" 
    cona1.Open "Data Source=c:\ss.mdb;Jet OLEDB:Database Password=ldp;Persist Security Info=False"
       
       
    Dim reo1 As New ADODB.Recordset
    reo1.Open "select * from [SS1] where [ID]='" & Text1.Text & "'", cona1, 3, 2
    Form2.Show
    End Sub
      

  9.   

    在模块中写吧
    Public cona1 As New ADODB.Connection
    cona1.Provider = "Microsoft.Jet.OLEDB.4.0" 
    cona1.Open "Data Source=c:\ss.mdb;Jet OLEDB:Database Password=ldp;Persist Security Info=False"
    然后你想在哪个窗体中调用,你就去调用去