Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


844 / 2272 ツリー ←次へ | 前へ→

【9825】数値型データの抽出です ゆっぴぃ 07/9/9(日) 23:37 質問[未読]
【9827】Re:数値型データの抽出です hatena 07/9/10(月) 11:33 回答[未読]
【9832】Re:数値型データの抽出です ゆっぴぃ 07/9/10(月) 23:33 質問[未読]
【9833】Re:数値型データの抽出です hatena 07/9/10(月) 23:38 回答[未読]
【9835】Re:数値型データの抽出です ゆっぴぃ 07/9/11(火) 0:52 お礼[未読]

【9825】数値型データの抽出です
質問  ゆっぴぃ  - 07/9/9(日) 23:37 -

引用なし
パスワード
   また来てしまいました。ゆっぴぃです。
以前のものとはまったく別の質問があるのですが・・・。


レコードの一覧が表示されているフォームがあって
その欄外に抽出語を入力するコンボボックス(コンボ31)があり
そのコンボの更新後処理に

Dim stFil as String
If コンボ31 <> "" Then
  If stFil <> "" Then
  stFil = stFil & " and" & "[顧客名]='" & コンボ31 & "'"
  Else
  stFil = "[受払種類]='" & コンボ31 & "'"  ☆
  End If
End If
Me.Filter = stFil
Me.FilterOn = True

という記述がしてあります。
この他にも検索語を入力するところがいくつかあり
それら複数の条件に一致するレコードを更新後に抽出できるように
なっているわけです。


これと同じような形で、数値型のレコードを抽出できるように
したいのですが☆のところはどのように記述すればよいのでしょうか?

↑は[受払種類]がテキスト型の場合の書き方なんですよね??
日付の場合には#を使うのでしょうが、ではたとえば[顧客NO]のように
数値型(テーブルで確認したらLongでした)の場合にはどうなるのかと・・・

↑をそのまま数値型のフィールドに使ったらデータ型エラーか
Me.Filter = stFilのところで『直前でキャンセルされました』といった
内容のエラーが表示されてうまくいきません。


単純にデータ型が原因なのかと勝手に想像してるんですけど・・・
どなたか教えてください!お願いします。

【9827】Re:数値型データの抽出です
回答  hatena  - 07/9/10(月) 11:33 -

引用なし
パスワード
   > これと同じような形で、数値型のレコードを抽出できるように
> したいのですが☆のところはどのように記述すればよいのでしょうか?

数値型の場合は何も付加する必用はありません。

stFil = "[フィールド名]=" & コンボ31

【9832】Re:数値型データの抽出です
質問  ゆっぴぃ  - 07/9/10(月) 23:33 -

引用なし
パスワード
   hatena さん 初めまして。


>数値型の場合は何も付加する必用はありません。
>
>stFil = "[フィールド名]=" & コンボ31

そうですよね・・・たしかそうだとは思ったんですが
次のコードを動かすと☆のところで型が合わないとして
止まってしまうのです。


Private Sub テキスト34_AfterUpdate()

Dim Fil As Long

If テキスト34 <> Null Then
  Fil = "[事業者NO]=" & テキスト34  ☆
End If

Me.Filter = Fil
Me.FilterOn = True

End Sub


テーブルで確認したのですが、事業者NOのフィールドは
長整数型で間違いなかったです。
・・・いったいどこが(涙)

質問ばっかりですみません。

【9833】Re:数値型データの抽出です
回答  hatena  - 07/9/10(月) 23:38 -

引用なし
パスワード
   >テーブルで確認したのですが、事業者NOのフィールドは
>長整数型で間違いなかったです。

フィールドは数値型でも、抽出条件式は文字列ですよね。
それと、Nullかどうかを確認するには、IsNull関数を使います。

Private Sub テキスト34_AfterUpdate()

Dim Fil As String

If Not IsNull(テキスト34) Then
  Fil = "[事業者NO]=" & テキスト34
End If

Me.Filter = Fil
Me.FilterOn = True

End Sub

【9835】Re:数値型データの抽出です
お礼  ゆっぴぃ  - 07/9/11(火) 0:52 -

引用なし
パスワード
   hatena さん! できました。

>フィールドは数値型でも、抽出条件式は文字列ですよね。

なるほど〜と納得です! 言われてみればそうですよね♪

またひとつ勉強させていただきました。ありがとうございました!!

844 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078201
(SS)C-BOARD v3.8 is Free