Access VBA質問箱 IV

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

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


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

【7462】コンボボックスの表示 青首 06/3/7(火) 20:56 質問[未読]
【7466】Re:コンボボックスの表示 小僧 06/3/9(木) 9:29 発言[未読]
【7469】Re:コンボボックスの表示 青首 06/3/9(木) 21:30 発言[未読]
【7470】Re:コンボボックスの表示 青首 06/3/9(木) 22:57 発言[未読]
【7475】Re:コンボボックスの表示 小僧 06/3/10(金) 10:32 発言[未読]
【7485】Re:コンボボックスの表示 青首 06/3/10(金) 20:11 お礼[未読]

【7462】コンボボックスの表示
質問  青首  - 06/3/7(火) 20:56 -

引用なし
パスワード
   http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=7389;id=access

でずっと質問してきたのですが、引き続き

レコード移動に際してのコンボボックスの表示について質問させて

いただきたいと思います。

現在の状態は

テーブル:T_社員
  
  フィールド名 データ型
   社員ID   オートナンバー型
   社員名   テキスト型

テーブル:選択項目
   フィールド名 データ型
    選択項目ID  オートナンバー型
    選択項目   テキスト型


テーブル:T_日報情報

  フィールド名 データ型
  日報ID    オートナンバー型
  社員ID    数値型
  日付     日付/時刻型
  業務内容   テキスト型
  残業時間   数値型
  選択項目ID  数値型

テーブル:T_Work(ワークテーブル)

  フィールド名 データ型
  社員ID    数値型   (主キー)
  日付     日付/時刻型
  業務内容   テキスト型
  残業時間   数値型
  選択項目ID  数値型

F_日報情報
  レコードソース:T_Work

フォームを開くとT_社員の一番初めに登録された社員名が
 表示されます。
 その社員の日報を入力後、コマンドボタン[次のレコードへ]を
 クリックすると、T_社員の2番目に登録された社員名が表示されます。
 こんな感じで一人一人社員の画面を表示させて入力しています。

フォームにはコマンドボタンで前のレコードに移動したり次のレコードに
移動したりとできるようになっています。

このフォームに選択項目というコンボボックスを作りました。
コントロールソースは[選択項目ID]です。

このコンボボックスで入力したはずのデータがコマンドボタンを使って
レコードを戻してみると表示されないのです。

いろいろ調べてみて

フォームのプロパティの「レコードの移動時」イベントで
コンボボックスに、レコードのフィールドの値を代入すればいい
ということはわかったのですが、どのようなコードを書けばよいのか
わかりません。

わかりづらい説明だったとは思いますが、ご指導お願いいたします。

【7466】Re:コンボボックスの表示
発言  小僧  - 06/3/9(木) 9:29 -

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

>このコンボボックスで入力したはずのデータがコマンドボタンを使って
>レコードを戻してみると表示されないのです。

コンボボックスのコントロールソースが指定されているという事ですので、
次のレコードに移った際に値は保存されているはずですね。


当方が気になった事として、

・コンボボックスのコントロールソースが T_Work の 選択項目ID
・T_Work の 選択項目ID は数値型

コンボボックスの値集合ソースはどのようになっていますか?
(数値を返すようになっていますか)

【7469】Re:コンボボックスの表示
発言  青首  - 06/3/9(木) 21:30 -

引用なし
パスワード
   ▼小僧 さん:

すみません。
現状の説明で抜けている点があったため、追記させていただきます。

テーブル:T_社員
  
  フィールド名 データ型
   社員ID   オートナンバー型
   社員名   テキスト型

テーブル:T_残業区分
 フィールド  データ型
 残業区分ID  オートナンバー型
 残業区分   テキスト型


テーブル:選択項目
   フィールド名 データ型
    選択項目ID  オートナンバー型
    選択項目   テキスト型
    残業区分ID  数値型


テーブル:T_日報情報

  フィールド名 データ型
  日報ID    オートナンバー型
  社員ID    数値型
  日付     日付/時刻型
  業務内容   テキスト型
  残業時間   数値型
  残業区分ID  数値型   
  選択項目ID  数値型

