Access VBA質問箱 IV

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

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


5731 / 9994 ←次へ | 前へ→

【7477】Re:検索結果について
質問  TB1  - 06/3/10(金) 11:49 -

引用なし
パスワード
   大元は下記のようなものなんです。
フォームの検索区分には会員番号、会員名、郵便番号、住所、売上商品名の5つのラジオボタンがあって、ひとつえらんで検索ワードを入れる(例えば住所を選んで新宿)とやると、その下に該当するデータが出てきます。テーブルにはもうひとつ、環境設定というものがあって、それぞれの項目に0から3の番号を割り振り完全検索、前方検索、後方検索、ランダム検索、を指定します。
これを3つの検索区分にして名前を変更するだけの作業で出来るかと思ったのですが、簡単ではなくトラブってました。現在、なんとか検索できるようになったのですが、環境設定を、元々の5つの列から3つタイトルを変えて、残りの2列はいらないので削除したところ、フォームで検索しても結果が返ってこなくなったのです。ですから、いまは環境テーブル上で名前を変更した3つの項目と必要ない郵便番号、住所を残したままの状況です。質問は、下記のコードでMe.部分を3つにしているのに、環境設定のテーブル項目を1つでも削ると検索できなくなるのはなぜか、という点です。宜しくお願いします。


Option Compare Database
Option Explicit
Private Sub Form_Load()
 Set Me.Recordset = Nothing
 
 Me.会員番号.ControlSource = ""
 Me.会員名.ControlSource = ""
 Me.郵便番号.ControlSource = ""
 Me.住所.ControlSource = ""
 Me.売上商品名.ControlSource = ""
End Sub

Private Sub 検索_Click()
 Dim cnn As ADODB.Connection
 Dim recN As ADODB.Recordset
 Dim recM As ADODB.Recordset
 Dim strSQL As String
 Dim strSearch As String
 
 Set Me.Recordset = Nothing
 Me.会員番号.ControlSource = ""
 Me.会員名.ControlSource = ""
 Me.郵便番号.ControlSource = ""
 Me.住所.ControlSource = ""
 Me.売上商品名.ControlSource = ""
 
On Error GoTo LBL_ERROR
 Set cnn = New ADODB.Connection
 Set recN = New ADODB.Recordset
 Set recM = New ADODB.Recordset
 
 Set cnn = Application.CurrentProject.Connection
 
 strSQL = "SELECT * FROM 会員マスタ "
 If IsNull(Me.検索ワード) = False And Len(Me.検索ワード) <> 0 Then
  strSearch = "SELECT * FROM 環境設定 WHERE 選択フラグ=1;"
  recN.Open strSearch, cnn, adOpenDynamic, adLockReadOnly
  If recN.EOF = False And recN.BOF = False Then
   strSQL = strSQL & "WHERE " & recN(CInt(Me.検索区分)).Name & " "
   Select Case recN(CInt(Me.検索区分))
    Case 0
     strSQL = strSQL & "='" & Me.検索ワード & "' "
    Case 1
     strSQL = strSQL & "LIKE '" & Me.検索ワード & "%' "
    Case 2
     strSQL = strSQL & "LIKE '%" & Me.検索ワード & "' "
    Case 3
     strSQL = strSQL & "LIKE '%" & Me.検索ワード & "%' "
   End Select
  End If
  recN.Close
 End If
 strSQL = strSQL & "ORDER BY 会員番号;"
 
 recM.Open strSQL, cnn, adOpenKeyset, adLockReadOnly
 If recM.EOF = False And recM.BOF = False Then
  Set Me.Recordset = recM
  Me.会員番号.ControlSource = recM("会員番号").Name
  Me.会員名.ControlSource = recM("会員名").Name
  Me.郵便番号.ControlSource = recM("郵便番号").Name
  Me.住所.ControlSource = recM("住所").Name
  Me.売上商品名.ControlSource = recM("売上商品名").Name
 End If
 recM.Close

 Me.Requery
 
LBL_EXIT:
 Set cnn = Nothing
 Set recN = Nothing
 Set recM = Nothing
 Exit Sub
 
LBL_ERROR:
 Resume LBL_EXIT
End Sub

370 hits

【7386】検索結果について TB1 06/2/24(金) 16:29 質問
【7387】Re:検索結果について まさ7251 06/2/24(金) 20:10 発言
【7392】Re:検索結果について TB1 06/2/27(月) 9:55 質問
【7396】Re:検索結果について まさ7251 06/2/27(月) 17:40 発言
【7404】Re:検索結果について TB1 06/2/28(火) 10:17 質問
【7405】Re:検索結果について TB1 06/2/28(火) 11:43 質問
【7408】Re:検索結果について まさ7251 06/2/28(火) 12:25 発言
【7409】Re:検索結果について TB1 06/2/28(火) 13:03 質問
【7410】Re:検索結果について たん 06/2/28(火) 13:10 回答
【7412】Re:検索結果について まさ7251 06/2/28(火) 13:55 発言
【7413】Re:検索結果について TB1 06/2/28(火) 14:33 発言
【7464】Re:検索結果について TB1 06/3/8(水) 14:16 質問
【7465】Re:検索結果について まさ7251 06/3/8(水) 21:23 発言
【7477】Re:検索結果について TB1 06/3/10(金) 11:49 質問
【7486】Re:検索結果について まさ7251 06/3/10(金) 23:06 発言
【7496】Re:検索結果について TB1 06/3/13(月) 15:23 発言
【7497】Re:検索結果について まさ7251 06/3/13(月) 16:45 発言
【7506】Re:検索結果について TB1 06/3/14(火) 10:03 お礼

5731 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free