![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんにちは、お世話になっています。
AC2000/WIN2000です。
質問させて頂きます。
メインフォーム(マスター)があり、
そのフォームのボタンを押すと
検索用のポップアップフォームが開くようになっています。
検索フォームの検索社員番号テキストボックスに
指定の社員番号を入力すると
マスターフォームの社員番号が検索出来るように
以下のように書いたんですが
検索することが出来ません。
おかしいとこをご指摘して頂ければ幸いです。
----------------------------
Public NumA, NumB As Integer
NumA = Forms!マスター!IDNum
NumB = Me.[検索社員番号]
Forms!マスター!社員NO2.SetFocus
DoCmd.FindRecord NumB & "*", , , acDown, True, , True
If NumA <> Forms!マスター!IDNum Then
NumA = Forms!マスター!IDNum
Else
MsgBox "該当者はいませんでした"
End If
End Sub
No.1ベストアンサー
- 回答日時:
こんにちは。
maruru01です。マスターテーブルの社員番号フィールドのデータ型は何でしょうか?
数値型なら、ワイルドカードでの検索は出来ないと思いますが。
あと、マスターフォームの[社員NO2]にフォーカスを当てているので、このフィールドでの検索になりますが、NumAには[IDNum]の値を代入しています。この2つのフィールドの関係はどうなっているのでしょうか。
この回答への補足
maruru01さん、ご返事有り難うございます。
社員番号フィールドのデータ型はテキスト型でした。
なので以下のように変えてみたんですが、やっぱりダメでした。
-------------------------
Public NumA As Integer, NumB As String
NumA = Forms!マスター!IDNum
NumB = Me.[検索社員番号]
Debug.Print NumA, NumB
Forms!マスター!社員NO2.SetFocus
DoCmd.FindRecord Trim(NumB), , , acDown, True, , True
If NumA <> Forms!マスター!IDNum Then
NumA = Forms!マスター!IDNum
Else
MsgBox "該当者はいませんでした"
End If
-------------------------
Forms!マスター!IDNumはオートナンバーです。
現在の位置を確認して、もしも検索したあとも同じ番号だったら
"該当者はいませんでした"
というメッセージを出すようにしています
No.2
- 回答日時:
再びmaruru01です。
DoCmdオブジェクトのFindRecordメソッドは、アクティブなフォーム(またはテーブル、クエリなど)に対して実行されます。
Forms!マスター!社員NO2.SetFocus
とフォーカスを移動させてもメインフォームがアクティブにならないので、検索フォーム上で検索して、"該当者はいませんでした"ということになるようです。(多分)
なので、上のコードの前に、
DoCmd.Close acForm, "検索フォーム", acSaveNo
と検索フォームを閉じれば、とりあえずちゃんと動作するはずです。
ちなみにFindRecordメソッドの引数は、元のままでOK(ワイルドカード可)です。
ところで、検索用ポップアップフォームは、InputBoxではダメですか?
InputBoxなら、[OK]ボタンでメインフォームに戻ってくるので、すんなり出来ますが。
それから、
>Forms!マスター!IDNumはオートナンバーです。
>現在の位置を確認して、もしも検索したあとも同じ番号だったら
>"該当者はいませんでした"
>というメッセージを出すようにしています
ということですが、もし検索前に表示していたデータが、FindRecordメソッドで最初に見つけたデータと一致したら、見つけたのに"該当者はいませんでした"になってしまいますが。
maruru01さん、ご回答有り難うございました。
お陰様で解決しました。
>ということですが、もし検索前に表示していたデータが、
>FindRecordメソッドで最初に見つけたデータと一致したら、
>見つけたのに"該当者はいませんでした"になってしまいますが。
そこが問題なんですけどね・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
年月日を持つテーブルから年月...
-
検索フォームで空白を抽出したい
-
Accessのフォームで、空欄のレ...
-
SQL*Loader
-
アクセス マクロのメッセージ...
-
ACCESS2003 でクエリの抽出条件...
-
AccessにてExcelファイル名にパ...
-
FileMakerPro10:検索条件について
-
Accessで「キーワード検索」を...
-
Access レポート印刷するときに...
-
レコードを保存するコード ア...
-
YahooのIDがロックされてしまい...
-
サブフォームに対してGoToRecor...
-
アクセスで数値型のフィールド...
-
データベースのINT型項目にNULL...
-
ACCESS──メインフォームでサブ...
-
Word縦書きで左から右への行
-
「フォームを作成できませんで...
-
Accessで、フォームからフォー...
-
VBA 空白テキストボックスカウント
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
年月日を持つテーブルから年月...
-
SQL*Loader
-
Access2000で文字列中の半角ス...
-
VBAからクエリのパラメータを設...
-
検索フォームで空白を抽出したい
-
アクセスのフォームにカンマ区...
-
Accessのフォームで、空欄のレ...
-
access 検索フォームで検索が...
-
ACCESSのフォーム上で複数検索...
-
AccessにてExcelファイル名にパ...
-
パススルークエリの動的パラメ...
-
アクセス マクロのメッセージ...
-
複数条件検索について
-
ACCESS2003 でクエリの抽出条件...
-
Access2007のサブフォームのReq...
-
Accessの検索フォームで。
-
ACCESS マクロで検索に...
-
Accessでの電話番号下4桁での検...
-
★アクセス2002★DoCmd.ApplyFilt...
-
DBソフト ACCESS:検索フォー...
おすすめ情報