请教大侠!
在VB6中能打开ACCESS数据库,不能在DataGrid控件中显示数据(如在combobox控件中选雇员项或其它项,而在在DataGrid控件中不能显示相应数据)如果你知道原因,请你告诉我好吗?谢谢!!!我界面上设的控件有:Adodc1 ,DataGrid,
combobox ,四个Command控件:open  new  add  cancel

解决方案 »

  1.   

    Option Explicit
    Public conn As New ADODB.Connection
    Public rs As New ADODB.RecordsetPrivate Sub Form_Load()
     Dim strconn As String
     strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;Persist Security Info=False;Jet OLEDB:DataBase Password='123'"
     conn.CursorLocation = adUseClient
     conn.Open strconn
     
     If rs.State = 1 Then rs.Close
     rs.Open "select * from Phonebook", conn, 3, 3
     
     
     Set Me.DataGrid1.DataSource = rs
     rs.MoveFirst
     Do While Not rs.EOF
      Me.Combo1.AddItem rs("Name")
      rs.MoveNext
     Loop
    End Subconn.CursorLocation = adUseClient這句不能少照著copy
      

  2.   

    代码Private Sub Adodc1_Click()End SubPrivate Sub CommonDialog1_Click()End SubPrivate Sub Combo1_Change()
      '建立ADO Data控件与目标数据库的联接,并选择一个数据表,使其在DataGrid控件中显示
    '数据
      '在这里用了Microsoft.Jet.OLEDB.4.0。这也是实现Access2000数据库编程的关键地方。  Adodc1.RecordSource = "select * from " + Form1.Combo1.Text ' Form1.Combo1.Text
    '为表名
      Adodc1.Caption = Form1.CommonDialog1.FileName
      Adodc1.Refresh
      Me.DataGrid1.RefreshEnd SubPrivate Sub Command1_Click()
    Dim strOpenFileName As String
        On Error Resume Next      '错误处理
           '初始化文件名
        Form1.CommonDialog1.FileName = ""
           '显示通用对话框
        Form1.CommonDialog1.ShowOpen
           '用户选择Cancel则不做任何工作
        If Err <> 32755 Then
            '提取文件名
            strOpenFileName = Form1.CommonDialog1.FileName
            If strOpenFileName <> "" Then
              '提取数据表名,显示在Combo1控件中
              Dim db As Database
              Dim td As TableDef
              Set db = OpenDatabase(strOpenFileName)
              Combo1.Clear
              For Each td In db.TableDefs
               If Left$(td.Name, 4) <> "MSys" Then   '不允许使用系统表
               Combo1.AddItem (td.Name)
               End If
              Next td
            db.Close
            End If
        End IfEnd SubPrivate Sub Command2_Click()
     Dim GetFileName As String
        Dim strDefaultName As String
        '获得文件名称,并且调用保存过程
        On Error Resume Next
        '显示一个“另存为”对话框并且返回文件名
        Form1.CommonDialog1.FileName = strDefaultName
        Form1.CommonDialog1.ShowSave
        If Err <> 32755 Then    '用户选择取消
            GetFileName = Form1.CommonDialog1.FileName
        Else
            Exit Sub
        End If
        '新建数据库与数据表
        Dim db As Database
        Dim tb As TableDef
        Set db = DBEngine.CreateDatabase(GetFileName, dbLangGeneral, dbEncrypt)
        Set tb = db.CreateTableDef("abc")     ' "abc"为表名
        With tb
          .Fields.Append .CreateField("aa", dbDouble) '字段类型(以此为例)
          .Fields.Append .CreateField("bb", dbText)
        End With '
        db.TableDefs.Append tb
        '在建立数据表时,在表中加入一些数据。也可用此方法追加数据记录。(这里只作为一个例子,可略去)
         Dim rc As Recordset
         Set rc = db.OpenRecordset("abc", dbOpenDynaset)
         Dim d As Double
         Dim s As String
         d = 123
         s = "abc"
         With rc
          .AddNew
          !aa = d
          !bb = s
          .Update
          .Close
         End With
         db.Close
        '联接数据库,并显示新建的数据库内容。
        Adodc1.RecordSource = "select * from " + "abc"
        Adodc1.Caption = Form1.CommonDialog1.FileName
        Adodc1.Refresh
        Me.DataGrid1.RefreshEnd SubPrivate Sub Command3_Click()
     Dim db As Database
       Dim rc As Recordset
       Dim datad As Double
       Dim datas As String
       Set db = OpenDatabase(Form1.CommonDialog1.FileName)
       Set rc = db.OpenRecordset("abc", dbOpenDynaset)
       ' 由用户输入数据,注意数据类型。追加记录也可用ADO控件,方法类同于DATA控件(可查看帮助或一些参考书)。
       datad = Trim(InputBox("Enter a double:"))
       datas = Trim(InputBox("Enter a string:"))
       With rc
          .AddNew
          !aa = datad
          !bb = datas
          .Update
       End With
       rc.Close
       db.Close
       Adodc1.RecordSource = "select * from " + "abc"                 '  abc为表名
       Adodc1.Caption = Form1.CommonDialog1.FileName
       Adodc1.Refresh
       Me.DataGrid1.RefreshEnd SubPrivate Sub Command4_Click()
    Unload Me
    End SubPrivate Sub Command5_Click()End SubPrivate Sub DataGrid1_Click()End SubPrivate Sub Form_Load()End Sub