アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつも本当お世話になっております。
またまた、お助けいただきたく
投稿させていただきました。

すみません。Accessのフォーム内のコンボボックスにて
レコードソース 従業員Tで、
すでにやめてしまった人(Yes/No)に
チェックがある人をコンボボックスで新規に選択する時には非表示にしたいのです。

但し、履歴(昔のデータ)には、表示させたい。
のですが、VBAでしかできないかも?
とおもっており、勉強したのですが、
回答にたどり着けず困っています。

どうか、よろしくお願いいたします。

A 回答 (7件)

まず、「新規入力」と「過去データ参照」の条件を分けるためのコンボボックスを作ります。

仮に「処理」と名づけます。
氏名、担当を表示させるコンボボックスを「担当」と名づけます。

「新規入力」を選択したときには、退職者は表示させない。
「過去データ参照」を選択したときには、全データを表示。

Private Sub 処理_AfterUpdate()
If Me!処理="新規入力" Then
Me!担当.RowSource = "SELECT 氏名, 担当 FROM 従業員T WHERE 退職=False;"
else
Me!担当.RowSource = "SELECT 氏名, 担当 FROM 従業員T;"
end if
End Sub
    • good
    • 0

サンプルの内容ではまだ、勘違いがありましたでしょうか?

    • good
    • 0
この回答へのお礼

wakaranai_kun様
本当ご丁寧に教えていただきありがとうございました。
私の説明が分かりにくくて申し訳ありません。
ボタンで切り替えではなくて、
syasushi様に教えていただいた方法で
解決いたしました。

ありがとうございました。

お礼日時:2003/10/14 13:07

もし、先の解釈で正しいとしたら、、、



コマンドボタンを2作ってください。それぞれを command1 と command2 とします。
そして、コンボボックスを combo とします。

で、コマンドボタン2つに次のプロシージャーを書いてください。

Sub command1_Click()'現社員モード
Me![combo].RowSource = "SELECT 氏名, 担当 FROM 従業員T WHERE 退職=False;"
End Sub

Sub command2_Click()'全員モード
Me![combo].RowSource = "SELECT 氏名, 担当 FROM 従業員T;"
End Sub
    • good
    • 0

> 昔のデータには退職した人の名前と担当をフォームで表示させますが、新規データ(これから入力する)には、



この意味がわからないのですが、、これは昔のデータ入力モード、新規データ入力モードがあって、そのモードを手動で選択した時に、、あなたが望む条件で、退職者を表示したり非表示にしたりしたい、、ということでしょうか?

この回答への補足

なかなか伝わりにくくてすみません
新規入力可能のフォームがあります。
昔のデータは入力しません。
昔のデータは参照したいだけです。
参照する時に退職者の方の名前も表示するという意味です。
よろしくお願いします。

補足日時:2003/10/10 09:32
    • good
    • 0

1)[退職]欄にチェックがあるものを省いてコンボボックスには表示させたいのです。


2)退職した人たちの名前がでなくなってしまいます。

1)は現職を表示したいという条件、2)は退職した人を表示したいという条件、これを同時に1つのコンボボックスでは実現できません。

必要とするものをまとめてください。

[ID]-[氏名]-[担当]-[退職]
[001]-[Aさん]-[経理]-[○]
[002]-[Bさん]-[製造]-[-]
[003]-[Cさん]-[製管]-[-]
[004]-[Dさん]-[品管]-[○]
[005]-[Dさん]-[開発]-[○]

こういったコンボボックスがいるのでしょうか?


>退職した人をコンボボックスに出さずに、
>昔のデータに名前だけを出したいのですが。

昔のデータはどのテーブルにあって、名前をどこに出したいのでしょうか?コンボボックスに出すのであれば、、そのコンボボックスを右クリックして、

[プロパティー]-[書式]-[列数]
[プロパティー]-[書式]-[リスト巾]

で設定します。

たとえば、、[ID][氏名][担当][退職]と出したいなら、

列数 4
リスト巾 2;5;3;2 (4列分)

とか設定します。

この回答への補足

wakaranai_kunさん
すみません。お付き合いいただきありがとうございます。

やりたいことは、
勤務表_T(フォーム作成)に勤務状況を表示させます。

コンボボックスに表示させるのは”氏名””担当”です。

昔のデータには、
退職した人の名前と担当をフォームで表示させますが、新規データ(これから入力する)には、
退職した人をコンボボックス内に入れてあると目障りなので非表示にしたいです。

こんな感じなので、VBAで
もし、新規データ入力時には退職=falseそうでなければ退職=Trueとしたいのですが、

どんな風に書けばいいのか分からず困っております。

すみませんがよろしくお願いいたします。

補足日時:2003/10/08 10:39
    • good
    • 0

SELECT 従業員T.ID, 従業員T.氏名, 従業員T.担当, 従業員T.退職


FROM 従業員T
WHERE (((従業員T.退職)=False));

値集合ソースをこれに書き換えてみてください。

この回答への補足

wakaranai_kunさん。回答いただきありがとうございます。
教えていただいたようにすると、退職者以外の人がコンボボックスにでてくるのでそれはOKなんですが、

退職した人たちの名前がでなくなってしまいます。
退職した人をコンボボックスに出さずに、
昔のデータに名前だけを出したいのですが。

どうぞよろしくお願いします。

補足日時:2003/10/07 10:11
    • good
    • 0

履歴と名前は同一テーブルにあるんですか?



そうか、別にあって、名前を選択すると別テーブルから履歴が呼び出されてくるのですか?

また、テーブルにはどんなフィールドがどんな形であり、コンボボックスにもどんなフィールドがあるか書いた方がいいと思います。


従業員Tはテーブルであって、クエリーとかそういったものではないのですよね?

この回答への補足

どうもすみません。説明不足で失礼いたしました。

クエリはありません。
テーブルの項目は、
[ID][氏名][担当][退職]です。
[退職]欄にチェックがあるものを省いてコンボボックスには表示させたいのです。

すみません。よろしくお願いいたします。

補足日時:2003/10/06 17:52
    • good
    • 0

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

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

関連するカテゴリからQ&Aを探す


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