2013-05-28 63 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