2013-05-28 43 views
0

好吧,我对VBA和SQL以及一般编程都是全新的,而且我可能已经处于我的眼球。尽管如此,我深受VBA和SQL知识所能做到的惊人之举!根据Excel 2010中的选择填充SQL语句VBA Userform

所以,这里是我的问题:

我在Microsoft Excel 2010的组合框/文本框/ DTPicker创建的窗体。理想情况下,我希望实现的是,如果(使其成为用户友好且尽可能人性化)Sally进入并选择“Sally的报告”并在01/01/2010-05/05/2012中打出日期范围,SQL语句会生成检索这些数据并生成报告。

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

任何帮助都将非常感谢!

回答

0

你可以沿着这些线做些事情。这是一个非常基本的设置,因为我不知道要查询的表结构或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