テキストボックスから一致したデータを抽出する方法

このQ&Aのポイント
  • Access2003で、氏名と住所のデータをテーブルで作成し、フォームでテキストボックスとコマンドボタンを作成します。テキストボックスに入力した氏名とテーブルの氏名を比較して一致するデータのみを抽出します。
  • テキストボックスに入力した氏名とテーブルの氏名を比較して一致するデータを抽出する方法です。抽出したデータは別のフォームで表示されます。
  • テキストボックスから入力された氏名とテーブルの氏名を比較して一致するデータを抽出する方法です。抽出したデータは別のフォームで表示されます。Access2003を使用しています。
回答を見る
  • ベストアンサー

テキストボックスから一致したデータを抽出したい。

初心者です。Access2003で、 (1)テーブルで「氏名」、「住所」のデータを作成。 (2)フォームでテキストボックス(txt_入力)とコマンドボタンを作成。 (3)押下時で開くようなフォームを作成(F_データリスト) テキストボックス(txt_入力)に氏名を入力し、テーブルと一致したものだけを抽出したい。 以下のように記述するとコマンド45押下でパラメータの入力画面がでてしまします。助けてください。 Private Sub コマンド45_Click() On Error GoTo Err_コマンド45_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "F_データリスト" stLinkCriteria = "[氏名]=" & " Me![txt_入力]" DoCmd.OpenForm stDocName, , , stLinkCriteria 以下省略。

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

ACCESSは詳しくありませんが、、、 ""で括ると変数では無く文字列になってしまいます。 stLinkCriteria = "[氏名]=" & " Me![txt_入力]" の部分を MsgBox "[氏名]=" & " Me![txt_入力]" としてみると表示されるのは [氏名]= Me![txt_入力] ですよね? MsgBox "[氏名]=" & "'" & Me!txt_入力 & "'" にすると表示されるのは [氏名]= '入力した値' です。 stLinkCriteria = "[氏名]=" & "'" & Me!txt_入力 & "'" だと如何でしょうか?

tuyo1980
質問者

お礼

解決しました。 ありがとうございました。

