有一个vb操作数据库的例子,想改成操作access2000以上版本的,数据库不怎么熟悉,不会改了,
大家给看看吧,谢了!该例用的是data控件和dbgrid控件,想改成使用DAO3.6对象或者ADO的都可以,实现
相同点功能。
Option Explicit
Dim db As Database '一个DAO对象Private Sub Command1_Click() '选择一个数据库
    With CommonDialog1
      .Filter = "数据库文件(*.mdb)|*.mdb"
      .ShowOpen
    End With
    Text1.Text = CommonDialog1.FileName
    displaytable
End SubPrivate Sub Form_Load() '初始化界面
Dim dbname As String
   Adodc1.Visible = False
    DataGrid1.Visible = False
    Set DataGrid1.DataSource = Adodc1
    dbname = App.Path
    If Right$(dbname, 1) <> "\" Then dbname = dbname & "\"
    dbname = dbname & "19.mdb"
    Text1.Text = dbname
    displaytableEnd Sub
Private Sub List1_Click() '显示选择的表中的数据
Dim table_name As String
Dim sql As String
    table_name = List1.List(List1.ListIndex)
    sql = "SELECT * FROM " & table_name
    Adodc1.Caption = table_name
    Adodc1.RecordSource = sql
   Adodc1.Refresh
   Adodc1.Visible = True
    DataGrid1.Visible = True
End Sub
Private Sub displaytable() '显示选择的数据库中的表名
Dim td As TableDef
    Set db = OpenDatabase(Text1.Text)
    List1.Clear
    For Each td In db.TableDefs
            If td.Attributes = 0 Then '仅仅显示用户表,不显示系统表
            List1.AddItem td.Name
        End If
    Next td
    db.Close
   Adodc1.DatabaseName = Text1.Text
End Sub

解决方案 »

  1.   

    就是用ADODC和datagrid来替换DATA和dbgrid控件,再改改源码
      

  2.   

    Option Explicit
        Dim tabelName(50) As String
        Dim i As Integer
        Dim l As IntegerPrivate Sub Combo1_Click()
        Text1 = Combo1
    End SubPrivate Sub Command1_Click()
        Dim fileN As String
        CommonDialog1.ShowOpen
        fileN = CommonDialog1.FileName
        Dim cn As ADODB.Connection
        Dim rs As ADODB.Recordset
        Set cn = New ADODB.Connection
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " _
        & "Data Source=" & fileN & ";" _
            & "Persist Security Info=False;" _
            & "Jet OLEDB:Database Password=123"
        Set rs = New ADODB.Recordset
        Set rs = cn.OpenSchema(adSchemaTables, _
            Array(Empty, Empty, Empty, "TABLE"))
        While Not rs.EOF
            tabelName(i) = rs!TABLE_NAME
            i = i + 1
            rs.MoveNext
        Wend
        rs.Close
        cn.Close
        l = i - 1
        For i = 0 To l
            Combo1.AddItem tabelName(i)
        Next
    End SubPrivate Sub Form_Load()
        Text1 = ""
        Combo1 = ""
    End Sub见 
    http://topic.csdn.net/u/20080103/19/f7044ecf-2cb2-4b12-b41e-2f6a1b9120b4.html
    是依据vbman2003的代码将ACCESS数据库的表名放入ComboBOX显示.
      

  3.   

    为DataGrid指定Adodc确实更为方便。