高手来指点,如何利用excel vba,将数据库中所有含有指定字段的表名,罗列在excel的A列

高手来指点,如何利用excelvba,将数据库中所有含有指定字段的表名,罗列在excel的A列举例,服务器192.168.9.9用户名abc密码123要查找所有包含字段名... 高手来指点,如何利用excel vba,将数据库中所有含有指定字段的表名,罗列在excel的A列举例,服务器192.168.9.9用户名abc密码123
要查找所有包含字段名 name 的表名,放到A列中,高分求完整的代码,谢谢
展开
 我来答
雨夜Δ迷梦5db5db
2017-12-26 · TA获得超过223个赞
知道小有建树答主
回答量:141
采纳率:88%
帮助的人:44.9万
展开全部

要通过EXCEL查询指定数据库中的含 有指定字段的表名时,首先得知道查询SQL,查询SQL如下:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS where COLUMN_NAME='字段名'

如果要写成VBA的话,下面给你一段我写的宏,测试过了:

--------尘晌枝---

Sub 宏7()

' 宏7 宏

Application.CutCopyMode = False

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _

"ODBC;DRIVER=SQL Server;SERVER=服务器IP;UID=sa;;APP=Microsoft Office 2016;WSID=GUESS;DATABASE=要查询的派敏数据库名" _

, Destination:=Range("$A$1")).QueryTable

.CommandType = xlCmdSql

.CommandText = Array( _

"SELECT TABLE_NAME" & Chr(13) & "" & Chr(10) & "FROM 要查询的数据库名.INFORMATION_SCHEMA.COLUMNS" & Chr(13) & "" & Chr(10) & "WHERE (COLUMN_NAME='要查询的字段名')")

.RowNumbers = False

.FillAdjacentFormulas = False

.PreserveFormatting = True

.RefreshOnFileOpen = False

.BackgroundQuery = True

.RefreshStyle = 谨此xlInsertDeleteCells

.SavePassword = False

.SaveData = True

.AdjustColumnWidth = True

.RefreshPeriod = 0

.PreserveColumnInfo = True

Dim chars As String

Dim rndstr As String

chars = "ABCDEFGHJKLMNPQRSTUVWXYZ0123456789"

Randomize

For i = 1 To 6

rndstr = rndstr & Mid(chars, Int(Rnd() * Len(chars) + 1), 1)

Next

.ListObject.DisplayName = rndstr

.Refresh BackgroundQuery:=False

End With

End Sub

最后结果如下图:

更多追问追答
追问

非常感谢您的回答,还有如下疑问,请帮忙看看
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式