
現在、下記のような構文で、「フィルタ」というテキストボックスに文字を入力し、「フィルタ実行」というボタンを押すと、フィルタがかかるように作っています。
----------------------------------
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も見ています
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
-
4
ACCESSのフォーム、開くんですが、見えないようにするには
Access(アクセス)
-
5
【アクセス】複数の条件のDSumを記述したい
Excel(エクセル)
-
6
サブフォームの新規レコードに移動したい アクセス
Access(アクセス)
-
7
(ACCESS)条件に応じて、テキストボックスを表示・非表示設定
その他(データベース)
-
8
Access2000 サブフォームのRecordSet取得法
Access(アクセス)
-
9
Accessのクエリでデータの入力ができません
Access(アクセス)
-
10
フォームで入力しても反映されない
Access(アクセス)
-
11
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
12
ACCESS2010 フィルタ後のエクスポート
その他(Microsoft Office)
-
13
Access サブフォームにフィルター後、計算
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS 複数のフォームから同一...
-
アクセスVBAについて
-
Accessフォームで詳細内の任意...
-
AccessのRefresh・Requery・Rep...
-
ACCESSフォーム入力後の確定
-
アクセエスのレコードの更新をV...
-
accessでオートナンバーを使わ...
-
access2010 特定文字を含むレコ...
-
ACCESSのカレントレコードを、w...
-
Accessで経過日付に応じて色を...
-
Access 指定したレコードへ移動
-
ファイルメーカーのレコード複...
-
MSAccess ロック状態かどうかを...
-
エクセルで、抽出したデータだ...
-
access サブフォームにリストを...
-
Access サブフォームでの選択行...
-
ACCESSでVBAから選択クエリの抽...
-
PDFファイル/抽出許可され...
-
前のレコードの値を自動で入れたい
-
Access 複数フォームを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS 複数のフォームから同一...
-
Accessフォームで詳細内の任意...
-
Accessでレコードの複製
-
accessでオートナンバーを使わ...
-
ACCESSフォーム入力後の確定
-
AccessのRefresh・Requery・Rep...
-
Accessで経過日付に応じて色を...
-
access の 最終レコードの判定...
-
MSAccess ロック状態かどうかを...
-
アクセエスのレコードの更新をV...
-
MS.Access でサブフォーム付の...
-
Accessの「Form_AfterUpd...
-
DoCmd.SearchForRecord が動か...
-
ファイルメーカーProでレコード...
-
Access 指定したレコードへ移動
-
ACCESS 単票形式フォームの新...
-
ファイルメーカーで重複してイ...
-
ファイルメーカーのレコード複...
-
AccessVBA フィルタとカレント...
-
アクセスで複数レコードを1レ...
おすすめ情報