現在、下記のような構文で、「フィルタ」というテキストボックスに文字を入力し、「フィルタ実行」というボタンを押すと、フィルタがかかるように作っています。
----------------------------------
Private Sub フィルタ実行_Click()
Me.Filter = "故障処理票番号 like '" & Me!フィルタ & "'"
Me.FilterOn = True
End Sub
----------------------------------
※故障処理票番号のデータ型はテキスト型。
頭にアルファベット2文字と4桁の数字からできています。例:AA0001
※フォームは表形式。
2つ質問があります。
1)テキストボックスに入力した値で始まる文字をすべてフィルタで抽出する方法。
つまり、"AA"で始まる番号をすべて検索したい場合に、テキストボックスに"*"を入力することなく、結果が返る方法を教えてください。
2)フィルタで抽出したレコードをカレントレコードにする方法。
複数あった場合には、レコードセレクタで選択したレコードをカレントレコードとする方法を教えてください。
(ボタンを押すと、カレントレコードとなっているレコードの詳細表示(単票フォーム)に飛ぶように設定しているので、カレントレコードを移動する必要があります。ボタンは詳細セクションのそれぞれのレコードの横に表示されるよう作成しています)
VBA独学&初心者なので、多分、初歩的な質問なんだと思います。どうぞよろしくお願いします!!
No.4ベストアンサー
- 回答日時:
起票Fフォームはテーブルを元に作成していますか?
言い換えると、起票Fのレコードソースはそのテーブルになっていますか?
あと、DAOの参照設定はちゃんとしてますか?
この回答への補足
起票Fフォームと起票一覧Fフォームのレコードソースは同じクエリです。
また、DAOの参照設定はご指示いただいたとおりにしましたが。。。
色々とご親切にご回答いただきまして、ありがとうございました。
結局運用面で調整することにしました。
せっかくご回答いただいたのに、すみません。
でもきっと、教えていただいたことはこれから役に立つでしょう。
本当にどうもありがとうございました。
No.3
- 回答日時:
GotoRecordメソッドでは上手く行かないと思います。
Bookmarkプロパティを使用します。
こんな感じでしょうか。
VBE画面のメニューの[ツール]→[参照設定]で、
「Microsoft DAO X.X Object Library」
にチェックを入れてください。
Private Sub 単票へ_Click()
Dim rs As DAO.Recordset
DoCmd.OpenForm "起票F", , , Me.Filter
Set rs = Forms!起票F.Recordset.Clone
rs.FindFirst "故障処理票番号 = '" & Me!故障処理票番号.Value & "'"
Forms!起票F.Bookmark = rs.Bookmark
DoCmd.Close acForm, "起票一覧F"
Set rs = Nothing
End Sub
この回答への補足
ご回答、ありがとうございます!
ご指導いただきました設定をし、コードを丸々コピペさせていただきました(^^;
ですが、「型が一致しません」というエラーが出て、デバッグすると「Set rs = Forms!起票F.Recordset.Clone」の部分が黄色表示になります。。。
ナンデデショウ??
何度もご回答いただいているのに、赤ん坊みたいでごめんなさい。
すみませんが、教えていただけますか?
No.2
- 回答日時:
>詳細セクションに作成したボタンを押すと、
その手の全体的な操作をするボタンは、フォームのヘッダーかフッターにおきましょう。
ちなみに、フィルタというテキストボックスも、フィルタ実行というボタンも全て、フォームヘッダーかフッターにおきましょう。
それなら上手く行くはずです。
この回答への補足
ご回答、ありがとうございます。
単票に移るボタンをヘッダーに移しましたが、やはり結果は同じでした。。。
ちなみに、フィルタの実行に関するコントロールはヘッダーにあります。
単票に移るボタンを詳細セクションに置いたのは、見たいレコードの直ぐ横にあるボタンを押せば詳細が見られる、という方が、うっかりレコードの選択を忘れて他のデータが表示されるのを防げるカナ?と思ったワケで。。。
私の作成したDBを実際使うのは、まったく見知らぬ人なので。。。
No.1
- 回答日時:
こんにちは。
maruru01です。1)
Me.Filter = "故障処理票番号 like '" & Me!フィルタ & "*'"
でいいと思います。
2)
意味がよくわかりません。
レコードセレクタ(移動ボタンのこと?)で移動したら、そのままカレントレコードになると思いますが。
この回答への補足
ご回答ありがとうございます!!
1)に関しては、解決しました!ありがとうございます♪たすかりました~☆
2)に関してなんですが、私もmaruru01さんのおっしゃるとおり、レコードセレクタで移動したら、そのままカレントレコードとして認識されるものだと思って今した。。。が、
たとえば、すべてのレコードの数が10件あったとします。
で、フィルタをかけた結果、1件目に表示されたレコードは、全体の5番目だったとします。
そして、詳細セクションに作成したボタンを押すと、その表示されたレコード(つまり全体の5番目)のレコードではなく、全体の1番目のレコードの単票に飛んでしまうんです。。。(T0T)
ちなみに、単票に飛ぶボタンは下記のように作成しています。
---------------------------
Private Sub 単票へ_Click()
DoCmd.OpenForm "起票F"
'起票Fを開くとき、起票一覧Fで表示しているレコードに飛ぶ。
DoCmd.GoToRecord , "起票F", acGoTo, CurrentRecord
DoCmd.Close acForm, "起票一覧F"
End Sub
----------------------------
※ボタン名:単票へ
※単票フォーム名:起票F
※表形式フォーム名:起票一覧F
※起票Fと起票一覧Fのレコードソースは同じクエリです。
"CurrentRcord"ではなくて、本当は"同じ故障処理票番号を持つレコードに飛ぶ"という形にしたほうが良いのだと思うのですが、ヘルプなどを参考にあれこれ作ってみたのですけど、エラーばかり返ってあきらめてしまいました。。。
もし、"同じ故障処理票番号を持つレコードに飛ぶ"という形の方がお分かりになるようでしたら、そちらを教えていただけますか???
甘えてしまってごめんなさい~。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- スピーカー・コンポ・ステレオ レコードのマトリクス番号の見方を教えてください。 最近レコードの知識が少しずつ増え、最近マトリクス番 1 2022/08/14 13:58
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
モテ期を経験した方いらっしゃいますか?
一生に一度はモテ期があるといいますが、みなさんどうですか? いまがそう! という方も、「思い返せばこの頃だったなぁ」という方も、よかったら教えて下さい。
-
【選手権お題その3】この画像で一言【大喜利】
とあるワンシーンを切り取った画像。この画像で一言、お願いします!
-
「これいらなくない?」という慣習、教えてください
現代になって省略されてきたとはいえ、必要性のない慣習や風習、ありませんか?
-
サブフォームの新規レコードに移動したい アクセス
Access(アクセス)
-
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
-
4
2つ目のレコードの値を取得するには?
Access(アクセス)
-
5
フォームで入力しても反映されない
Access(アクセス)
-
6
Accessの条件付き書式設定で、複数の条件が一致した時の書式を設定したい
その他(Microsoft Office)
-
7
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
8
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
docmd.gotorecordを起動するには
-
Accessフォームで詳細内の任意...
-
AccessのRefresh・Requery・Rep...
-
ACCESS 複数のフォームから同一...
-
MSAccess ロック状態かどうかを...
-
ACCESSフォーム入力後の確定
-
エクセルで、抽出したデータだ...
-
Access サブフォームでの選択行...
-
Accessでデータを更新したらそ...
-
Access2000、これはいったい・...
-
ACCSESS2013VBA フォームのレコ...
-
「パラメータが少なすぎます。3...
-
X-Ripperというフリーウェアに...
-
インデックスまたは主キーにはn...
-
Accessのコンボボックスでリス...
-
【AccessVBA】レコードセットOp...
-
Access2000 サブフォームのReco...
-
エクセル VBA メール本文に指定...
-
access別のテーブルを参照して...
-
Access 複数フォームを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS 複数のフォームから同一...
-
Accessでレコードの複製
-
ACCESSフォーム入力後の確定
-
Accessフォームで詳細内の任意...
-
AccessのRefresh・Requery・Rep...
-
accessでオートナンバーを使わ...
-
Accessで経過日付に応じて色を...
-
アクセエスのレコードの更新をV...
-
access の 最終レコードの判定...
-
MS.Access でサブフォーム付の...
-
DoCmd.SearchForRecord が動か...
-
Accessの「Form_AfterUpd...
-
アクセスで複数レコードを1レ...
-
ファイルメーカーで重複してイ...
-
禁止文字をエクセルかアクセス...
-
ファイルメーカーProでレコード...
-
二つ以上あるものだけを抽出し...
-
AccessVBA フィルタとカレント...
-
アクセスのフォームビューの帳...
-
MSAccess ロック状態かどうかを...
おすすめ情報