色んなやり方が考えられます。
ここでは、検索パラメータを入力するフォームを用意する方法を示します。
<顧客名簿>
ID____名前_______フリガナ________会社名_郵便番号_都道府県_市区町村_番地_ビル等
1_____鈴木 一郎__スズキ イチロウ_関西組
2_____中村 太郎__ナカムラ タロウ_関東組
3_____山田 信次__ヤマダ シンジ___関東組
<検索フォーム>
ID:_____[________]
名前:___[_______________]
会社名:_[関東______________]
<検索結果>
2_____中村 太郎__ナカムラ タロウ_関東組
3_____山田 信次__ヤマダ シンジ___関東組
*表示フォーム=帳票ですと、このように表示されます。
さて、以下は、検索コマンドボタンのイベントに書いたコードです。
Private Sub cmdLookupCustList_Click()
On Error Resume Next
Dim stLinkCriteria As String
' ----------------------------
' [ID] が指定されている場合
' ----------------------------
stLinkCriteria = IIf(Nz(Me.ID) > 0, "[ID]=" & Me.ID, "")
If Len(stLinkCriteria & "") = 0 Then
' ---------------------------------------------------
' [ID] が指定されていない場合のみ他の検索条件を採用
' ---------------------------------------------------
stLinkCriteria = IIf(Len(Me.名前 & "") > 0, _
"[名前] LIKE '" & Me.名前 & "*'", _
"")
If Len(stLinkCriteria & "") > 0 Then
' ----------------------------------------------------
' [名前] が指定されていれば、AND文にするか否かを判定
' ----------------------------------------------------
stLinkCriteria = IIf(Len(Me.会社名 & "") > 0, _
stLinkCriteria & " AND [会社名] LIKE '" & Me.会社名 & "*'", _
stLinkCriteria)
Else
' -------------------------------------------------------------------
' [名前] が指定されていなければ、[会社名]の指定の有無で条件文を作成
' -------------------------------------------------------------------
stLinkCriteria = IIf(Len(Me.会社名 & "") > 0, "[会社名] LIKE '" & Me.会社名 & "*'", _
"")
End If
End If
If Len(stLinkCriteria & "") > 0 Then
DoCmd.OpenForm "顧客名簿", , , stLinkCriteria, acFormReadOnly
Else
MsgBox "検索条件が不明です!", vbInformation, " お知らせ"
End If
End Sub
お礼
ご回答有難う御座います。おかげさまで問題解決しました。頂いた回答はとても約にたちました!有難う御座いました(^_^)