2016-03-23 6 views
0

ユーザーがクエリの開始日と終了日を設定するフォームに2つのバインドされていないテキストボックスがあります。ユーザーがボタンを押してレポートを生成するよりも。VBAがクエリのバインドされていないテキストボックスの値

変数myStartDateとmyEndDateに適切な値が設定されていても、Access以外のすべてが機能し、開始日と終了日を尋ねるダイアログボックスがポップアップします。

私はここで簡単なものがないと思う。

Private Sub PrintReport_Click() 
    Dim myForm As Form 
    Dim myTextBox As TextBox 
    Dim myStartDate As Date, myEndDate As Date 

    myStartDate = CDate(Forms![Data Entry - Ammonia and Alkalinity]![StartDate]) 
    myEndDate = CDate(Forms![Data Entry - Ammonia and Alkalinity]![EndDate]) 

    Dim whereString As String 
    whereString = "LabDate Between myStartDate And myEndDate" 
    DoCmd.OpenReport "Ammonia and Alkalinity Report", acViewPreview, , whereString 

End Sub 
+1

文字列内のVBA変数を連結していません。したがって、レポートでは、スコープ内でmyStartDateとmyEndDateを探していて、VBAから渡されません。 – Parfait

答えて

0

これらの変数を使用するには、文字列をエスケープする必要があります。何をしたい

は次のとおりです。

whereString = "LabDate Between #" & myStartDate & "# AND #" & myEndDate & "#" 
1

あなたは(と私はそう思います)2つのテキストボックスに日付形式を適用している場合、あなたは変換のほとんどを必要としませんが、合格しなければなりませんSQLコードに日付値のフォーマットされた文字列式:

Private Sub PrintReport_Click() 

    Dim myForm As Form 
    Dim myTextBox As TextBox 
    Dim myStartDate As String 
    Dim myEndDate As String 
    Dim whereString As String 

    myStartDate = Format(Forms![Data Entry - Ammonia and Alkalinity]![StartDate], "yyyy\/mm\/dd") 
    myEndDate = Format(Forms![Data Entry - Ammonia and Alkalinity]![EndDate], "yyyy\/mm\/dd") 

    whereString = "LabDate Between #" & myStartDate & "# And #" & myEndDate & "#" 
    DoCmd.OpenReport "Ammonia and Alkalinity Report", acViewPreview, , whereString 

End Sub 
+0

グスタフありがとう、@OpiesDadがあなたの前にちょっと答えを得ましたが、あなたの貢献に感謝します。 – PhillipOReilly

+0

それは簡単ではありません。表示されているように書式を設定しないと、米国以外の環境でもクエリが失敗します。それはあなたのために問題を提示しないかもしれませんが、ここには世界があります。 – Gustav

+0

本当ですが、日付を指定するテキストボックスに日付マスクを配置しました。ご協力いただきありがとうございます。 – PhillipOReilly

-1

修正が可能whereString: -

whereString = "LabDate Between " & _ 
"#" & Format (myStartDate, "mm/dd/yyyy") & " #" & _ 
" And " & _ 
"#" & Format (myEndDate, "mm/dd/yyyy") & "#" 
関連する問題