VBA同一个函数里怎么链接两个不同数据库

VBA同一个函数里怎么链接两个不同数据库,第1张

方法如下:

假设数据库均为Access文件:

ThisWorkbookPath & "\数据库1accdb"

ThisWorkbookPath & "\数据库2accdb"

cnnOpen "Provider=MicrosoftACEOLEDB120;Data Source=" & ThisWorkbookPath & "\数据库1accdb"

对于非连接数据库数据库2,数据表前面需要加上数据库全名:

[MS Access;pwd=密码;Database=" & ThisWorkbookPath & "\数据库2accdb;]数据表名

百度经验有详细的图文文章(网页链接)介绍编程语句,注意一点,不同数据库连接代码是不同的。

另外,例子代码是把表中的数据全部读到一个表里面,你可以然后在VLOOKUP填写表的BC列。

如下:自己改一下:

Sub aa()

   Dim cn As New ADODBConnection

   Dim rs As New Recordset

   Str1 = "select 区域,内=SUM(case when 新替换区内外='替换区内' then 1 else 0 end ),外=SUM(case when 新替换区内外='替换区外' then 1 else 0 end ) from 宏站 group by 区域"

   

strcn = "Provider=sqloledb;Database=test;Uid=sa;Pwd=30687724;datasource=127001,1433;"

   cnOpen strcn

   rsOpen Str1, cn

Dim i

For i = 1 TorsFieldsCount

Cells(1, i) = rsFields(i- 1)Name’FIELDS是从0开始的,所以这里要-1

 

 

 Range("a2")CopyFromRecordset rs

Next i

说不清楚你要用vba连接数据库做什么,我知道 你可以通过office的 access 用 新建一个ODBC 数据源的形式 连接Sql数据库……可以把其中的表链接到access中……

换一个思路,曲线一下吧……

Set cn = CreateObject("ADODBConnection")

Set rs = CreateObject("ADODBRecordset")

Dim strCn As String, strSQL As String

strCn = "PROVIDER=SQLOLEDB;DATA SOURCE=127001;UID=sa;password=123457;DATABASE=abc"

cnOpen (strCn)

If cnState <> 1 Then '如果数据库连接未打开

rsClose

cnClose

MsgBox ("数据库连接错误")

else

MsgBox ("数据库连接成功")

End If

'运行SQL语句

'strSQL = "具体的SQL语句",下举例,提取abc表中的aaa,写入sheet1的A列

strSQL = "select aaa,bbb,ccc from abc where bbb>100"

rsOpen strSQL, cn, 1, 1

If Not (rsBOF And rsEOF) Then '有记录存在

For i = 1 To rsRecordCount

Sheets(1)Range("A" & i) = rsFields(0)Value

'Fields(0)对应aaa,Fields(1)对应bbb,类推

rsMoveNext

Next

Else

MsgBox ("数据提取失败")

End If

rsClose

cnClose

以上就是关于VBA同一个函数里怎么链接两个不同数据库全部的内容,包括:VBA同一个函数里怎么链接两个不同数据库、excel用VBA连到数据库读出数据、vba连接SQL数据库方法 等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9871831.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存