• ベストアンサー

ACCESS2000でクエリで抽出したレコードをフォームに表示するには

A顧客テーブルで作成したフォームからコマンドボタン(電話番号検索)押下時に 電話番号入力画面が出て入力した電話番号とマッチした顧客レコードをフォームに 表示させたいのですが上手く出来ません。 現在進めている方法では何がダメなんでしょうか(以下は考え方) A顧客テーブルから作成したフォムに電話番号コマンドを作成してコマンドを 押すとクエリの実行をさせる。クエリはA顧客テーブルのフィールドを全て選択して抽出条件に[電話番号入力]としている。 (結果) ・フォームを開くと先に電話番号入力が出てくる、先にフォームが開かない。 ・電話番号検索コマンドボタンを押すと抽出条件に合ったレコードはデーターシートビューに表示される。 よろしくお願いします

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

>この入力させるダイアログをパラメータダイアログのような >シンプルな物にすることは困難でしょうか? そういう場合は、自分で検索ダイアログフォームを作ることになります。 それが面倒(または難しい)場合は、InputBox関数で代用しましょう。 また、検索の部分を自分でコーディングすることになります。 その一例です。(DAOのレコードセットによる方法) まず、VBE画面のメニューの[ツール]→[参照]で、 「Microsoft DAO X.X Object Library」(X.Xはバージョン、多分3.6か3.5) にチェックが入ってなければ、チェックしてOKします。 で、電話番号検索ボタンのクリックイベントに以下のように書きます。 Dim temp As String Dim rs As DAO.Recordset temp = InputBox("電話番号を入力して下さい。") If Len(temp) = 0 Then   Exit Sub End If Set rs = Me.Recordset.Clone rs.FindFirst "電話番号 = '" & temp & "'" If rs.NoMatch Then   MsgBox "該当するレコードがありません。" Else   Me.Bookmark = rs.Bookmark End If rs.Close: Set rs = Nothing なお、テーブルの電話番号フィールドは文字列型である必要があります。 また、コードの内容は各キーワードでヘルプで検索して下さい。

mehiro2
質問者

お礼

遅くなりましたが コーディングまで教えていただいて有難うございました。 VBEを使うんですね 持っていたマニュアルには記述されてないので、 その方の本を買って勉強しなおします。 本当に助かりました

その他の回答 (3)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

>それと電話番号表示コントロールは、非連結テキストボックスなのでしょうか >それともフォーム作成時に作られた電話番号のテキストボックスなのでしょうか フォーム作成時に作られた電話番号のテキストボックスのことです。 そのテキストボックスの名前を使って、 Me!電話番号 とするわけです。 これでそのまま使えるはずです。

mehiro2
質問者

補足

おはようございます。さっそくのお返事有難うございました。 やってみたらうまく表示できました。 もう1つ御無理をお願いしたいのですが この入力させるダイアログをパラメータダイアログのような シンプルな物にすることは困難でしょうか?

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

#1のmaruru01さんの方法で良いとおもいます。 もっと簡単にやりたければA顧客テーブルから作成したフォームのプロパティを開 きレコードソースにテーブルを基にしたクエリを作成し電話番号のフィールドの 抽出条件に [電話番号を入力] と記述し保存すれば、そのフォームを開いた時に 最初に[電話番号を入力]というパラメタ入力のダイアログボックスを表示し入力後 Enterキーでフォームが開き該当するレコードがフォームに表示されます。

mehiro2
質問者

補足

有難うございます。 上記の方法でフォームを開いた状態からコマンドボタンを押して 電話番号入力パラメータ入力ダイアログを開くことは出来ませんでしょうか?

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 いろいろやり方はありますが、簡単な方法を1つ。 フォームの電話番号表示コントロール(おそらくテキストボックス)が、[電話番号]という名前だとします。 コマンドボタンのクリックイベントで、 Private Sub 電話番号検索_Click()   Me!電話番号.SetFocus   DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70 End Sub これは、ACCESSのメニューの[編集]→[検索]で表示されるダイアログを使用した検索と同じことをしているだけです。 通常はフォーカスが当たっている(カーソルがある)フィールドを検索しますが、上記コードだと、自動的に[電話番号]にフォーカスを移動して検索ダイアログボックスを出すわけです。

mehiro2
質問者

補足

有難うございます。 初心者の質問で申し訳ございませんが Private Sub 電話番号検索_Click()   Me!電話番号.SetFocus   DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70 End Sub は、そのまま使えますか? それと電話番号表示コントロールは、非連結テキストボックスなのでしょうか それともフォーム作成時に作られた電話番号のテキストボックスなのでしょうか すみませんがよろしくお願い致します。

関連するQ&A