Access VBA質問箱 IV

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

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


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

【5482】リストボックス アヤ 05/6/22(水) 19:03 質問[未読]
【5483】Re:リストボックス かみちゃん 05/6/22(水) 19:52 発言[未読]
【5484】Re:リストボックス アヤ 05/6/23(木) 9:16 質問[未読]
【5485】Re:リストボックス 小僧 05/6/23(木) 9:45 発言[未読]
【5493】Re:リストボックス アヤ 05/6/23(木) 16:38 質問[未読]
【5495】Re:リストボックス 小僧 05/6/23(木) 17:28 発言[未読]
【5497】Re:リストボックス アヤ 05/6/23(木) 18:24 質問[未読]
【5498】Re:リストボックス 小僧 05/6/24(金) 1:20 発言[未読]
【5514】Re:リストボックス アヤ 05/6/25(土) 16:06 質問[未読]
【5518】Re:リストボックス 小僧 05/6/26(日) 9:36 回答[未読]

【5482】リストボックス
質問  アヤ  - 05/6/22(水) 19:03 -

引用なし
パスワード
   フォームAの社員番号をダブルクリックして社員一覧のある(リストボックス)フォームBを表示し、どれか社員を選択するか、選択を中止して元のフォームAへ戻った場合に、
フォームAの処理で 社員を選択して復帰したのか、選択を中止して復帰したのかを判断する方法を どなたか教えて下さいませんでしょうか お願いします。

【5483】Re:リストボックス
発言  かみちゃん  - 05/6/22(水) 19:52 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>フォームAの社員番号をダブルクリックして社員一覧のある(リストボックス)
>フォームBを表示し、どれか社員を選択するか、選択を中止して元のフォーム
>Aへ戻った場合に、
>フォームAの処理で 社員を選択して復帰したのか、選択を中止して復帰したの
>かを判断する方法

日本語の表現の問題かもしれませんが、確認させてください。
「フォームAの処理で社員を選択して復帰したのか、選択を中止して復帰したの
か」は、「フォームAの処理において、フォームBで社員を選択して復帰したの
か、選択を中止して復帰したのか」ということなのでしょうか?
なぜなら、フォームAは社員番号をダブルクリックして、いったんは、フォーム
Bを表示しているのですよね?

【5484】Re:リストボックス
質問  アヤ  - 05/6/23(木) 9:16 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>フォームAの社員番号をダブルクリックして社員一覧のある(リストボックス)
>>フォームBを表示し、どれか社員を選択するか、選択を中止して元のフォーム
>>Aへ戻った場合に、
>>フォームAの処理で 社員を選択して復帰したのか、選択を中止して復帰したの
>>かを判断する方法
>
>日本語の表現の問題かもしれませんが、確認させてください。
>「フォームAの処理で社員を選択して復帰したのか、選択を中止して復帰したの
>か」は、「フォームAの処理において、フォームBで社員を選択して復帰したの
>か、選択を中止して復帰したのか」ということなのでしょうか?
>なぜなら、フォームAは社員番号をダブルクリックして、いったんは、フォーム
>Bを表示しているのですよね?


すみません。復帰後のフォームAで 選択して復帰したか、どうかをを判断したいのですが。 また、続きのしょりとしては、社員を選択できたなら 社員名とか住所とかの項目を使用 可に設定したいのです。
こんな説明でおわかりになりますか?

【5485】Re:リストボックス
発言  小僧  - 05/6/23(木) 9:45 -

引用なし
パスワード
   ▼アヤ さん,、かみちゃん さん:
おはようございます。

フォームAの社員番号(テキストボックス?)をダブルクリック。

フォームBが起動される。

フォームBにあるリストボックスから社員を選ぶ。

(ここのタイミングは?)

フォームAの社員番号に選ばれた社員の社員番号が入り、
その他の項目が使用可能になる。

こんな感じの流れなのでしょうか?

それであれば

選択しないでフォームBを閉じる → 社員番号が空白
選択してからフォームBを閉じる → 社員番号が入っている

で判断できると思うのですがいかがでしょう?

【5493】Re:リストボックス
質問  アヤ  - 05/6/23(木) 16:38 -

引用なし
パスワード
   ▼小僧 さん:
>▼アヤ さん,、かみちゃん さん:
>おはようございます。
>
>フォームAの社員番号(テキストボックス?)をダブルクリック。
>↓
>フォームBが起動される。
>↓
>フォームBにあるリストボックスから社員を選ぶ。
>↓
>(ここのタイミングは?)
>↓
>フォームAの社員番号に選ばれた社員の社員番号が入り、
>その他の項目が使用可能になる。
>
ありがとうございます。
でも、上手くいかないのです。
正確に申し上げますと、1回目は上手くできますが、2回、3回と繰返しテストをしますと 社員コードがセットされているにもかかわらず LEN(社員CD)=0の結果になります。


