過去ログ

                                Page     184
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼絞込み検索画面を作りたいのですが・・。  ikedatti 03/1/28(火) 19:28
   ┗Re:絞込み検索画面を作りたいのですが・・。  JAZZ兵衛 03/1/29(水) 16:41
      ┗Re:絞込み検索画面を作りたいのですが・・。  ikedatti 03/1/30(木) 2:44
         ┗Re:絞込み検索画面を作りたいのですが・・。  JAZZ兵衛 03/1/31(金) 14:46
            ┗Re:絞込み検索画面を作りたいのですが・・。  ikedatti 03/2/3(月) 2:25

 ───────────────────────────────────────
 ■題名 : 絞込み検索画面を作りたいのですが・・。
 ■名前 : ikedatti
 ■日付 : 03/1/28(火) 19:28
 -------------------------------------------------------------------------
   会員マスタから複数条件でメール配信先の会員を絞り込み検索するフォームを
作成しています。
条件は、性別、勤務希望地域1〜5、資格、免許、です。
入力された条件のみで検索します。
会員マスタの勤務希望地域も5つまで登録できるようになっています。
入力されたカラムの内容を見て、nullでなければwhere条件に
追加していくようにしたいのですが、スキルが追いつきません。
どなたか、力を貸してください。お願いいたします!

 ───────────────────────────────────────  ■題名 : Re:絞込み検索画面を作りたいのですが・・。  ■名前 : JAZZ兵衛  ■日付 : 03/1/29(水) 16:41  -------------------------------------------------------------------------
   長文ですみません。
こんな感じですかねぇ。

Private Sub 検索ボタン_Click()
  Dim sql_str As String
  
  '条件未入力時はエラーにする
  If IsNull(性別) And _
    IsNull(勤務希望地域_01) And _
    IsNull(勤務希望地域_02) And _
    IsNull(勤務希望地域_03) And _
    IsNull(勤務希望地域_04) And _
    IsNull(勤務希望地域_05) And _
    IsNull(資格) And _
    IsNull(免許) Then
    MsgBox ("条件未入力")
    Exit Sub
  End If
  
  'SQL文生成 
  '初期化
  sql_str = ""
  
  '性別
  If IsNull(性別) Then
  Else
    '条件が入力されていたら、条件を追加
    sql_str = sql_str & "(([tbl_ex].[性別])='" & 性別 & "')"
  End If
  
  '勤務希望地域_01
  If IsNull(勤務希望地域_01) Then
  Else
    If sql_str = "" Then
    Else
      '前条件が入力されていたら"and"を付加する
      sql_str = sql_str & " and "
    End If
    '条件が入力されていたら、条件を追加
    sql_str = sql_str & "(([tbl_ex].[勤務希望地域_01])='" & 勤務希望地域_01 & "')"
  End If
  
  If IsNull(勤務希望地域_02) Then
  Else
    If sql_str = "" Then
    Else
      sql_str = sql_str & " and "
    End If
    sql_str = sql_str & "(([tbl_ex].[勤務希望地域_02])='" & 勤務希望地域_02 & "')"
  End If
  
  If IsNull(勤務希望地域_03) Then
  Else
    If sql_str = "" Then
    Else
      sql_str = sql_str & " and "
    End If
    sql_str = sql_str & "(([tbl_ex].[勤務希望地域_03])='" & 勤務希望地域_03 & "')"
  End If
  
  If IsNull(勤務希望地域_04) Then
  Else
    If sql_str = "" Then
    Else
      sql_str = sql_str & " and "
    End If
    sql_str = sql_str & "(([tbl_ex].[勤務希望地域_04])='" & 勤務希望地域_04 & "')"
  End If
  
  If IsNull(勤務希望地域_05) Then
  Else
    If sql_str = "" Then
    Else
      sql_str = sql_str & " and "
    End If
    sql_str = sql_str & "(([tbl_ex].[勤務希望地域_05])='" & 勤務希望地域_05 & "')"
  End If
  
  If IsNull(資格) Then
  Else
    If sql_str = "" Then
    Else
      sql_str = sql_str & " and "
    End If
    sql_str = sql_str & "(([tbl_ex].[資格])='" & 資格 & "')"
  End If
  
  If IsNull(免許) Then
  Else
    If sql_str = "" Then
    Else
      sql_str = sql_str & " and "
    End If
    sql_str = sql_str & "(([tbl_ex].[免許])='" & 免許 & "')"
  End If
  
  sql_str = "SELECT tbl_ex.* FROM tbl_ex WHERE (" & sql_str & ")"
  
  DoCmd.OpenForm "new_form"
  Forms!new_form.RecordSource = sql_str
End Sub

 ───────────────────────────────────────  ■題名 : Re:絞込み検索画面を作りたいのですが・・。  ■名前 : ikedatti  ■日付 : 03/1/30(木) 2:44  -------------------------------------------------------------------------
   ▼JAZZ兵衛 さん:
