dポイントプレゼントキャンペーン実施中!

Access初心者です。
今Accessで顧客管理を作成しています。
フォームで電話番号の下4桁で検索し、該当の顧客の情報がフォームで見れるようにしたいのですが、クエリでの取り込むべきフィールドや抽出条件などがよくわかりません。
今現在はクエリに「電話番号」フィールドだけを取り込み、抽出条件に Right([Forms]![電話番号検索]![電話番号],4) というのを入れてます。
今の段階で作成しているものは、
・ユーザーテーブル
・検索実行クエリ
・ユーザーフォーム
・書き込みフォーム
・電話番号検索フォーム
・開くマクロ
・閉じるマクロ
・最後のレコードへ移動するマクロ
・新しいレコードへ移動するマクロ
・書き込みマクロ
・終了マクロ

以上になります。
電話番号検索フォームで下4桁を入力し、検索ボタンを押すとユーザーフォームの該当の顧客の情報が表示されるようにしたいというのが目的です。
何卒ご指導の程よろしくお願い致します。

A 回答 (7件)

>物分りが悪くて本当に申し訳ないのですが、


物分りが悪いのじゃないですね
基礎知識が不足しています

>フォームのソースをそのクエリにするというのは、
>どうゆう風にすれば良いのか良ければ教えて頂けないでしょうか…?
簡単なことですから教えてあげてもいいですが
これだけ覚えたってすぐまた分からないことが出てきますよ
それをまたここで聞くのですか?

Netじゃ系統だった知識は身につきません
入門書をせめて1冊最後まで読んでください
    • good
    • 0
この回答へのお礼

自分で探って解決しました。
ありがとうございました。

お礼日時:2007/11/13 16:55

私は、「電話番号の下4桁で」といった検索をするときは、


クエリの式で、
1.電話番号を半角数字のみに整形
2.上記の結果を逆順にする。(StrReverse関数)
としておき、
フォームの電話番号も同様に
1.電話番号を半角数字のみに整形
2.上記の結果を逆順にする。(StrReverse関数)
としたうえ、
Like で部分検索します。

こうすれば、03-456-78990と入力しようが、
7890でも456-7890でも検索できます。
    • good
    • 0

お詫びのお詫び:



× "PHONE LIKE '*-*-" & Me.電話番号下四桁 & "'"
○ "PHONE LIKE '*" & Me.電話番号下四桁 & "'"

つまり、<下4桁のみにマッチする工夫>は間違い。

まあ、完全なゴミ回答でした。

※ついでに、<電話番号検索フォームで下4桁を入力し>は??
※フォームヘッダーなどに検索用入力テキストボックスをが普通とは思います。
    • good
    • 0

お詫び:



質問を曲解していました。
マッチする回答は以下のようでしょう。
つまり、No1さんの回答の後追いです。
ただ、条件文は下4桁のみにマッチする工夫はしています。

Private Sub コマンド_OK_Click()
  Dim strSQL As String

  strSQL = "SELECT * FROM クエリXXX WHERE " & "PHONE LIKE '*-*-" & Me.電話番号下四桁 &
"'"
  Forms("Customer").RecordSource = strQuery
  Forms("Customer").Reauery  コマンド_終了_Click
End Sub

※自宅からですので未テストです。
※クエリからは抽出条件を除くのが前提です。
※フォームのRecordSourceをオープン時にどうするかは考え方次第です。
    • good
    • 0

>クエリで抽出することはできるようになったのですが、


>抽出したものをフォームで表示させることがまだできないです…
フォームのソースをそのクエリにすればいいだけのことでは
    • good
    • 0
この回答へのお礼

度々本当にありがとうございます!
物分りが悪くて本当に申し訳ないのですが、フォームのソースをそのクエリにするというのは、どうゆう風にすれば良いのか良ければ教えて頂けないでしょうか…?

お礼日時:2007/11/08 09:25

テーブル<Customer>



cuntomer_num__company_________kname_______zipcode__address1__address2__building__phone
______________101__スポーツランド__鈴木 一郎__150-______東京都____渋谷 2____Aビル____03-400-3333
______________102__スポーツランド__岡島 一郎__150-______東京都____渋谷 2____Bビル____03-400-4444
______________103__スポーツランド__田中 一郎__150-______東京都____渋谷 2____Cビル____03-400-5555

フォーム<Customer>

Private Sub コマンド_InputPhoneを開く_Click()
On Error Resume Next
  DoCmd.OpenForm "InputPhone", , , Null
End Sub

フォーム<InputPhone>

Private Sub コマンド_OK_Click()
  Forms("Customer").Controls("電話番号下四桁") = Me.電話番号下四桁
  Forms("Customer").FilterOn = False
  Forms("Customer").Filter = "PHONE LIKE '*-*-" & Me.電話番号下四桁 & "'"
  Forms("Customer").FilterOn = True
  コマンド_終了_Click
End Sub

Private Sub コマンド_終了_Click()
  DoCmd.Close
End Sub


フォーム<Customer>からフォーム<InputPhone>を開きます。
[電話番号下四桁]を入力したら[OK][Cancel]ボタンをクリック。
[OK]の場合は、一応、フォーム<Customer>の[電話番号下四桁]にも表示しフィルターを実行。

こういう感じです。
    • good
    • 0
この回答へのお礼

ありがとうございます!
とても詳しくて勉強になりました。

お礼日時:2007/11/07 17:01

下4桁を入力するのなら



抽出条件は

like "*" & [Forms]![電話番号検索]![電話番号]

検索ボタンクリックにフォームを再クエリするマクロを書きます
    • good
    • 0
この回答へのお礼

ありがとうございました!
クエリで抽出することはできるようになったのですが、抽出したものをフォームで表示させることがまだできないです…

お礼日時:2007/11/07 17:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!