方法一
Private Sub Form_Load()
Dim cn As New ADODB.Connection '声明并实例化一个ADO连接对象
Dim cnStr As String '声明一个连接字符串变量
Dim rsSchema As New ADODB.Recordset '声明并实例化一个记录集对象
'设置连接当前目录下“MyAccess.mdb”之连接字符串
cnStr = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &App.Path &"\MyAccess.mdbPersist Security Info=False"
cn.Open cnStr '打开与该数据库的连接
Set rsSchema = cn.OpenSchema(adSchemaTables) '打开数据库所有表记录集
'循环将所有表名逐个写入列表框
Do Until rsSchema.EOF
If rsSchema!TABLE_TYPE = "TABLE" Then
List1.AddItem rsSchema!TABLE_NAME
End If
rsSchema.MoveNext
Loop
rsSchema.Close '关闭记录集
Set rsSchema= Nothing '释放记录集对象
cn.Close '关闭连接
Set cn = Nothing '释放连接对象
End Sub
方法二(
ACCESS数据库系统表"MsysObjects"里存放着所有数据表的资料,但是其访问权限默认为不开放。如果不嫌设置ACCESS数据库系统表权限麻烦,下列VB代码可以直接读取"MsysObjects"里记载的已保存表名信息,并于窗体加载时将得到的全部表名写入列表框里。
首先要设置读取ACCESS数据库系统表"MsysObjects"的权限,方法如下:
打开ACCESS数据库-->菜单-->工具-->选项 打开选项对话框,于视图选项卡 勾选“系统对象”点击“确定”按钮;
跟着,菜单-->工具-->安全-->用户与组权限 打开“用户与组权限”对话框,于权限选项卡 选择 “管理员、"MsysObjects"表 于权限框勾选“读取数据”点击“确定”按钮。
***注意为了确保ACCESS数据库的安全,设置完权限后,应将系统对象重新隐藏。
菜单-->工具-->选项 打开选项对话框,于视图选项卡 取消勾选“系统对象”
点击“确定”按钮。
Private Sub Form_Load()
Dim cn As New ADODB.Connection '声明并实例化一个ADO连接对象
Dim cnStr As String '声明一个连接字符串变量
Dim rs As New ADODB.Recordset '声明并实例化一个记录集对象
Dim sqlStr As String '声明一个SQL查询字符串变量
'设置连接当前目录下“MyAccess.mdb”之连接字符串
cnStr = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &App.Path &"\MyAccess.mdbPersist Security Info=False"
cn.Open cnStr '打开与该数据库的连接
rs.CursorLocation = adUseClient '设置为客户端游标
'设置查询表名列表之SQL语句
sqlStr = "select Name from MsysObjects where type=1 and Flags=0"
rs.Open sqlStr, cn '打开数据库表记录集
'因为直接读取“MsysObjects“得到的表名列表秩序混乱,故这里强制对表名进行排序
rs.Sort = "Name ASC"
'循环逐个将表名放置到列表框里
Do Until rs.EOF
List1.AddItem rs!Name
rs.MoveNext
Loop
rs.Close '关闭记录集
Set rs = Nothing '释放记录集对象
cn.Close '关闭连接
Set cn = Nothing '释放连接对象
End Sub
以上内容源自本人百度空间文章http://hi.baidu.com/tjrmgs/item/ca62e6386f9519c81a96965a
Sub getTableName()Dim RS As ADODB.Recordset
Dim CN As ADODB.Connection
Set CN = New ADODB.Connection
CN.Open "Provider=Microsoft.Jet.OLEDB.4.0Data Source=Access数据库名.mdbPersist Security Info=False"
Set RS = CN.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, Empty))
Do Until RS.EOF
If Left(RS!table_name, 4) <>"MSys" Then
List1.AddItem RS!table_name
End If
RS.MoveNext
Loop
RS.Close
Set RS = Nothing
CN.Close
Set CN = Nothing
End Sub
Sub getFieldName()
Dim RS As ADODB.Recordset
Dim CN As ADODB.Connection
Dim FN As ADODB.Field
Set CN = New ADODB.Connection
Set RS = New ADODB.Recordset
CN.Open "Provider=Microsoft.Jet.OLEDB.4.0Data Source=access.mdbPersist Security Info=False"
RS.Open "表名", CN
For Each FN In RS.Fields
List2.AddItem FN.Name
Next
RS.Close
Set RS = Nothing
CN.Close
Set CN = Nothing
End Sub
VB读取数据库并显示出来的方法可参考下面用控件的实现方法:
ACCESS数据库,用VB6里的Data控件,选中它,设置属性:
DatabaseName 属性:连接到数据库文件
RecordSource 属性:连接数据表(可以用Select语句返回记录集)
然后使用它的:data1.Recordset.Fields(“字段名”),就可以返回获得你说的内容了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)