ADO 菜问……

SetMeFree 2004-10-27 06:23:01
有一个未知 Jet 数据库,但确定是数据库,如何用 VB 的ADO 获取其包含的表的数量和表名?对于其他数据库是不是一样的方法?
我苦思未解,或者 ADO 不支持此法?
类似于 Data View,只要设置 ConnectionString,再执行 Open,即可获取Table的目录树。
...全文
139 点赞 收藏 14
写回复
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyxhappy 2004-11-03
UP
回复
yongming520 2004-11-03
建议楼主去http://access911.net看看,那里有你想要的东西,给你一个QQ号码,3103919,你可以问他们!
回复
officecn 2004-10-28
使用ADOX来查询数据库结构,如果你事先并不知道是什么数据库,
那你可以写一个连接数据库的界面,
连接类型分两种:Access,其他类型的数据库都放在ODBC连接类型里
这样你的连接字符串不就确定了?
回复
leigang358 2004-10-28
被daisy8675(莫依)给抢先了
55555
回复
SetMeFree 2004-10-28
还有,要用纯ADO的方式。
回复
SetMeFree 2004-10-28
各位朋友的热心帮助让小弟我感激不尽……
daisy8675(莫依)的那个方法我试过,rstSchema!TABLE_NAME返回字符串"MSysAccessObjects",并不是我要的表的名字。而rstSchema!TABLE_TYPE是可以返回"Access_Table"样的字串。而且这个Loop好久都没停下来,那个out字串变量里存了好多好多东西。我用来验证的数据库只有2个表啊。
也许有些朋友还未明白我的意图,小弟再说明一下:
有一个Access数据库(.mdb),里面有两个表,一个名为"学生档案",另一个是"教师档案"。而现在我并不知道这个数据库里面有多少个表,更不知道表的名字。用Data View或者Data Environment都可以很简单地看到。我想做的并不是借助其他工具来看,我要用代码的方式把表的名字列出来!
关键:不知道有多少个表更不知道表的名字!要用代码!
为这个,进程已经拖了几天了,55555……
回复
chenyu5188 2004-10-28
out还用问嘛当然是字符型的啊!
回复
chenyu5188 2004-10-28
rstSchema as new adodb.recordset

我帮她帮齐!
回复
SetMeFree 2004-10-28
daisy8675(莫依):
原犸第三行:strSchema 何解?
out = out &.....out 是什么类型的?
回复
sloven 2004-10-27
看看也长经验~~呵呵
回复
daisy8675 2004-10-27
Private Sub Form_Load()
Dim adoCN As New ADODB.Connection '定义数据库的连接存放数据和代码Dim rstSchema
Dim strCnn As New ADODB.Recordset
Dim strConn As String

strConn = " Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pubs;Data Source=JOHN"
adoCN.Open strConn

Set rstSchema = adoCN.OpenSchema(adSchemaTables)

Do Until rstSchema.EOF
out = out & "Table name: " & _
rstSchema!TABLE_NAME & vbCr & _
"Table type: " & rstSchema!TABLE_TYPE & vbCr
rstSchema.MoveNext
Loop
rstSchema.Close

adoCN.Close
Debug.Print out
End Sub


回复
有哥 2004-10-27
如果是access数据库可以打开系统表看看,visdata中让它们显示出来,你就清楚了
回复
有哥 2004-10-27
如何是access数据库可以打开系统表看看
回复
victorycyz 2004-10-27

用ADOX可以得到。

不过,连接的字符串肯定是不通用的,如果不知道是什么数据库,恐怕很难连接上。
回复
发动态
发帖子

1180

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
社区公告
暂无公告