选择“深度思考”模型,上传文件,输入下面的提示词。
数据源:
Excel工作簿“简单表格的数据基本查询.xlsm”里的工作表“订单信息”全部字段数据
要求:
利用Excel VBA+SQL查询数据,设计VBA+SQL自动化数据查询代码
代码要简洁高效,尽量使用后绑定引用ADO
查询条件:
1、 订单日期是2024年上半年
2、 订单金额大于500万元
3、 按订单金额降序排序
4、 查询结果保存到新工作表
Sub QueryLargeOrders()
Dim conn As Object
Dim rs As Object
Dim strConn As String
Dim strSQL As String
Dim wsOutput As Worksheet
Dim startDate As String
Dim endDate As String
' 设置日期范围(2024年上半年)
startDate = "#2024-01-01#"
endDate = "#2024-06-30#"
' 创建输出工作表
On Error Resume Next
Set wsOutput = ThisWorkbook.Sheets("查询结果")
If Err.Number <> 0 Then
Set wsOutput =
ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
wsOutput.Name = "查询结果"
End If
On Error GoTo 0
wsOutput.Cells.Clear
' 创建ADO对象(后绑定)
Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
' 构建连接字符串(适配Excel版本)
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=""Excel 12.0 Macro;HDR=YES"";"
' 构建SQL查询
strSQL = "SELECT * FROM [订单信息$] " & _
"WHERE 订单日期 >= " & startDate & " " & _
"AND 订单日期 <= " & endDate & " " & _
"AND 订单金额 > 5000000 " & _
"ORDER BY 订单金额 DESC"
' 执行查询
conn.Open strConn
rs.Open strSQL, conn
' 输出结果到工作表
If Not rs.EOF Then
' 输出标题
For i = 0 To rs.Fields.Count - 1
wsOutput.Cells(1, i + 1) = rs.Fields(i).Name
Next i
' 输出数据
wsOutput.Range("A2").CopyFromRecordset rs
Else
MsgBox "没有符合条件的记录。"
End If
' 清理对象
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
' 自动调整列宽
wsOutput.Columns.AutoFit
MsgBox "查询完成!结果已输出到【查询结果】工作表。"
End Sub

