|
かるびの さん
有難うございます!
IsDate関数やMid関数について調べてみました。
Is date関数って=dateと同じだったんですね!
「Is Date
式を日付に変換できるかどうかを調べ、結果をブール値で返します。」
strFilter = strFilter & " AND Me.終了日 <= #" & Nz(Me.利用終了日) & "#"
が何をいれてみたらよいかが見当もつきませんでした。
すみません。
Mid関数も調べてみました。
Mid(string, start [, length ] )
「必ず指定します。Long データ型 の値を指定します。引数 string の先頭の位置を 1 として、どの位置から文字列を取り出すかを先頭からの文字数で指定します。start で指定した値が、string の文字数より大きい場合、Mid 関数は、長さ 0 の文字列 ("") を返します。」
ということだったので、文字数の最大値を設定すればいいってことで
宜しいでしょうか?理解力が低くて申し訳ありません。
> このコードを
> strFilter = Mid(strFilter, 8)
> Me.Filter = strFilter
>に変えてください。
> そして、前回のレスで紹介した「Debug.Print ××」のコードを
>「strFilter = Mid(strFilter, 8) 」のコードの前後に入れてください。
> その上で、イミディエイトウインドウにどのような文字列が表示されるのか
>確認してみてください。
>
>> エラーになる一つの原因は、「Me.txt利用者ID」です。
>
> Filterプロパティに設定する文字列の基本は、
> フィールド名 = 値
>です。
> 「Me.txt利用者ID」は、フィールド名ではなく、テキストボックス名です。
> 「Me.txt利用者ID」の部分をフィールド名へと変えてください。
>
> フィールドとテキストボックスをごっちゃにしている人をよく見かけますが、
>両者は全然別のものなので、きちんと区別する必要があります。
> フィールド名は、テーブル又はクエリにおける列の見出しのことです。
> フォームには、フィールドという概念はありません。
>
> また、書いてよいフィールド名は、
>フォームのレコードソースたるテーブル又はクエリに存在するフィールド名に限ります。
>
>
> 「Me.開始日」や「Me.終了日」についても同様です。
早速フィールド名に変更してみました!
ただ、
> もう一つの原因は、「Me.開始日 >= ## 」です。
> #と#の間には、例えば「2015/03/24」のような文字列が入っていなければいけないわけですが、
>それが入っていないということです。
>
>>上記で教えていただいたように、IsNullをIsDateに変更させていただきました。
> おそらく、「If Not IsNull(Me.txt開始日) Then」における「IsNull」を「IsDate」に
>変えただけなんでしょう。
> そのようにすれば、「Me.開始日 >= ## 」という条件式が生成されてしまいます。
> でも、それではだめですよ。
>
> 「If Not IsNull(Me.txt開始日) Then」は、「txt開始日の値がNullでなければ」
>という条件なわけですが、
>IsDate関数を使うのであれば、「txt開始日の値が日付として使える文字列であれば」という
>条件にする必要があります。
>
> IsNull(××)において「××」がNullのときにIsNull関数が何を返すのか、
>「××」がNullでなければIsNull関数が何を返すのか、
>IsDate(××)において「××」が日付として使用可能な文字列のときに
>IsDate関数が何を返すのか、
>「××」が日付として使用不可な文字列のときに
>IsDate関数が何を返すのか、
>をヘルプで確認してみてください。
>
がいまいちわかっていないためか、パラメータの入力をして下さい。
という表示がでて、イミディエイトには
Mid関数前: AND Me.口座番号=843803 AND Me.口座名義人 Like '**' AND Me.利用者名 Like '**' AND Me.利用施設 Like '**'
Mid関数後:座番号=843803 AND Me.口座名義人 Like '**' AND Me.利用者名 Like '**' AND Me.利用施設 Like '**'
と出てきました。益々こんがらって来ました。
物わかりが悪く、本当に申し訳ありません。
|
|