ありがとうございました。何とかできそうです。
で、さらに質問していいですか?
フィルタをかけた結果を、テーブルかクエリに残しておきたいのですが
それはどうしたらいいのでしょうか?教えてください。

 ───────────────────────────────────────  ■題名 : Re:絞込み検索画面を作りたいのですが・・。  ■名前 : JAZZ兵衛  ■日付 : 03/1/31(金) 14:46  -------------------------------------------------------------------------
   またまた長文で失礼します。

元のテーブル:"tbl_ex"
生成されるクエリ:"que_ex"
抽出したデータを登録するテーブル:"tbl_new"

"que_ex"は作成しておいて下さい。
"tbl_new"は"tbl_ex"と同じフィールドで定義して下さい。
私、DAOしか使えませんので、ご了承ください。

Private Sub 検索ボタン_Click()
  
  Dim db As Database
  Dim que As QueryDef
  Dim sql_str As String
  Dim sql_str_02 As String
  
  
  '条件未入力時はエラーにする
  If IsNull(性別) And _
    IsNull(勤務希望地域_01) And _
    IsNull(勤務希望地域_02) And _
    IsNull(勤務希望地域_03) And _
    IsNull(勤務希望地域_04) And _
    IsNull(勤務希望地域_05) And _
    IsNull(資格) And _
    IsNull(免許) Then
    MsgBox ("条件未入力")
    Exit Sub
  End If
  
  'SQL文生成
  
  '初期化
  sql_str = ""
  
  '性別
  If IsNull(性別) Then
  Else
    '条件が入力されていたら、条件を追加
    sql_str = sql_str & "(([tbl_ex].[性別])='" & 性別 & "')"
  End If
  
  '勤務希望地域_01
  If IsNull(勤務希望地域_01) Then
  Else
    If sql_str = "" Then
    Else
      '前条件が入力されていたら"and"を付加する
      sql_str = sql_str & " and "
    End If
    '条件が入力されていたら、条件を追加
    sql_str = sql_str & "(([tbl_ex].[勤務希望地域_01])='" & 勤務希望地域_01 & "')"
  End If
  
  If IsNull(勤務希望地域_02) Then
  Else
    If sql_str = "" Then
    Else
      sql_str = sql_str & " and "
    End If
    sql_str = sql_str & "(([tbl_ex].[勤務希望地域_02])='" & 勤務希望地域_02 & "')"
  End If
  
  If IsNull(勤務希望地域_03) Then
  Else
    If sql_str = "" Then
    Else
      sql_str = sql_str & " and "
    End If
    sql_str = sql_str & "(([tbl_ex].[勤務希望地域_03])='" & 勤務希望地域_03 & "')"
  End If
  
  If IsNull(勤務希望地域_04) Then
  Else
    If sql_str = "" Then
    Else
      sql_str = sql_str & " and "
    End If
    sql_str = sql_str & "(([tbl_ex].[勤務希望地域_04])='" & 勤務希望地域_04 & "')"
  End If
  
  If IsNull(勤務希望地域_05) Then
  Else
    If sql_str = "" Then
    Else
      sql_str = sql_str & " and "
    End If
    sql_str = sql_str & "(([tbl_ex].[勤務希望地域_05])='" & 勤務希望地域_05 & "')"
  End If
  
  If IsNull(資格) Then
  Else
    If sql_str = "" Then
    Else
      sql_str = sql_str & " and "
    End If
    sql_str = sql_str & "(([tbl_ex].[資格])='" & 資格 & "')"
  End If
  
  If IsNull(免許) Then
  Else
    If sql_str = "" Then
    Else
      sql_str = sql_str & " and "
    End If
    sql_str = sql_str & "(([tbl_ex].[免許])='" & 免許 & "')"
  End If
  
  sql_str = "SELECT tbl_ex.* FROM tbl_ex WHERE (" & sql_str & ")"
  
  DoCmd.OpenForm "new_form"
  Forms!new_form.RecordSource = sql_str
  
  Set db = CurrentDb
  
  'クエリ作成
  DoCmd.DeleteObject acQuery, "que_ex"
  Set que = db.CreateQueryDef("que_ex", sql_str)
  
  'テーブルに追加
  sql_str_02 = ""
  sql_str_02 = sql_str_02 & "DELETE tbl_new.* "
  sql_str_02 = sql_str_02 & "FROM tbl_new"
  db.Execute sql_str_02
  
  sql_str_02 = ""
  sql_str_02 = "INSERT INTO tbl_new " & sql_str
  db.Execute sql_str_02
  
  db.Close

End Sub

 ───────────────────────────────────────  ■題名 : Re:絞込み検索画面を作りたいのですが・・。  ■名前 : ikedatti  ■日付 : 03/2/3(月) 2:25  -------------------------------------------------------------------------
   いつも、丁寧な回答をありがとうございます。
一人っきりの製造なのでとても心強く思います。
回答していただいたコードを参考に問題解決できました。
本当にありがとうございました!!

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