Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


106 / 2272 ツリー ←次へ | 前へ→

【12995】フォームで職員番号の自動入力 まさし 16/4/30(土) 8:36 質問[未読]
【12997】Re:フォームで職員番号の自動入力 亀マスター 16/5/3(火) 9:45 回答[未読]
【12998】Re:フォームで職員番号の自動入力 まさし 16/5/4(水) 14:44 お礼[未読]
【12999】Re:フォームで職員番号の自動入力 まさし 16/5/4(水) 15:22 質問[未読]
【13001】Re:フォームで職員番号の自動入力 亀マスター 16/5/5(木) 21:35 回答[未読]

【12995】フォームで職員番号の自動入力
質問  まさし  - 16/4/30(土) 8:36 -

引用なし
パスワード
   おはようございます。
まさしです。

職員の有休管理のシステムを作っています。

フォームで名前を入力(選択)すれば、
自動的に職員番号も入力されるようにしたいです。
いろいろと試行錯誤しているのですが、上手くいきません。
どのようにすればいいでしょうか。


職員の情報はテーブル「T_職員一覧」にまとめています。
フォームのコンボリスト「職員名」の更新後処理に


Private Sub 職員名_AfterUpdate()

  Me.職員名 = DLookup("職員番号", "T_職員一覧", "職員名=" & Me!職員名)
  
End Sub

と入力しています。

【12997】Re:フォームで職員番号の自動入力
回答  亀マスター  - 16/5/3(火) 9:45 -

引用なし
パスワード
   職員番号はフォームのどこに入力されるようにしたいのでしょうか。
提示されたコードを見ると、「職員名」というコンボボックスを
更新すると、そのコンボボックスの値自体を職員番号で上書き
しようとしているように見えます。

予想される用途としては、他のテキストボックスなどに
職員番号を表示させたいということでしょうから、

Me.職員名

Me.テキストボックス名

のように変更されてはどうでしょうか。
(もちろん、テキストボックスはフォーム中に作っておく)

【12998】Re:フォームで職員番号の自動入力
お礼  まさし  - 16/5/4(水) 14:44 -

引用なし
パスワード
   亀マスターさん
返信ありがとうございます。

>そのコンボボックスの値自体を職員番号で上書き
>しようとしているように見えます

まだ初歩的なところでつまずいてます。


>予想される用途としては、他のテキストボックスなどに
>職員番号を表示させたいということでしょうから、

>Me.職員名
>を
>Me.テキストボックス名

>のように変更されてはどうでしょうか。
>(もちろん、テキストボックスはフォーム中に作っておく)

ありがとうございます。

Me.職員名 = DLookup("職員番号", "T_職員一覧", "職員名=" & Me!職員名)

Me.職員番号 = DLookup("職員番号", "T_職員一覧", "職員名=" & Me!職員名)
に変更するということでいいでしょうか。

【12999】Re:フォームで職員番号の自動入力
質問  まさし  - 16/5/4(水) 15:22 -

引用なし
パスワード
   まさしです。

>Me.職員番号 = DLookup("職員番号", "T_職員一覧", "職員名=" & Me!職員名)

でやってみたところ、

抽出条件がデータ型と一致しません

とエラーが出てしまいました。
ウムム。

職員名は「T_職員一覧」で「短いテキスト型」
になっています。
データ型が一致しないとは何なのか。
いろいろ試し中です。

分かる方、いらっしゃいますか。

【13001】Re:フォームで職員番号の自動入力
回答  亀マスター  - 16/5/5(木) 21:35 -

引用なし
パスワード
   >抽出条件がデータ型と一致しません

答えはまさにこのメッセージかと思います。

T_職員一覧 のフィールドとしてある 職員名 がテキスト型なのに対し、
Me!職員名 がテキスト型として認識されていないのが問題です。
DlookupやSQLのWhere句(抽出条件)でテキスト型の値を扱う際は、
半角のシングルクォーテーションで囲む必要があります。

"職員名=" & Me!職員名

"職員名='" & Me!職員名 & "'"

のようにしてみてください。

参考までに、日付型であれば#で囲む必要があります。

106 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078188
(SS)C-BOARD v3.8 is Free