2017-06-22 4 views
0

私はサブフォームフィルタをテキストボックスを入力するユーザーにVBAで持っています。日付でサブフォームをフィルタリングすることはできません日付形式を受け入れるようにします

それはコントロールをループしますが、日付コントロールに関しては、私はサブフォームの単一の日付フィールドに対して2つのテキストボックス(from、to)を認識させるコントロールです。

私はMM/DD/YYではDD/MM/YYでフィルタリングしていますが、これを解決しようとするものは何もありません。私はソースコードとテキストボックスの値にコードの書式を追加しようとしました。また、実際のテキストボックス形式で再生しようとしたが、何も違いがあり、私の髪を引っ張っているようだ。

コードの関連セクションが

Dim strFilter As String 
Dim ctL As Access.Control 
For Each ctL In Me.Controls 
If ctL.Name = "Raised_For_From" Then 
If Not IsNull(Raised_For_From) Then 
strFilter = strFilter & " AND " & "Raised_For" & " > " & "#" & Me.Raised_For_From & "#" 
End If 

Else 

If ctL.Name = "Raised_For_To" Then 
If Not IsNull(Raised_For_to) Then 
strFilter = strFilter & " AND " & "Raised_For" & " < " & "#" & Me.Raised_For_to & "#" 
End If 

Else 
+1

Gustavの['CSql()'関数] https:// stackoverflow .com/a/36494189/3820271)を参照してください。正しい日付形式を返します。 – Andre

答えて

0

であるあなたは、常にSQLにMM/DD/YYの形式で動作するので、それに応じてあなたの日付の形式を強制する必要があります。

strFilter = strFilter & " AND " & "Raised_For" & " > " & "#" & Format(Me.Raised_For_From,"MM/DD/YYYY") & "#" 

の場合適切な結果を得られない可能性があります。この表の日付は間違っています。挿入したときにMM/DD形式を適用していないためです。

+0

これは私の問題でした。間違ったソースを入力して、iveが最初のレコード入力を調整してMM/DD形式を強制し、正しく動作するようになりました – user681413

関連する問題