我主要在这方面有关于VBA的问题。 创建与SQL Server的查询连接时,我记录了一个宏。
在工作表(Sheet1)中,我列出了几个值,这些值告诉SQL Server的名称,数据库,表名和年份值(即2019年)。
它几乎可以正常工作,但是我在Source编码方面遇到了一些问题。见下文:
Sub Macro1()
Dim sht As Worksheet
Set sht = Sheets("Sheet1")
Dim SQLSRV, DBase, YValue, Table As String
SQLSRV = sht.Range("B:B").Find("SQL Server").Offset(0, 1).Value
DBase = sht.Range("B:B").Find("Database").Offset(0, 1).Value
YValue = sht.Range("B:B").Find("Year").Offset(0, 1).Value
Table = sht.Range("B:B").Find("Acccount").Offset(0, 1).Value
ActiveWorkbook.Queries.Add Name:="VAT Sales", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Source = Sql.Database(" & SQLSRV & ", " & DBase & ", [Query=""select [Posting Date]#(lf)" & _
"" & " ,[G_L Account No_]#(lf) ,[Document No_]#(lf) ,[Description]#(lf) ,[Amount]#(lf) ,[VAT Amount]#(lf)" & _
"" & " ,[Source Code]#(lf) ,[VAT Bus_ Posting Group]#(lf) ,[VAT Prod_ Posting Group]#(lf) ,[Gen_ Posting Type]#(lf)" & _
"" & " ,[External Document No_]#(lf) ,[Source No_]#(lf) ,[User ID]#(lf) ,[Unique Document No_]#(lf) ,[Open Kvik]#(lf)" & _
"" & " ,[Remaining Amount Kvik]#(lf) from [" & DBase & "].[dbo].[" & Table & "$G_L Entry]#(lf)where [Posting Date] >= '01-01-" & YValue & "'""])" & _
"" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " Source"
End Sub
我的问题出现在“ Source = Sql.Database(“&SQLSRV&”,“&DBase&”,...的部分。 为了使Power Query能够正确读取此信息,我需要能够在变量的开头和结尾处插入引号,并且仍然能够传输变量的值。
是否存在某种我不知道的Chr()?
预先感谢您:)
答案 0 :(得分:0)
后来我发现Chr(34)可以解决问题:)