VBA – 调用一个模块带来一个string,并完成查询

VBA相当新颖。 我试图通过自己的方式来解决这个问题,但任何开放的威胁似乎都适合我所需要的。

上下文:我有这个macros从DDBB带来的信息,并将其复制到一个新的工作簿。 我想要在不同的模块中组织不同的查询,而不是主要的查询。

问题:我已经将一个新模块中的查询设置为一个string,但是我得到ByRef或Method或数据成员始终未find:

主要分

Sub Consulta_Sql_ERP() 'Declare variables Set objMyConn = New ADODB.Connection Set objMyRecordset = New ADODB.Recordset Dim strSQL As String Dim ws2 As Workbook Dim iCols As Integer 'Open Connection' objMyConn.ConnectionString = "Provider=SQLOLEDB.1; Data Source=(...); Initial Catalog=(...); User ID=(...); Password=(...); Persist Security Info=True;" objMyConn.Open 'Set and Excecute SQL Command' strSQL = Module4.Querys(Query1) 'Open Recordset' Set objMyRecordset.ActiveConnection = objMyConn objMyRecordset.Open strSQL 'Open a NewWorkbook Call NewBook 'Copy Data to the new book Set ws2 = ActiveWorkbook ws2.Worksheets("Sheet1").Activate 'Copy headers For iCols = 0 To objMyRecordset.Fields.Count - 1 Worksheets("Sheet1").Cells(1, iCols + 1).Value = objMyRecordset.Fields(iCols).Name Next ActiveSheet.Range("A2").CopyFromRecordset (objMyRecordset) objMyConn.Close 'Close and save Call carpetaventas 'ws.SaveAs Savechanges:=True, Filename:="" & Format(Date, "yyyymmdd") 'ws2.Close Savechanges:=True, Filename:="" & Format(Date, "yyyymmdd"), 'RouteWorkbook:="C:\Ventas" End Sub 

我的查询string中的模块是“Module4”

子我在其中我的查询:

 Sub Queries(Query1 As String) Set Query1 = "Select * from table1" End Sub 

如果我直接在“strSQL”之后引入查询,而不是在“调用”模块4上的子项的情况下工作。 有任何想法吗?

非常感谢。

 strSQL = Module4.Query1() Function Query1() As String Query1 = "Select * from table1" End Sub