vb如何获取access数据库的所有表和字段名??

vb如何获取access数据库的所有表和字段名??,第1张

给LZ一个代码可以搜索ACCESS数据库内所有表名的代码。

Option Explicit

    Dim TableSet As ADODB.Recordset

    Dim Gconnection As ADODB.Connection

    Dim lianjie As String

Sub getTableName()

    lianjie = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=J:\LDGZ\南汇40M^2New\ldgz30_wd20100205N19200\Data\wdold.mdbPersist Security Info=False"

    Set Gconnection = New ADODB.Connection

    Gconnection.Open lianjie

    Set TableSet = Gconnection.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, Empty))

    Do Until TableSet.EOF

         List1.AddItem TableSet!table_name

         TableSet.MoveNext

    Loop

End Sub

Private Sub Form_Load()

    getTableName

End Sub

LZ可以将lianjie变量以你自己的连接字符串替代。我这里是用ACCESS7的数据库。

再给LZ提供一个链接

http://wenku.baidu.com/link?url=mrzZ5qZqgO9tJP_hPOhXDWfKxqHRWhnAK6wxmOgtOzRpK3985pemcpY62rP4ZgUw7a3A_YMjdchndOwxPXnP9DywaayDsX6Ta_DkknVXroq

是关于获取“

VB 读取ACCESS数据库中所有表名及指定表的字段

“的Word文件。

'要在"工程"菜单中引用对象库"Microsoft ActiveX Data Objects 2.5 Library"和"Microsoft ADO Ext 2.1. For DDL Security"

Dim DBmode As New ADOX.Catalog  '不用DBmode用另外一个名字也可以

Dim DEXdatabase As String '连接数据库用的字符

Dim BaseName As String    '数据库名

Dim PathName As String    '数据库路径

Dim Conn As Connection

Dim RSdb As Recordset

Dim MyTable As Table

Private Sub Combo1_Click()

Dim Table As String

On Error GoTo EditErr '当读系统表时会出错,因为不允许

Table = Combo1.Text

Me.Cls

Set RSdb = New Recordset

RSdb.Open "select * from " & Table, Conn, adOpenStatic, adLockReadOnly

print "表名",DBmode.Tables(I).Name

print "类型",DBmode.Tables(I).Type

Print "共有" & RSdb.Fields.Count & "个字段"

For I = 0 To RSdb.Fields.Count - 1

Print RSdb.Fields(I).Name

Next

RSdb.Close

Set RSdb = Nothing

Exit Sub

EditErr:

MsgBox (Err.Description)

End Sub

Private Sub Command1_Click()

Dim A As Long

Dim B As Long

On Error GoTo EditErr '

Combo1.Clear

DBmode.ActiveConnection = DEXdatabase

A = DBmode.Tables.Count

B = 0

For I = 0 To A - 1

If DBmode.Tables(I).Type = "SYSTEM TABLE" Then '系统表不显示,一定要大写,否则会出错

Else

Combo1.AddItem (DBmode.Tables(I).Name)

B = B + 1

End If

Next

Combo1.Text = Combo1.List(0)

Combo1_Click

Exit Sub

EditErr:

MsgBox (Err.Description)

End Sub

Private Sub Form_Load()

BaseName = "my_database.mdb" '你的数据库名,你可以改动它

PathName = App.Path & "\" & BaseName '你的数据库位置,你可以改动它

DEXdatabase = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" & PathName

Set Conn = New Connection

Conn.CursorLocation = adUseClient

Conn.Open DEXdatabase

End Sub

字段名是不能直接修改的哦

可以变通实现

也就是直接新建一个字段

字段名就起你要的字段

然后把原字段数据复制到新字段

最后删除原字段。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6889772.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-29
下一篇2023-03-29

发表评论

登录后才能评论

评论列表(0条)

    保存