将 Dim mycnn As Connection 放在 Option Explicit 下面
其他 Dim mycnn As Connection  去掉就可以了

解决方案 »

  1.   

    改为:  Private Sub Command1_Click()Dim mycnn As ADODB.Connection
      Dim strCnn As String
      strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\bus.mdb;Persist Security Info=False"
      Set mycnn = New ADODB.Connection
      mycnn.Open strCnnDim rst As New ADODB.Recordset, sql As String
    sql = "select * from 地名数据库 where 名称='" & Text1.Text & "'"
    rst.Open sql, mycnn,adOpenKeyset
    If Not rst.EOF Then
       Text2.Text = rst.Fields("名称")
    End If
    rst.Close
    Set rst = NothingEnd Sub
      

  2.   

    mycnn.Open strCnn 这句是否已经正确连接了数据库? 监视一下mycnn对象的状态建议加上错误处理语句,显示错误信息
    On error goto ..
      

  3.   

    哦,我知道了,你应该把
    Dim mycnn As Connection 定义成窗体变量,让它在整个窗体中生效========================
    Option Explicit
    Dim mycnn As ADODB.Connection '应该定义到这里
    Private Sub Form_Load()
      Dim strCnn As String
      strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\bus.mdb;Persist Security Info=False"
      Set mycnn = New ADODB.Connection
      mycnn.Open strCnn
    End SubPrivate Sub Command1_Click() 
    'Dim mycnn As Connection 这里就不要再定义了
    Dim rst As New ADODB.Recordset, sql As String
    sql = "select * from 地名数据库 where 名称='" & Text1.Text & "'"
    rst.Open sql, mycnn,adOpenKeyset
    If Not rst.EOF Then
       Text2.Text = rst.Fields("名称")
    End If
    rst.Close
    Set rst = Nothing
    End Sub
      

  4.   

    记得在执行那句之前加一句if rst.state=adStateClosed then rst.Open 这样就避免勒问题,同样在使用数据环境设计器的时候也会用到