0

わかりました、私は一般的に VBA と SQL とプログラミングに真新しいです。いずれにせよ、私は少しの VBA と SQL の知識でできる驚くべきことにとても興味をそそられました!

だから、ここに私の質問があります:

ComboBoxes/TextBoxes/DTPicker を持つ Microsoft Excel 2010 でユーザーフォームを作成しました。理想的には、私が達成したいのは、(これを人間にとって可能な限りユーザーフレンドリーにする)サリーが入って「サリーのレポート」を選択し、日付範囲として2010年1月1日から2012年5月5日にパンチすると、SQLステートメントこのデータを取得してレポートを生成する が生成されます。

私は現在、作成された Excel クエリ ツールを使用してレポートを作成しています (基本的には、SQL ステートメントを入力し、接続を開始するコマンド ボタンを押してレポートを実行するテキスト ボックス ユーザーフォーム)。「Sally's Report」を「XXX」SQL ステートメントとして定義し、コンボボックスの選択に基づいてレポートを実行できれば、ユーザーは自分でレポートにアクセスして実行でき、ツールを使用するすべてのユーザーがレポートを利用できるようになります。 .

どんな助けでも大歓迎です!

4

1 に答える 1

0

これらの線に沿って何かを行うことができます。クエリを実行しているテーブル構造やユーザー フォームのフィールド名がわからないため、これは非常に基本的な設定です。このコードは、さまざまなレポートを含むコンボ ボックスの名前が cboReports で、txtStartDate と txtEndDate という名前の 2 つのテキスト フィールドがあることを前提としています。

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 に答える