関連するQ&A

  • accessで、フォームの検索をしたいのです。

    今ACCESSで、データ管理をしているのですが、どうしてもうまくいかなくて、困っています。 毎日の出来事を記述するテーブル用のフォームを作って、記述していて、そのデータがたまってきています。 他のフォームに、検索用のテキストボックスとコマンドボックスを作って検索したいのです。 コントロールウィザードを使うと、完全一致のデータしかでてこないのですが、部分一致のレコードを表示させるにはどうすればいいのですか? 教えていただけるとうれしいです。 コントロールウィザードを使うと以下のようになります。多分少しどこかを変えるといいのではないかと思うのです。どうか、よろしくお願いします。 Private Sub コマンド144_Click() On Error GoTo Err_コマンド144_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(21839) & ChrW(12356) & ChrW(21512) & ChrW(12431) & ChrW(12379) & ChrW(12513) & ChrW(12514) stLinkCriteria = "[内容]=" & "'" & Me![テキスト105] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_コマンド144_Click: Exit Sub Err_コマンド144_Click: MsgBox Err.Description Resume Exit_コマンド144_Click End Sub もしかして。。と思い、以下の部分、 stLinkCriteria = "[内容]=" & "'" & Me![テキスト105] & "'" を次のように変えてみたけれど、やっぱりうまくいきませんでした。 stLinkCriteria = "[内容]=" & "'" & "*" & Me![テキスト105] & "*" & "'" よろしくお願いします。

  • フォームの検索で一致データが無い場合の表示

    簡単なシステムを作成している初心者です。 エクセル2003を使用しています。 コマンドウィザードを使用してVBAに入力されている状態です。 検索用のフォーム(F_番号検索)で番号を入力し(テキストボックス[番号入力欄])、検索コマンドを押し 一致した番号の情報のみ別フォーム(F_情報)に表示されます 一致した番号の情報がなくても F_情報のフォームが開いてしまうのですが、 これを別フォームでもしくはメッセージボックスで「一致する番号はありません」等の表示 をしたいのですが上手くいきません。 どうすればいいでしょうか・・・? Private Sub 検索_Click() On Error GoTo Err_検索_Click Dim stDocName As String Dim stLinkCriteria As String stLinkCriteria = "[番号]=" & "'" & Me![番号入力欄] & "'" DoCmd.OpenForm "F_情報", , , stLinkCriteria [Forms]![F_番号検索].Visible = True Exit_検索_Click: Exit Sub Err_検索_Click: MsgBox Err.Description Resume Exit_検索_Click End Sub

  • ウイザードからのVBAでクエリー名をコードでなく文字にするには

    マシンによっては、以下の2の形式でウイザードを使ったVBAで表示されるのですが 1の形のマシンがありどこの設定をすればよいか教えてください ACCESSXPです。 1.コードになっている Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(-30163) & ChrW(23450) & ChrW(12501) & ChrW(12457) & ChrW(12540) & ChrW(12512) DoCmd.OpenForm stDocName, , , stLinkCriteria 2、日本字になっている Dim stDocName As String Dim stLinkCriteria As String stDocName = "設定フォーム" DoCmd.OpenForm stDocName, , , stLinkCriteria よろしくお願いします

  • Access VBAでのフィルタ処理

    アクセス2003を使用しています。 今VBAを使用して、フォームのテキストボックスに記入された文字列を検索条件に、 クエリからデータ抽出したいのですが、 うまくいきません。 解決したい事は、 「abc*」といったように、前方が一致している文字列データを すべて抽出するといった処理です。 今は下記のようなプログラムを組んでいます。 Private Sub コマンド1_Click() On Error GoTo Err_コマンド1_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "クエリ1" DoCmd.OpenQuery stDocName, acNormal, acEdit If IsNull(テキストボックス) Then Else stLinkCriteria = "[クエリデータ]=" & "'" & Me![テキストボックス] & "'" End If DoCmd.ApplyFilter stDocName, stLinkCriteria Exit_コマンド1_Click: Exit Sub Err_コマンド1_Click: MsgBox Err.Description Resume Exit_コマンド1_Click End Sub これだと完全に一致しなければ抽出してくれません。 どの様に変更すればよいでしょうか? よろしくお願いします。

  • 部分一致での検索方法

    Access2000のVBAで3つのオプションボタンでフィールドを選択し、1つのテキストボックス(オプションテキスト)に文字列を入力して検索ボタンで検索するプログラムを以下のような記述の仕方で作成しました。 完全一致した場合は問題なく表示されるのですが、できればテキストボックスに入力した文字列が部分一致した場合でも表示させるようにしたいのですが、どうすればよいかがわからないので教えてください。 Private Sub オプション検索_Click() Dim stFilter As String Dim stDocName As String If 特定検索 = 1 Then stDocName = "フォーム名"   stFilter = "フィールド名1='" & テキストボックス名 & "'" DoCmd.OpenForm stDocName, , , ElseIf 特定検索 = 2 Then stDocName = "フォーム名" stFilter = "フィールド名2='" & テキストボックス名 & "'" DoCmd.OpenForm stDocName, , , stFilter ElseIf 特定検索 = 3 Then stDocName = "IPForm" stFilter = "フィールド名3='" & テキストボックス名 & "'" DoCmd.OpenForm stDocName, , , stFilterOn End If End Sub

  • アクセスのイベント記述について。

    あるフォーム(患者IDで検索した結果を表示した表形式のフォーム)でコマンド30をクリックしたら、別の入力画面が開くように設定したのですが、患者IDのみ一致したフォームが開くようにはなったのですが、これプラス、依頼日も一致したフォームが開くようにしたいです。以下の記述に変更を加えるとしたら、どのようにしたらよいのでしょうか?よろしくお願いいたします。 Private Sub コマンド30_Click() On Error GoTo Err_コマンド30_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(81) & ChrW(58) & ChrW(26908) & ChrW(20307) & ChrW(21029) & ChrW(20837) & ChrW(21147) & ChrW(-238) stLinkCriteria = "[患者ID]=" & Me![患者ID] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_コマンド30_Click: Exit Sub Err_コマンド30_Click: MsgBox Err.Description Resume Exit_コマンド30_Click End Sub

  • VBA 該当データがない時 エラーメッセージを表示

    いつもお世話になっております。 システム開発の練習中で、架空の取引先との請求処理をデータベースで管理するシステムを製作中です。 請求データ照会エントリーフォームのテキストボックスに取引先コードを入力し照会ボタンを押下すると取引先マスターテーブルと合致するデータが請求データ照会フォーム上に現れるといった流れで制作しています。 フォーム展開の流れは 〔請求データ照会エントリーF〕→〔請求データ照会F〕 と、単純なものです。 請求データ照会Fにデータの反映をすることは出来たのですが、取引先コードが先に登録されたデータに該当するものがない場合で照会ボタン押下した際、現段階ではまっさらなフォームが現れてスッキリしていないので、請求データ照会Fのフォームを表示せずに、メッセージボックスで「該当するデータがありません。」などといったメッセージを出したいのですが、出来ませんでした。 以下、照会ボタンクリック時の現段階でのプログラムです。 Private Sub 照会_Click() On Error GoTo Err_照会_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "請求データ照会F" stLinkCriteria = "[取引先コード]=" & "'" & Me![取引先コードtxt] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_照会_Click: Exit Sub Err_照会_Click: MsgBox Err.Description Resume Exit_照会_Click End Sub どういった内容のプログラムを組めばよいか、アドバイスいただませんか?? 宜しくお願いいたします☆

  • アクセスのイベント記述について追加質問です。(その2)。

    大変恐縮なのですが、先ほど締め切ったばかりの質問に追加質問です。あるフォーム(患者IDで検索した結果を表示した表形式のフォーム)でコマンド30をクリックしたら、別の入力画面が開くように設定して、患者IDと依頼日が一致したフォームが開くようにはなったのですが、これプラス、検体名も一致したフォームが開くようにしたいです。以下の記述に変更を加えるとしたら、どのようにしたらよいのでしょうか?何度もすみませんが、よろしくお願いいたします。 Private Sub コマンド30_Click() On Error GoTo Err_コマンド30_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(81) & ChrW(58) & ChrW(26908) & ChrW(20307) & ChrW(21029) & ChrW(20837) & ChrW(21147) & ChrW(-238) stLinkCriteria = "[患者ID]=" & Me![患者ID] stLinkCriteria = stLinkCriteria & " AND [依頼日]=#" & Me![依頼日] & "#" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_コマンド30_Click: Exit Sub Err_コマンド30_Click: MsgBox Err.Description Resume Exit_コマンド30_Click End Sub

  • 検索用フォームで数値型データを抽出する方法

    いつも大変お世話になっております。アクセス初心者ですが宜しくお願いします。 テーブル1を元にクエリ1を作成し,それを元にフォーム表示用を作成しました。フォーム表示用のデータを検索するために非連結のフォーム検索用を作成しました。 検索用フォームでは,氏名,住所,契約締結日等複数の非連結フィールドがあり,入力された値を抽出するために,検索実行というコマンドボタンを一つ配置しています。 検索実行コマンドボタンは,以下のようになっています。 Private Sub 検索実行_Click() On Error GoTo エラー処理 Dim StrWhr As String 'Where条件式 Dim StrMsg As String '表示メッセージ Dim StrSrc As String 'レコードソース Dim stDocName As String '表示用フォームの名前 If Nz(Me!名前, "") <> "" Then StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") & "名前 Like '*" & Me!名前 & "*'" End If If Nz(Me!契約締結日, "") <> "" Then StrWhr = IIf(StrWhr = "", "", StrWhr & " And ") & "Format(契約締結日,'yyyy/mm/dd') Like '*" & Me!契約締結日 & "*'" End If If MsgBox(StrMsg, vbOKCancel, "確認") = vbOK Then DoCmd.OpenForm "frm_顧問先CARD", , , StrWhr End If 終了処理: Exit Sub エラー処理: MsgBox Err & Error$, , Me.Name & " 検索実行" Resume 終了処理 End Sub 表示用フォームに契約年数という項目があり,数値型のデータが入力されています。そのデータを検索用フォームで算術演算子を使用して抽出するには,どのようにしたら良いでしょうか。 過去に質問したことと似ているので,色々と参考書を見ながら考えてみたのですが,上手くいきません。 できれば,一つのテキストボックスに >12 とか 4<8 とか入力してデータを抽出したいですが,不可能なら検索用フォームに二つのテキストボックスを配置して,そのテキストボックスで範囲を指定し,範囲内のレコードを抽出するという方法でも構いません。 どなたか,ご教示下さい。宜しくお願いいたします。

  • Access フォームで検索した結果をフォームで表示するときにあいまい検索をしたい

    Access2003を使用して、検索フォームをつくり、検索結果を別フォームへ表示させるプログラムを組みました。 その際に、かな検索をするとかなが完全一致でないと検索されません。 あいまい検索にてかな検索をする方法はありませんでしょうか? ソースは以下の通りです。 Private Sub cmdSearch_Click() On Error GoTo Err_cmdSearch_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(70) & ChrW(95) stLinkCriteria = "[カナ氏名]=" & "'" & Me![カナ氏名] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_cmdSearch_Click: Exit Sub Err_cmdSearch_Click: MsgBox Err.Description Resume Exit_cmdSearch_Click End Sub

専門家に質問してみよう