>こんな感じの流れなのでしょうか?
>
>それであれば
>
>選択しないでフォームBを閉じる → 社員番号が空白
>選択してからフォームBを閉じる → 社員番号が入っている
>
>で判断できると思うのですがいかがでしょう?

【5495】Re:リストボックス
発言  小僧  - 05/6/23(木) 17:28 -

引用なし
パスワード
   ▼アヤ さん:
こんにちは。

>LEN(社員CD)=0の結果になります

とご提示されても、こちらは突如でてきた「社員CD」が何なのか解りません。

↑で提示させて頂いた

>>(ここのタイミングは?)

のところで何を持ってフォームBを閉じているのか、
VBAで処理をしているのであればどういったコードであるかを
ご提示して頂くと回答がつきやすくなるかもしれません。

【5497】Re:リストボックス
質問  アヤ  - 05/6/23(木) 18:24 -

引用なし
パスワード
   ▼小僧 さん:
>▼アヤ さん:
>こんにちは。
>
>>LEN(社員CD)=0の結果になります
>
>とご提示されても、こちらは突如でてきた「社員CD」が何なのか解りません。
>
>↑で提示させて頂いた
>
>>>(ここのタイミングは?)
>
>のところで何を持ってフォームBを閉じているのか、
>VBAで処理をしているのであればどういったコードであるかを
>ご提示して頂くと回答がつきやすくなるかもしれません。

小僧さん。 説明不足ですみません。

フォームBで次のようなコーデで記述しています

   Forms!フォームA.社員番号=Me.社員一覧
   Forms!フォームA.社員名=T社員マスタ
   ・
   ・
   Forms!フォームA。Requery
   Docmd.Close
よろしくおねがいします

【5498】Re:リストボックス
発言  小僧  - 05/6/24(金) 1:20 -

引用なし
パスワード
   ▼アヤ さん:
こんばんは。

>Forms!フォームA.社員番号=Me.社員一覧
>Forms!フォームA.社員名=T社員マスタ
>   ・
>   ・
>   Forms!フォームA。Requery
>   Docmd.Close

さきほどから状況が進まないのですが…。

ご提示されたコードからは

フォームAに社員番号と社員名というコントロールがあって
フォームBの社員一覧というコントロールからフォームAの社員番号へ
T社員マスタという変数(?)からフォームAの社員名へ
値を代入している

事しか読み取れないです。

ただ…フォームBの「Close」イベント発生時に
フォームAの社員コードに値が代入されたかどうかを確認して
他のコントロールを使用可能にするかどうかの処理を加えてみれば
いけそうな気がします。

【5514】Re:リストボックス
質問  アヤ  - 05/6/25(土) 16:06 -

引用なし
パスワード
   ▼小僧 さん:
>▼アヤ さん:
>こんばんは。
>
>>Forms!フォームA.社員番号=Me.社員一覧
>>Forms!フォームA.社員名=T社員マスタ
>>   ・
>>   ・
>>   Forms!フォームA。Requery
>>   Docmd.Close
>
>さきほどから状況が進まないのですが…。
>
>ご提示されたコードからは
>
>フォームAに社員番号と社員名というコントロールがあって
>フォームBの社員一覧というコントロールからフォームAの社員番号へ
>T社員マスタという変数(?)からフォームAの社員名へ
>値を代入している
>
>事しか読み取れないです。
>
>ただ…フォームBの「Close」イベント発生時に
>フォームAの社員コードに値が代入されたかどうかを確認して
>他のコントロールを使用可能にするかどうかの処理を加えてみれば
>いけそうな気がします。


小僧さん。すみません 

>フォームAの社員コードに値が代入されたかどうかを確認して
↑ の確認は次のようにフォームAに戻って来たときにチェックをしています

   IF LEN(Me.社員コード)= 0 then
     MsgBox "社員コード未入力です",vbokonly
   Else
     Me.社員名.Enabled = true
     ・
     ・
   End If

フォームAの社員コードや社員名等々の表示されているときでも 長さのチェックをすると0になります。
よろしくお願いします

【5518】Re:リストボックス
回答  小僧  - 05/6/26(日) 9:36 -

引用なし
パスワード
   ▼アヤ さん:
おはようございます。

>長さのチェックをすると0になります。

Debug.Print Len(Me.社員コード)としてイミディエトウィンドウで確認するか
ステップモードで確認してみると、社員コードに値が入っていないときは
「Null」という値が格納されていると思います。
これでは当然

>Len(Me.社員コード) = 0

という式に対して「False(偽)」を返してしまうので、条件式を

>IF LEN(Me.社員コード)= 0 then
If Me.社員コード = "" Or IsNull(Me.社員コード)

と変えてみたらいかがでしょうか?

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