2016-07-11 14 views
1

SQL Serverテーブルからデータを取得するフォームがあります。フォームには2つのアンバインドコンボボックスがあります。ユーザーは最初にcomboNameを選択してからcomboDateを選択すると、フォームは値に関連付けられたレコードを取得します。Access 2013で複数の基準を持つDoCmd.SearchForRecord

'comboDate AfterUpdate VBA macro 
DoCmd.SearchForRecord , "", acFirst, "[Name] = " & "'" & comboName.Value & "'" & _ 
" and [Date] = " & "'" & Format(comboDate, "yyyy-mm-dd") & "'" 

私は一人で​​を使用する場合には、その名前の最初のレコードを取得しますが、私はDate基準を追加、またはNameなしDate基準を使用している場合、コンボボックスは、もは​​やレコードを取得しません。それは現在のものにとどまります。私はすでにアクセス日付形式をSQL Serverに合わせて変換しています。それ以外に何が必要ですか?

+0

「Form.Refresh」を追加しても効果はありません。 – jjjjjjjjjjj

+0

そのフィルタは通常のクエリのwhere句として機能しますか? – Brad

+0

@Bradそうではありません、私はそれが日付形式のためだと知っていますが、私が試してみるものはどれも私にデータ型の不一致を与えます。 – jjjjjjjjjjj

答えて

0

アクセスは、日付として認識するためには#シンボルが必要です。これをクエリに変更すると動作します。

'comboDate AfterUpdate VBA macro 
DoCmd.SearchForRecord , "", acFirst, "[Name] = " & "'" & comboName.Value & "'" & _ 
" and [Date] = " & "#" & Format(comboDate, "yyyy-mm-dd") & "#"