【发布时间】:2023-03-07 04:18:01
【问题描述】:
我在一个小项目中有点卡住了一段时间 从几个生成结果 几个excel表格中的sql查询,我正在尝试使用SQL Server 2008,这是我第一次编写VBA代码 我尝试了这段代码(用于 SQL 单个查询),但我仍然有编译问题
Sub New_Feuil1()
ThisWorkbook.Activate
'First clear the contents from the query
Worksheets("Feuil1").Select
Range("A2").Select
Do Until ActiveCell = ""
ActiveCell.Offset(1).Select
Loop
Range("A4", ActiveCell.Offset(-1, 3)).ClearContents
'Get reporting date
ReportingDate = ThisWorkbook.Sheets("Parameters").Range("D1")
'Format the value for use in the SQL query
ReportingDateFor = Format(ReportingDate, "yyyy-mm-dd")
Worksheets("Feuil1").Select
Range("A1").Select
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim StrQuery1 As String
Dim ConnectionString As String
ConnectionString ="ODBC;" & _
"Driver={SQL Server Native Client 10.0};" & _
"Server=187.125.254.231;" & _
"Database=database;" & _
"UID=sa; PWD=pwd"
cnn.Open ConnectionString
cnn.CommandTimeout = 900
'Queries to be executed
StrQuery1 = StrQuery1 & "Select Id from Users"
rst.Open StrQuery1, cnn, adOpenForwardOnly, adLockReadOnly
rst.Close
Debug.Print "StrQuery1:"; StrQuery1
cnn.Close
ThisWorkbook.Sheets("Central Dashboard").Select
Sheets("Feuil1").Range("A2").CopyFromRecordset rst
End Sub
还有其他解决办法吗?
【问题讨论】:
-
您能否告诉我们您遇到的具体问题。阅读how to write a Short, Self Contained, Correct Example 并在此处查看help centre。然后edit您的问题并提供所有必要的详细信息。
-
每次我运行宏,它总是告诉我我有一个编译问题
-
好的...编译问题是什么?我看不到你的电脑。请阅读我提供的链接并编辑您的问题,向我们解释发生了什么。 “它给出了一个编译器错误”什么也没告诉我。
-
您是否导入了必要的sql 引用?转到工具 > 参考并导入相关的 SQL 参考。
-
谢谢RossC,我会尝试并给你反馈
标签: sql-server excel vba