テーブル:T_Work(ワークテーブル)

  フィールド名 データ型
  社員ID    数値型   (主キー)
  日付     日付/時刻型
  業務内容   テキスト型
  残業時間   数値型
  残業区分ID  数値型  
  選択項目ID  数値型

F_日報情報
  レコードソース:T_Work

  オプショングループ:残業区分

    残業区分は ・改善
          ・修理
  
  コンボボックス:選択項目

 残業区分のどちらかにチェックを入れるとコンボボックスが
絞り込まれるような形になっております。


>コンボボックスのコントロールソースが指定されているという事ですので、
>次のレコードに移った際に値は保存されているはずですね。

はい。T_日報情報をみるとちゃんと値は保存されています。

>当方が気になった事として、
>
>・コンボボックスのコントロールソースが T_Work の 選択項目ID

F_日報情報のレコードソースはT_Workでフィールドリストから
選択項目IDを選択しました。
コンボボックスのコントロールソースは選択項目IDです。


>・T_Work の 選択項目ID は数値型

はい。数値型になっています。

>コンボボックスの値集合ソースはどのようになっていますか?
>(数値を返すようになっていますか)


値集合ソースは絞込みができるように
クエリビルダで
T_選択項目を表示させ、

フィールド  選択項目ID   選択項目     残業区分ID  
テーブル   T_選択項目   T_選択項目     T_選択項目
抽出条件                 [Forms]![F_日報情報]![残業区分]


のような形になっております。

あまり関係ないかもしれないのですが、
なぜか残業区分で[修理]を選択していた場合のみコンボボックス:選択項目は
レコード移動時にも表示されます。

[改善]を選んでた場合にも選択項目が表示されればいいのですが・・・。

【7470】Re:コンボボックスの表示
発言  青首  - 06/3/9(木) 22:57 -

引用なし
パスワード
   ▼小僧 さん:


>あまり関係ないかもしれないのですが、
>なぜか残業区分で[修理]を選択していた場合のみコンボボックス:選択項目は
>レコード移動時にも表示されます。

やっぱり[修理]の時でも消えてしまうようです。

【7475】Re:コンボボックスの表示
発言  小僧  - 06/3/10(金) 10:32 -

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

テーブル構成を拝見させて頂きましたが、フィールド数が増えていますよね。
そちらに応じて SQL文の変更をなされてますでしょうか。

Load時)
  strSQL = "UPDATE T_Work " _
      & "INNER JOIN T_日報情報 " _
      & "ON T_Work.社員ID = T_日報情報.社員ID " _
      & "SET T_Work.業務内容 = T_日報情報!業務内容, " _
      & "T_Work.残業時間 = T_日報情報!残業時間, " _
      & "T_Work.残業区分ID = T_日報情報!残業区分ID, " _
      & "T_Work.選択項目ID = T_日報情報!選択項目ID " _
      & "WHERE T_日報情報.日付=Date();"

UnLoad時)
  strSQL = "UPDATE T_日報情報 INNER JOIN T_Work " _
      & "ON (T_日報情報.社員ID = T_Work.社員ID) AND " _
      & "(T_日報情報.日付 = T_Work.日付) " _
      & "SET T_日報情報.業務内容 = T_Work.業務内容, " _
      & "T_日報情報.残業時間 = T_Work.残業時間, " _
      & "T_日報情報.残業区分ID = T_Work.残業区分ID, " _
      & "T_日報情報.選択項目ID = T_Work.選択項目ID"


まずはこちらからチェックしてみて下さい。

【7485】Re:コンボボックスの表示
お礼  青首  - 06/3/10(金) 20:11 -

引用なし
パスワード
   ▼小僧 さん:

こんばんわ。

フォームのプロパティ:レコードの移動時イベントで
Me.選択項目.Requery
を入れたら表示されました。

お騒がせしてすみませんでした。

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