Accessで、以下のようなテーブルとフォームがあります。
テーブル:T_マスタ
社員番号
社員名
所属
評価
テーブル:T_社員一覧
社員番号
社員名
所属
フォーム:F_マスタ
社員番号
社員名
所属
評価
F_マスタの「社員番号」に社員番号を入力すると、T_社員一覧のデータを参照して、
社員名・所属を自動で入力するようにしてあります。
使用者から、「間違えて同じ社員番号を入力したときに、何かメッセージが欲しい」といわれました。
T_マスタの「社員番号」のインデックスは「重複なし」となっていて、入力が終わると、
同じ番号がいる、ということがわかるのですが、それではなく、
社員番号に入力をして、確定した時点でメッセージが欲しいのです。
理想としては、
■社員番号がすでにT_マスタに入力されていた場合
1.社員番号を入力
↓
2.「すでに入力されています。」というダイアログボックスを表示させ、
「社員番号」「社員名」「所属」「評価」を自動で入力させる。
■社員番号がまだ入力されていなかった場合
1.社員番号を入力
↓
2.「社員名」「所属」が自動で入力される。
(今現在の状態がこれです。)
というようにしたいのですが、どのようにすればよいのでしょうか?
No.2ベストアンサー
- 回答日時:
再びmaruru01です。
閉じるかっこが1つ足らなかったようです。
正しくは、
If IsNull(DLookUp("社員番号", "T_マスタ", "社員番号 = " & CLng(Me!社員番号.Text))) Then
でした。
では。
再度ありがとうございます。
おかげでできました。
さらに質問なのですが、
elseの後の部分は
MsgBox "すでに入力されています。"
Me![社員氏名] = Me![社員氏名]
じゃできないですよね。
MsgBox "すでに入力されています。"
Me![社員氏名] = Tables![T_マスタテーブル]![社員氏名]
もだめでした。
これはどのように標記すればいいのでしょうか?
申し訳ありませんが、再度回答いただけませんか?
宜しくおねがいします。
No.3
- 回答日時:
ご苦労様です。
すでに入力されている場合は、T_マスタの[社員氏名][所属][評価]をフォームに表示するんですよね。
でしたらここも以下のようにDLookUp関数を使用しましょう。
Me!社員氏名 = DLookUp("社員氏名", "T_マスタ", "社員番号 = " & CLng(Me!社員番号.Text))
Me!所属 = DLookUp("所属", "T_マスタ", "社員番号 = " & CLng(Me!社員番号.Text))
Me!評価 = DLookUp("評価", "T_マスタ", "社員番号 = " & CLng(Me!社員番号.Text))
あ、そうそうちなみにExitイベントは、フォーカス喪失時イベントです。(フォーカス喪失後イベントはLostFocusイベント。)
では。
何度もありがとうございます。
ここでもDlookUpを使うんですね。
そのまま持ってくればいいだけかと思いました。
おかげで思うものができました。
本当に本当にありがとうございました。
No.1
- 回答日時:
こんにちは。
maruru01です。F_マスタの[社員番号]テキストボックスのExitイベントに以下のように書きます。(T_マスタの[社員番号]フィールドが長整数型とします。)
If IsNull(DLookUp("社員番号", "T_マスタ", "社員番号 = " & CLng(Me!社員番号.Text)) Then
(「社員名」、「所属」を自動入力する処理)
Else
MsgBox "すでに入力されています。"
(「社員番号」、「社員名」、「所属」、「評価」を自動入力する処理)
End If
では。
こんにちは。
すばやい回答ありがとうございます。
>Exitイベントに
これがわからなかったので、「更新後処理」に以下のようにいれてみました。
------------------------------
Private Sub 社員番号_AfterUpdate()
If IsNull(DLookUp("社員番号", "T_マスタ", "社員番号 = " & CLng(Me!社員番号.Text)) Then
Me![社員氏名] = Me![社員番号].Column(1)
Me![所属] = Me![社員番号].Column(2)
Else
MsgBox "すでに入力されています。"
Me![社員氏名] = Me![社員番号]
Me![所属] = Me![所属]
Me![評価] = Me![評価]
End If
End Sub
------------------------------
すると一番上の
If IsNull(DLookUp("社員番号", "T_マスタ", "社員番号 = " & CLng(Me!社員番号.Text)) Then
が赤くなり、
実行すると「コンパイルエラー 構文エラー」と出てしまいます。
どこがダメなんでしょうか?
やはりExitでないとダメでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- その他(プログラミング・Web制作) vbaで座標を指定してコマンドプロンプト画面を表示させる。 1 2023/01/09 16:06
- gooポイント gooポイントをdポイントに交換できない。 3 2022/04/22 20:39
- 会社・職場 Excel、Googleスプレッドシートなどへのデータ入力 2 2023/07/06 05:59
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- その他(悩み相談・人生相談) ユニクロやGUのシフト管理アプリFRtimeが開けません。 社員番号とパスワードを入力してログインし 2 2022/09/02 11:12
- Excel(エクセル) Excelの質問です。 重複なしの部署一覧の表を作り、各部署のセル横に各部署の社員番号をすべて抜き出 3 2023/04/26 18:14
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Accessでコードを入れると名前がでるようにしたい
Access(アクセス)
-
アクセスでコードを入れると名前が入るようにしたい(ただし、コード入力と名前は同じフィールド)
Access(アクセス)
-
商品番号を入力すると、商品名フィールドに自動で名前が出てくるようにしたいのですが・・・
その他(データベース)
-
-
4
AccessでIDを入力したら他の項目も自動で表示
Access(アクセス)
-
5
Accessでvlookupみたいなことはできますか。
その他(データベース)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
巨乳の同僚
-
平社員の場合の役職名は?
-
出戻り社員は一番下でしょ?? ...
-
若いイケメンには態度を変える...
-
賞与のお礼メールはどう書けば...
-
よく社員に持ち株持たせたり、...
-
自分にだけタメ口対応をされま...
-
ドンキでバイトしてます 私のド...
-
会社の人に勝手にLINE追加され...
-
帰り際になって急に話しかけて...
-
恋人にしたい乳オブザイヤー
-
エクセルで会社の従業員のデー...
-
派遣先での疎外感。
-
同い年のバイトと社員
-
40代のおじさんで平社員だとカ...
-
ニコニコしてる人の裏の顔につ...
-
同い年の先輩への接し方につい...
-
マクドナルド社員になるのはか...
-
バイト先の社員に見下され舐め...
-
私の職場は社員2人 パートの私...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
平社員の場合の役職名は?
-
会社の人に勝手にLINE追加され...
-
巨乳の同僚
-
出戻り社員は一番下でしょ?? ...
-
会社の互助会費について
-
社員各位という言葉について
-
職場で空気のような存在になっ...
-
月1くらいで休む派遣さんが、休...
-
社員への残業時間公開について
-
帰り際になって急に話しかけて...
-
若いイケメンには態度を変える...
-
自分にだけタメ口対応をされま...
-
マクドナルド社員になるのはか...
-
皆さんの会社の親睦会費は社員...
-
Access VBA DB(先頭の0値を...
-
悪口を本人に聞かれてしまった
-
先日、当社のある社員について...
-
社員がPCを壊した場合の対処方...
-
恋人にしたい乳オブザイヤー
-
これはパワハラ?その度合いは?
おすすめ情報