過去ログ

                                Page     187
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼サブフォームのレコード抽出について  REI 03/1/31(金) 13:36
   ┗Re:サブフォームのレコード抽出について  まる 03/2/3(月) 0:28
      ┗Re:サブフォームのレコード抽出について  FUN 03/2/3(月) 13:02

 ───────────────────────────────────────
 ■題名 : サブフォームのレコード抽出について
 ■名前 : REI
 ■日付 : 03/1/31(金) 13:36
 -------------------------------------------------------------------------
   こんにちは
サブフォームに表示してあるレコードの抽出をしたいと思っています。
以下のコードで実行するとアプリケーション定義かオブジェクト定義のエラーがでます。
[検索メイン]はフォーム名、[データ]はサブフォーム名です。
Me!NOは検索条件を入力するテキスト名称、NOはデータフォームに表示しているテーブルのフィールド名です。
どなたか教えてください。

Dim strFldCnd As String '変数定義
  
  strFldCnd = ""      '検索条件作成
  If Not IsNull(Me!NO) Then
    strFldCnd = strFldCnd & "and NO like '*" & Me!NO & "*"
  End If
  
  If strFldCnd = "" Then   '検索条件なしはNG
    MsgBox "検索条件を入力して下さい", vbOKOnly + vbInformation
  End If
 
  Forms![検索メイン]![データ].Form.fiter = strFldCnd 'フィルタ設定

 ───────────────────────────────────────  ■題名 : Re:サブフォームのレコード抽出について  ■名前 : まる <mumumu_mu@hotmail.com>  ■日付 : 03/2/3(月) 0:28  -------------------------------------------------------------------------
   こんにちは、まるです。

>  strFldCnd = ""      '検索条件作成
>  If Not IsNull(Me!NO) Then
>    strFldCnd = strFldCnd & "and NO like '*" & Me!NO & "*"
>  End If

これでは出来た条件文は

and NO like '*〜*

となっていますよね?
文字列閉じとなる ' がないですし
先頭の and も不要になると思います。
また、フィールド名に NO はあまりよくないと思いますよ。
Yes/No型の値と混同されてエラーになるというのを聞いたことがあります。
いまさら変えられなければ

〜 [No] Like '* 〜
としたほうがいいと思います。


>  Forms![検索メイン]![データ].Form.fiter = strFldCnd 'フィルタ設定

フィルタ設定後には
FilterOn プロパティに Trueを入れたほうがいいでしょう。


Dim strFldCnd As String
If Not IsNull(Me![NO].Value) Then
  strFldCnd = "[NO] Like '*" & Me![NO].Value & "*'"
End If
If strFldCnd = "" Then
  MsgBox "検索条件を入力して下さい", vbOKOnly + vbInformation
End If
Forms![検索メイン]![データ].Form.Fiter = strFldCnd
Forms![検索メイン]![データ].Form.FiterOn = True


and の部分をなんのためにあったのかわかりませんが。
もしかして、条件はもっと長いのかな?


ではでは ^^)/~~

 ───────────────────────────────────────  ■題名 : Re:サブフォームのレコード抽出について  ■名前 : FUN  ■日付 : 03/2/3(月) 13:02  -------------------------------------------------------------------------
   ▼まる さん:
>こんにちは、まるです。
>
>>  strFldCnd = ""      '検索条件作成
>>  If Not IsNull(Me!NO) Then
>>    strFldCnd = strFldCnd & "and NO like '*" & Me!NO & "*"
>>  End If
>
>これでは出来た条件文は
>
>and NO like '*〜*
>
>となっていますよね?
>文字列閉じとなる ' がないですし
>先頭の and も不要になると思います。
>また、フィールド名に NO はあまりよくないと思いますよ。
>Yes/No型の値と混同されてエラーになるというのを聞いたことがあります。
>いまさら変えられなければ
>
>〜 [No] Like '* 〜
>としたほうがいいと思います。
>
>
>>  Forms![検索メイン]![データ].Form.fiter = strFldCnd 'フィルタ設定
>
>フィルタ設定後には
>FilterOn プロパティに Trueを入れたほうがいいでしょう。
>
>
>Dim strFldCnd As String
>If Not IsNull(Me![NO].Value) Then
>  strFldCnd = "[NO] Like '*" & Me![NO].Value & "*'"
>End If
>If strFldCnd = "" Then
>  MsgBox "検索条件を入力して下さい", vbOKOnly + vbInformation
>End If
>Forms![検索メイン]![データ].Form.Fiter = strFldCnd
>Forms![検索メイン]![データ].Form.FiterOn = True
>
>
>and の部分をなんのためにあったのかわかりませんが。
>もしかして、条件はもっと長いのかな?
>
>
>ではでは ^^)/~~

ありがとうございました!

おかげで成功しました。 andはさらに条件文を追加するためにつけておいたものでした。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 187