繁体   English   中英

根据Excel 2010 VBA用户表单中的选择填充SQL语句

[英]Populating a SQL Statement based on selection in Excel 2010 VBA Userform

好的,我是VBA和SQL以及编程方面的新手,并且我可能已经掌握了一切。 即便如此,我还是被VBA和SQL知识所能做的令人惊奇的事情所吸引!

所以,这是我的问题:

我在具有ComboBoxes / TextBoxes / DTPicker的Microsoft Excel 2010中创建了一个用户窗体。 理想情况下,我想实现的是(如果使它尽可能人性化)Sally进入并选择“ Sally的报告”,并在01/01 / 2010-05 / 05/2012打孔作为日期范围,一条SQL语句生成以检索此数据并生成报告。

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

任何帮助将不胜感激!

您可以按照以下方式做一些事情。 这是一个非常基本的设置,因为我不知道您要查询的表结构或UserForm上的字段名称。 此代码假定包含各种报表的组合框名为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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM