電子書籍の厳選無料作品が豊富!

こんにちは、お世話になっています。
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

A 回答 (2件)

こんにちは。

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はオートナンバーです。
現在の位置を確認して、もしも検索したあとも同じ番号だったら
"該当者はいませんでした"
というメッセージを出すようにしています

補足日時:2002/10/01 15:24
    • good
    • 0

再びmaruru01です。



DoCmdオブジェクトのFindRecordメソッドは、アクティブなフォーム(またはテーブル、クエリなど)に対して実行されます。

Forms!マスター!社員NO2.SetFocus

とフォーカスを移動させてもメインフォームがアクティブにならないので、検索フォーム上で検索して、"該当者はいませんでした"ということになるようです。(多分)

なので、上のコードの前に、

DoCmd.Close acForm, "検索フォーム", acSaveNo

と検索フォームを閉じれば、とりあえずちゃんと動作するはずです。
ちなみにFindRecordメソッドの引数は、元のままでOK(ワイルドカード可)です。
ところで、検索用ポップアップフォームは、InputBoxではダメですか?
InputBoxなら、[OK]ボタンでメインフォームに戻ってくるので、すんなり出来ますが。

それから、
>Forms!マスター!IDNumはオートナンバーです。
>現在の位置を確認して、もしも検索したあとも同じ番号だったら
>"該当者はいませんでした"
>というメッセージを出すようにしています
ということですが、もし検索前に表示していたデータが、FindRecordメソッドで最初に見つけたデータと一致したら、見つけたのに"該当者はいませんでした"になってしまいますが。
    • good
    • 0
この回答へのお礼

maruru01さん、ご回答有り難うございました。
お陰様で解決しました。

>ということですが、もし検索前に表示していたデータが、
>FindRecordメソッドで最初に見つけたデータと一致したら、
>見つけたのに"該当者はいませんでした"になってしまいますが。
そこが問題なんですけどね・・・

お礼日時:2002/10/02 01:25

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

関連するカテゴリからQ&Aを探す