• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:社員番号があったら抽出、なければ新規入力。)

Accessで社員番号の重複チェックと自動入力を実装する方法

このQ&Aのポイント
  • Accessのフォームで社員番号の重複チェックと自動入力機能を実装する方法について解説します。
  • 重複のある場合はダイアログボックスを表示してメッセージを表示し、自動で社員名と所属を入力します。
  • 重複のない場合は社員名と所属を自動で入力するように設定します。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

再びmaruru01です。 閉じるかっこが1つ足らなかったようです。 正しくは、 If IsNull(DLookUp("社員番号", "T_マスタ", "社員番号 = " & CLng(Me!社員番号.Text))) Then でした。 では。

KODAMAR
質問者

お礼

再度ありがとうございます。 おかげでできました。 さらに質問なのですが、 elseの後の部分は MsgBox "すでに入力されています。" Me![社員氏名] = Me![社員氏名] じゃできないですよね。 MsgBox "すでに入力されています。" Me![社員氏名] = Tables![T_マスタテーブル]![社員氏名] もだめでした。 これはどのように標記すればいいのでしょうか? 申し訳ありませんが、再度回答いただけませんか? 宜しくおねがいします。

その他の回答 (2)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

ご苦労様です。 すでに入力されている場合は、T_マスタの[社員氏名][所属][評価]をフォームに表示するんですよね。 でしたらここも以下のようにDLookUp関数を使用しましょう。 Me!社員氏名 = DLookUp("社員氏名", "T_マスタ", "社員番号 = " & CLng(Me!社員番号.Text)) Me!所属 = DLookUp("所属", "T_マスタ", "社員番号 = " & CLng(Me!社員番号.Text)) Me!評価 = DLookUp("評価", "T_マスタ", "社員番号 = " & CLng(Me!社員番号.Text)) あ、そうそうちなみにExitイベントは、フォーカス喪失時イベントです。(フォーカス喪失後イベントはLostFocusイベント。) では。

KODAMAR
質問者

お礼

何度もありがとうございます。 ここでもDlookUpを使うんですね。 そのまま持ってくればいいだけかと思いました。 おかげで思うものができました。 本当に本当にありがとうございました。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 F_マスタの[社員番号]テキストボックスのExitイベントに以下のように書きます。(T_マスタの[社員番号]フィールドが長整数型とします。) If IsNull(DLookUp("社員番号", "T_マスタ", "社員番号 = " & CLng(Me!社員番号.Text)) Then   (「社員名」、「所属」を自動入力する処理) Else   MsgBox "すでに入力されています。"   (「社員番号」、「社員名」、「所属」、「評価」を自動入力する処理) End If では。

KODAMAR
質問者

お礼

こんにちは。 すばやい回答ありがとうございます。 >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