2017-11-17 8 views
0

私はこのルックアップコードを参考にしています。MS Access VBA ROTED DATE BETWEENまたはテキストボックス内での単一エントリ

If Me.txtStartDate > "" And Me.txtEndDate > "" Then 
varWhere = varWhere & "[CompletionDate] BETWEEN #" & Me.txtStartDate & "# AND #" & Me.txtEndDate & "#" 

ElseIf Me.txtStartDate > "" And Me.txtEndDate Is Nothing Then 
varWhere = varWhere & "[CompletionDate] = """" & Me.txtStartDate & " * "" And "" 

ElseIf Me.txtStartDate Is Nothing And Me.txtEndDate > "" Then 
MsgBox "Please Input a Start Date", vbOKOnly, Error 

End If 

コード自体が自分の目標を自明に説明しているように感じます。しかし、私は範囲を与えるMe.txtStartDate & Me.txtEndDateにユーザーが入力できるようにしたいと思います。また、ユーザが単一の日付の間にMe.txtStartDateに入力することを許可する。私は2つのメッセージボックスを一緒に終了日だけに入力する場合は、一緒に結合しようとしました。

私のために働いていない、私はどちらかを得るか、または働くことができます。

私の質問は「これらの3つのステートメントをどのように組み合わせて、条件付きステートメントの仕方で動作させるか」です。

何かが役に立ちます。

+0

ようこそ、私は明確な質問を見つけることができませんでした。あなたの投稿を修正し、解決する質問を定義できますか?お読みください[お問い合わせ方法](https://stackoverflow.com/help/how-to-ask) –

+0

コメント:テキストボックスの代わりに日付コントロールを使用すると、変数が実際の日付であることを確認するのに役立ちます。また、開始日が終了日以降でないことを確認してください。 – braX

+0

このコードを実行すると実際に何が起こっていますか?エラー?結果がありません?私はあなたがラインの下のどこかにSQLクエリへのフィルタ、またはDLookupなどを使用すると仮定しています。より多くのコンテキスト/情報が必要です。 –

答えて

0

あなたがしようとしていることはわかりません。私はdatepickersを使用するのが好きです。

Private Sub Form_Open(Cancel As Integer) 
Me.DTPickerStart.DefaultValue = "Date()" 
Me.DTPickerEnd.DefaultValue = "Date()" 

次に、このようなことをします。

If (Nz(Me.Me.txtStartDate.Value) = "") Then 
     MsgBox "Please select a Start Date.", vbCritical + vbOKOnly, "Error" 
ElseIf (Nz(Me.txtEndDate.Value) = "") Then 
    MsgBox "Please select a End Date.", vbCritical + vbOKOnly, "Error" 
Else 
    DoCmd.OpenReport "XYZRpt", acViewPreview 
    Or you could do.. 
    DoCmd.OpenQuery "Passthroughquery" that links to an SQL procedure. I'm not 
    sure what you're trying to do though. 
End If 
関連する問題