dポイントプレゼントキャンペーン実施中!

アクセスで番号を入れてエンター(確定)を押すとそのフィールドに名前を入れたいのですが設定方法がわかりません。入力はフォームで行います。
例)フォームの名前入力するフィールドが、番号の設定になっている。
 1と入れると田中
 2と入れると鈴木
 3と入れると山田
となる設定です。コンボボックスで入力時にリストが下に出てくるタイプの設定ではなく
フォームの一つの枠に 「1」といれて確定すると「田中」と表示され、データじたいも1ではなく田中と入力される方法です。
よろしくお願いいたします。
多量のデータ入力では通常は1と入力される方がよいと思いますが、現在使用しているフォームがそのようになっており、設定を変更したいのですが、どこをどのようにすれば修正できるのかわかりません例 4 岡田を追加したい場合

A 回答 (4件)

すでに番号を入力すると名前が出るようになっているということですよね?


番号を入力するテキストボックスのプロパティを開き、「イベント」のタブを選択します。
どこかに[イベントプロシージャ]やマクロの名前が設定されていませんか?
その項目を選択すると右に[…]が表示されるのでそれをクリックします。
そうするとどのような処理が行われているかわかりますのでそれを補足してください。
    • good
    • 0
この回答へのお礼

お返事おそくなりました。同じフィールドにコードを入力すると勝手に決められた文字が入力されるように変換されるのはマクロが組んでありました。ヒントありがとうございました。助かりました。

お礼日時:2019/07/23 21:40

なんどもごめんなさい



Me("田中と入れたいテキストボックス名").Value = DLookup("氏名の列名", "人物テーブル名", "番号の列名 = " & Me("田中と入れたいテキストボックス名").Value)

の誤りでした。
    • good
    • 0

ああ!ごめんなさい「コード入力と名前は同じフィールド」でしたね。


ごめんなさい。私の回答ではそれはできませんでした。
無視してください。
コードを名前で上書きしたい、ということですよね?多分。
それはVBA使ったほうがはやいかもです。

なぜそのような特殊な設計にしたいのかわかりませんけど・・・。

喪失時イベントで「DLookup」関数を使って以下のように書いてみてはいかがでしょうか?

Me("田中と入れたいテキストボックス名").Value = DLookup("氏名の列名", "人物テーブル名", "氏名の列名 = " & Me("田中と入れたいテキストボックス名").Value)
    • good
    • 0

普通は『「1」といれて確定すると「田中」と表示され』のところまでしかしないので、まずはそこまででしたら、「入力用のテーブルと人物テーブルを人物のIDでリレーションさせたクエリ」を「レコードソース」に設定して連結フォームを作成すれば表示されます。



そこまでで終わりではなくて、さらに、入力用のテーブルのほうにも「田中と入力までしてしまいたい」、ということでしたら、「1」を入力したテキストボックスの「フォーカス喪失時」イベントなどに、

Me(”田中と入れたいテキストボックス名”) = Me(”田中と表示されただけのテキストボックス名”)

とか、

Me!田中と入れたいテキストボックス名 = Me!田中と表示されただけのテキストボックス名

などと書けばいいのではないでしょうか?

いずれかのテキストボックスを非表示の設定にするか、でも、あえて両方表示するほうがわかりやすいかもしれません。

「田中と表示されただけのテキストボックス名」のほうは「編集ロック」の設定にしたほうがいいかもしれません。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A