
给LZ一个代码可以搜索ACCESS数据库内所有表名的代码。
Option ExplicitDim 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
字段名是不能直接修改的哦可以变通实现
也就是直接新建一个字段
字段名就起你要的字段
然后把原字段数据复制到新字段
最后删除原字段。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)