ADO 菜问…… 有一个未知 Jet 数据库,但确定是数据库,如何用 VB 的ADO 获取其包含的表的数量和表名?对于其他数据库是不是一样的方法?我苦思未解,或者 ADO 不支持此法?类似于 Data View,只要设置 ConnectionString,再执行 Open,即可获取Table的目录树。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用ADOX可以得到。不过,连接的字符串肯定是不通用的,如果不知道是什么数据库,恐怕很难连接上。 如何是access数据库可以打开系统表看看 如果是access数据库可以打开系统表看看,visdata中让它们显示出来,你就清楚了 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.CloseDebug.Print outEnd Sub daisy8675(莫依): 原犸第三行:strSchema 何解? out = out &.....out 是什么类型的? rstSchema as new adodb.recordset我帮她帮齐! out还用问嘛当然是字符型的啊! 使用ADOX来查询数据库结构,如果你事先并不知道是什么数据库,那你可以写一个连接数据库的界面,连接类型分两种:Access,其他类型的数据库都放在ODBC连接类型里这样你的连接字符串不就确定了? 各位朋友的热心帮助让小弟我感激不尽……daisy8675(莫依)的那个方法我试过,rstSchema!TABLE_NAME返回字符串"MSysAccessObjects",并不是我要的表的名字。而rstSchema!TABLE_TYPE是可以返回"Access_Table"样的字串。而且这个Loop好久都没停下来,那个out字串变量里存了好多好多东西。我用来验证的数据库只有2个表啊。也许有些朋友还未明白我的意图,小弟再说明一下:有一个Access数据库(.mdb),里面有两个表,一个名为"学生档案",另一个是"教师档案"。而现在我并不知道这个数据库里面有多少个表,更不知道表的名字。用Data View或者Data Environment都可以很简单地看到。我想做的并不是借助其他工具来看,我要用代码的方式把表的名字列出来!关键:不知道有多少个表更不知道表的名字!要用代码!为这个,进程已经拖了几天了,55555…… 被daisy8675(莫依)给抢先了55555 建议楼主去http://access911.net看看,那里有你想要的东西,给你一个QQ号码,3103919,你可以问他们! 如何将送往打印机的内容保存为一个文件? 为什么在运行程序后就打开不了VF数据库了!请大家帮帮忙!~ 如何用取得打印类型,并用程序进行打印设置。 关于CrystalReport8.5的记录显示的奇怪问题! 如何移动treeview得整个节点(包括子节点)--最好是比较简单得方法 怎么样给网络计算机发送消息? 如何将24位的bmp保存为256色或16色? 关于学习vb.net的问题 大家好下午好,问一个问题。 很菜的问题 来抢分吧! 诚心请教 MSFlexGrid显示数据问题!! 如何标识打印未打印???
用ADOX可以得到。不过,连接的字符串肯定是不通用的,如果不知道是什么数据库,恐怕很难连接上。
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
原犸第三行:strSchema 何解?
out = out &.....out 是什么类型的?
那你可以写一个连接数据库的界面,
连接类型分两种:Access,其他类型的数据库都放在ODBC连接类型里
这样你的连接字符串不就确定了?
daisy8675(莫依)的那个方法我试过,rstSchema!TABLE_NAME返回字符串"MSysAccessObjects",并不是我要的表的名字。而rstSchema!TABLE_TYPE是可以返回"Access_Table"样的字串。而且这个Loop好久都没停下来,那个out字串变量里存了好多好多东西。我用来验证的数据库只有2个表啊。
也许有些朋友还未明白我的意图,小弟再说明一下:
有一个Access数据库(.mdb),里面有两个表,一个名为"学生档案",另一个是"教师档案"。而现在我并不知道这个数据库里面有多少个表,更不知道表的名字。用Data View或者Data Environment都可以很简单地看到。我想做的并不是借助其他工具来看,我要用代码的方式把表的名字列出来!
关键:不知道有多少个表更不知道表的名字!要用代码!
为这个,进程已经拖了几天了,55555……
55555