将工作表/单元格引用分配给DBQ =? [英] Assigning a Sheet/Cell reference to DBQ=?

查看:93
本文介绍了将工作表/单元格引用分配给DBQ =?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

正如我的网名所示,我对这个VBA的东西非常环保。 我已经获得了我需要它的代码,以便将数据从访问MDB提取到excel中。 我唯一想要的是DBQ = to 使用MDB的位置作为用户在Sheet1
Cell A1中的输入。 我在这里搜索了答案,但似乎大多数人只是直接将MDB位置放入代码中。 提前致谢。

As my screenname suggests, I'm pretty green to this VBA stuff.  I've got my code about where I need it to pull data from an access MDB into excel.  Only thing I want is the DBQ= to use the location of the MDB as input by the user in Sheet1 Cell A1.  I've searched here for the answer but seems most people simply put in the MDB location directly into the code.  Thanks in advance.

Sub proSQLQuery1()

Dim varConnection

Dim varSQL

Sub proSQLQuery1()
Dim varConnection
Dim varSQL

范围(" A1")。CurrentRegion.ClearContents

Range("A1").CurrentRegion.ClearContents

varConnection =" ODBC; DSN = MS Access数据库; DBQ = C:\ OUTPUT.MDB; Driver = {Driver do Microsoft Access(* .mdb)}"

varConnection = "ODBC; DSN=MS Access Database;DBQ=C:\OUTPUT.MDB; Driver={Driver do Microsoft Access (*.mdb)}"

varSQL =" SELECT t_key.model_id AS Model,t_object.name AS Parent ,t_object_1.name AS Child,t_property.name AS Property,t_period_3.month_beginning AS [Month],t_key.timeslice_id AS Timeslice,t_data_3.value AS [Value] FROM(((((t_data_3 INNER JOIN t_key
ON t_data_3 .key_id = t_key.key_id)INNER JOIN t_membership ON t_key.membership_id = t_membership.membership_id)INNER JOIN t_period_3 ON t_data_3.period_id = t_period_3.month_id)INNER JOIN t_property ON t_key.property_id = t_property.property_id)INNER JOIN
t_object ON t_membership.parent_object_id = t_object.object_id)INNER JOIN t_object AS t_object_1 ON t_membership.child_object_id = t_object_1.object_id WHERE(((t_object_1.Name)='NG')和((t_property.Name)='生产')和(( t_key.timeslice_id)= 0))ORDER
BY t_property.property_id,t_membership.membership_id,t_data_3.period_id,t_key.timeslice_id;"

varSQL = "SELECT t_key.model_id AS Model, t_object.name AS Parent, t_object_1.name AS Child, t_property.name AS Property, t_period_3.month_beginning AS [Month], t_key.timeslice_id AS Timeslice, t_data_3.value AS [Value] FROM (((((t_data_3 INNER JOIN t_key ON t_data_3.key_id = t_key.key_id) INNER JOIN t_membership ON t_key.membership_id = t_membership.membership_id) INNER JOIN t_period_3 ON t_data_3.period_id = t_period_3.month_id) INNER JOIN t_property ON t_key.property_id = t_property.property_id) INNER JOIN t_object ON t_membership.parent_object_id = t_object.object_id) INNER JOIN t_object AS t_object_1 ON t_membership.child_object_id = t_object_1.object_id WHERE (((t_object_1.Name) = 'NG') And ((t_property.Name) = 'Production') And ((t_key.timeslice_id) = 0))ORDER BY t_property.property_id, t_membership.membership_id, t_data_3.period_id, t_key.timeslice_id;"

With ActiveSheet.QueryTables.Add(Connection:= varConnection,Destination:= ActiveSheet.Range(" A1")))
.CommandText = varSQL

.Refresh BackgroundQuery:= False

结束

With ActiveSheet.QueryTables.Add(Connection:=varConnection, Destination:=ActiveSheet.Range("A1"))
.CommandText = varSQL
.Refresh BackgroundQuery:=False
End With

结束子

推荐答案

替换此行:

varConnection =" ODBC; DSN = MS Access数据库; DBQ = C:\ OUTPUT.MDB; Driver = {Driver do Microsoft Access(* .mdb)}"

varConnection = "ODBC; DSN=MS Access Database;DBQ=C:\OUTPUT.MDB; Driver={Driver do Microsoft Access (*.mdb)}"

如果Sheet1 A1具有"OUTPUT.MDB"然后使用

If Sheet1 A1 has "OUTPUT.MDB" then use

varConnection =" ODBC; DSN = MS Access数据库; DBQ = C:\" &安培;工作表("Sheet1")。范围("A1")。值和&英寸; Driver = {Driver do Microsoft Access(* .mdb)}"

varConnection = "ODBC; DSN=MS Access Database;DBQ=C:\" & Worksheets("Sheet1").Range("A1").Value & "; Driver={Driver do Microsoft Access (*.mdb)}"

如果Sheet1 A1具有"OUTPUT"然后使用

If Sheet1 A1 has "OUTPUT" then use

varConnection =" ODBC; DSN = MS Access数据库; DBQ = C:\" &安培;工作表("Sheet1")。范围("A1")。值和& " .MDB; Driver = {Driver do Microsoft Access(* .mdb)}"

varConnection = "ODBC; DSN=MS Access Database;DBQ=C:\" & Worksheets("Sheet1").Range("A1").Value & ".MDB; Driver={Driver do Microsoft Access (*.mdb)}"


这篇关于将工作表/单元格引用分配给DBQ =?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