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

質問の仕方が適切でないかもしれませんがご了承下さい。

Access2000を使用しています。
社員テーブルには「性別」フィールドがあり、男なら1、
女なら2が登録されています。その社員テーブルを基にした
フォームを作成し、そこに非連結のテキストボックスを作成、
1なら男、2なら女と表示させたいのです。

新規登録時は「性別」フィールドに連結したテキストボックス
の更新後に表示させるようなVBAを記述しておいたのでうまく
いくのですが、登録済みのデータを呼び出した場合は表示され
ません(更新しているわけではないので当然といえば当然なの
でしょうが・・・)。

何かしなければいけないのは分かっているのですが、どのイベント
時にどのようなアクションをすればよいのか教えてください。

よろしくお願いします。

A 回答 (3件)

テキストボックス入力後に


フォーム上の表示を 更新した値に表示しなおすには、

入力用テキストボックスの プロパティで、
イベント の 更新後処理 を [イベント プロシージャ] とし、
VBA記述は 次のようになります。
(仮に「性別」フィールドのテキストボックス名を 性別
 連結のテキストボックス(男女表示用)の名を 表示用とします。)

If me.[性別]=1 then
Me.[表示用] = "男"
else
Me.[表示用] = "女"
End if
Me.Requery

とします。
最後の Me.Requery でフォームを最新の値で表示しなおします。
    • good
    • 0
この回答へのお礼

再三にわたるすばやい回答を
どうもありがとうございました。
本当に助かりました。

お礼日時:2003/01/11 15:22

多数の種別があった場合はクエリーでまず表を結合してからフォームのデータソースに指定すれば簡単です。



例えば

【テーブルA】   【テーブルB】
 ID  部署    部署 部署名称
 アアア 01    01 総務部
 イイイ 05    02 経理部
 ウウウ 13    05 システム部
           13 営業部

の表をクエリーで
【クエリー1】
 ID  部署 部署名称
 アアア 01 総務部
 イイイ 05 システム部
 ウウウ 13 営業部

と結合します。
あとはフォームのデータソースをクエリー1に指定し表示してやればOKです。

この回答への補足

こんにちは。
またまた追加で質問したいのですがよろしいでしょうか?

<社員テーブル>
社員番号 名前   性別
1     田中  1
2     鈴木 2
3     山本 1

<性別テーブル>
番号 区分
1     男
2     女

上記のテーブルがあって社員テーブルを基に
入力用フォームを作成します。

性別はコンボボックスを作成し、値集合ソースに性別テーブル
を指定し、非連結のテキストボックスに性別テーブルの区分を
表示させたいのです。
性別コンボボックスの更新後イベント処理でテキストボックスに
区分が表示するようなVBAを組み込みうまくいきましたが、レコード
移動ボタンを押したときはうまく表示されません。

どのようなイベントプロシージャを組み込めばよろしいでしょうか?
長くなってしまいましたが宜しくお願いいたします。

補足日時:2003/01/11 14:32
    • good
    • 0
この回答へのお礼

丁寧かつ迅速なご回答どうもありがとうございました。
今後ともよろしくお願いいたします。

お礼日時:2003/01/10 16:38

はじめまして。



テキストボックスに値を解釈して表示させる方法ですが
IF関数を使ってみてはいかがでしょう?

非連結のテキストボックスのコントロールソースに
=IIF([社員テーブル]![性別]="1","男",IIF([社員テーブル]![性別]="2","女",""))
このように記述すれば現在の社員テーブルのレコードから値を判定し表示できるはずです。

この回答への補足

なるほど!ですね。どうもありがとうございます!!

また、最初の質問から若干離れてしまいますが、もし基となるテーブル
に今回のように2レコードだけでなく30レコードくらいあった場合、
記述するのは難儀ですね。
そのような場合はどうしたらよいのか、教えていただけたらと思います。

よろしくお願いします。

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

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