こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access 検索フォーム

いつもお世話になってます。
Accessの検索フォームについて教えて下さい。
業務マスターと仕事DBという2つのデーターベースがあります。
業務マスターは共有のサーバーの中にあり、得意先テーブルをリンクして、それをもとに得意先フォームを作りました。
非連結のテキストボックス(txt検索)と非連結のリストボックス(一覧)がり、リストボックス(一覧)のクエリ得意先の抽出に使うフィールドの条件に、Like"*"&[Forms]![得意先フォーム]![txt検索]&"*" を入れました。
txt検索に文字を入れ、一覧リストボックスで絞込をし、選ぶとフォームに表示されるという流れにしたのですが・・・。

Private Sub txt検索_AfterUpdate()

Me![一覧].Requery

End Sub

Private Sub 一覧_AfterUpdate()

Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[得意先ID] = " & Str(Nz(Me![一覧], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

[Forms]![得意先フォーム]![txt検索]というパラメータがでて(今まで出たことがない) 文字を入力しても実行できませんでした。参照元が分からないのかなと思いますが、どうしたらうまくいくのか分かりません。どなたかお知恵をかしていただけないでしょうか。Accessは2003を使っています。よろしくお願いします。

投稿日時 - 2009-12-09 11:24:15

QNo.5509319

すぐに回答ほしいです

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

> [Forms]![得意先フォーム]![txt検索]というパラメータがでて

これが出る以上は、「得意先フォーム」が(直接)開いていないか、同フォーム上に
「txt検索」というコントロールがないか、のどちらかを考えるしかありません。

すでにフォーム名やコントロール名は何度も見直されていると思いますので、
その間違いはないとするなら・・・考えられるのは『「得意先フォーム」をサブフォーム
として使っている』、といったところでしょうか。

上記の推測が正しければ、クエリの検索条件を以下のように変更してください。
(最上位のフォームが「メインフォーム」で、そこに埋め込んだ「得意先」サブフォーム
 のソースオブジェクトを「得意先フォーム」にしている場合)

【現在】
Like "*" & [Forms]![得意先フォーム]![txt検索] & "*"
【修正】
Like "*" & [Forms]![メインフォーム]![得意先]![txt検索] & "*"

※サブフォームの元になっている「得意先フォーム」の名前は、クエリの検索条件
  の式上には出てきません。
  (埋め込んだサブフォームコントロールが、同名だった場合は別として)


なお、今回の質問の件とは直接の関連はありませんが、

> Set rs = Me.Recordset.Clone

の「Recordset」と「Clone」の間の「.」は無用ですので、ご注意下さい。
(「RecordsetClone」でひと括り)

投稿日時 - 2009-12-09 21:17:12

お礼

返答ありがとうございます。
条件式等を見直し、VBAも見直し(RecordsetCloneでひと括りなんですね、勉強になりました)色々やってみましたが、直らなかったのでフォームを1から作り直しました。そうしたら普通に動きました・・・。お騒がせして大変申し訳ありません。

投稿日時 - 2009-12-10 11:45:14

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問