0

好的,我对 VBA 和 SQL 以及一般的编程都是全新的,我可能已经开始关注我的眼球了。尽管如此,我对一点点 VBA 和 SQL 知识可以做的惊人的事情很感兴趣!

所以,这是我的问题:

我在 Microsoft Excel 2010 中创建了一个包含 ComboBoxes/TextBoxes/DTPicker 的用户表单。理想情况下,我想要实现的是,如果(使其尽可能人性化)Sally 进入并选择“Sally's Report”并输入 01/01/2010-05/05/2012 作为日期范围,一条 SQL 语句生成检索此数据并生成报告。

我目前使用创建的 excel 查询工具制作报告(基本上是一个文本框用户表单,您可以在其中键入 SQL 语句,按下启动连接的命令按钮,然后运行报告)。如果我可以将“Sally's Report”定义为“XXX”SQL 语句,然后根据组合框选择运行报告,他们将能够自己进入并运行报告,并且任何使用该工具的人都可以使用这些报告.

任何帮助都将不胜感激!

4

1 回答 1

0

你可以按照这些思路做一些事情。这是一个非常基本的设置,因为我不知道您要查询的表结构或用户窗体上的字段名称。此代码假定具有各种报告的组合框名为 cboReports,并且有两个名为 txtStartDate 和 txtEndDate 的文本字段被填充以查询包含日期范围的日期范围。

Private Sub CommandButton1_Click()
    Dim strSQL As String

    Select Case Me.cboReports
        Case "Sally's Report"
            strSQL = "SELECT * FROM tblSally"
        Case "John's Report"
            strSQL = "SELECT * FROM tblJohn"
        Case Else
            strSQL = "SELECT * FROM tblDefault"
    End Select
    If Me.txtStartDate <> vbNullString And Me.txtEndDate <> vbNullString Then
        strSQL = strSQL & " WHERE ([DateField] between " & Me.txtStartDate & " and " & Me.txtEndDate & ")"
    End If

    MsgBox "Now it's time to do something with this SQL:" _
         & vbNewLine & strSQL, vbOKOnly

End Sub
于 2013-05-28T19:38:39.567 回答