Access VBA質問箱 IV

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

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


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

【4216】コンボボックスにテーブルの値をセットす... Aiz 05/1/20(木) 10:55 質問[未読]
【4218】Re:コンボボックスにテーブルの値をセットす... クロ 05/1/20(木) 13:22 回答[未読]
【4222】コンボボックスへのセット方法 Aiz 05/1/20(木) 15:07 質問[未読]
【4223】Re:コンボボックスへのセット方法 クロ 05/1/20(木) 16:34 発言[未読]
【4224】Re:コンボボックスへのセット方法 Aiz 05/1/20(木) 17:17 質問[未読]
【4225】Re:コンボボックスへのセット方法 クロ 05/1/20(木) 17:25 回答[未読]
【4226】Re:コンボボックスへのセット方法 Aiz 05/1/20(木) 17:35 質問[未読]
【4227】Re:コンボボックスへのセット方法 クロ 05/1/20(木) 17:46 回答[未読]
【4228】Re:コンボボックスへのセット方法 Aiz 05/1/20(木) 18:02 発言[未読]
【4230】解決 Aiz 05/1/20(木) 19:43 お礼[未読]
【4234】Re:解決 クロ 05/1/21(金) 8:35 発言[未読]

【4216】コンボボックスにテーブルの値をセットす...
質問  Aiz  - 05/1/20(木) 10:55 -

引用なし
パスワード
   質問があります。
フォームの初期処理時にコンボボックスの中に指定されたテーブルから出力対象となるデータを出力条件に従ってセットする処理です。

出力条件:出力対象フラグが"1"
表示順:昇順

テーブルの中身はこんな感じです。
テーブル名:出力テーブル

 名前     出力対象   表示順
テスト1      1      1
テスト3      1      3
テスト2      1      2
テスト4      2      4

名前を、出力対象が1のものを、表示順の数字を昇順で表示したいのですが、やり方がいまいちわかりません。
どなたかご助言のほうよろしくお願いします。

【4218】Re:コンボボックスにテーブルの値をセット...
回答  クロ  - 05/1/20(木) 13:22 -

引用なし
パスワード
   コンボボックスの値集合ソースの欄に
以下のように記述してください。
※出力対象フィールドのデータ型は数値型としてあります。
 コンボに表示するものが「名前」でよければ
 SELECT * を SELECT 名前 としてください。

SELECT * FROM 出力テーブル WHERE 出力対象=1 ORDER BY 表示順;

【4222】コンボボックスへのセット方法
質問  Aiz  - 05/1/20(木) 15:07 -

引用なし
パスワード
   ▼クロ さん:
ありがとうございます。おかげさまで抽出のほうは上手くいきました。

便乗の質問なんですが、この抽出したデータをコンボボックスに設定したいのですが、どうも上手くいきません。
すいません、ご助言のほうよろしくお願いします。

  'コンボボックスに出力対象となる出力テーブル名をセットする処理
  Dim CN As New ADODB.Connection
  Dim RS As New ADODB.Recordset
  Dim criteria As String
   
  '接続
  Set CN = CurrentProject.Connection
  
  'レコードセットを取得
  Set RS = New ADODB.Recordset
  '出力対象フラグが"1"且つ、表示順位の昇順で抽出
  criteria = "SELECT 名前 FROM テーブル名 WHERE 出力対象=1 ORDER BY 表示順;"
  RS.Open criteria, CN, adOpenKeyset, adLockOptimistic
 
  If RS.RecordCount = 0 Then
    Call showError("現在、出力可能なマスタ情報は存在しません。")
    Exit Sub
  Else
    Do Until RS.EOF
      Debug.Print RS!NMテーブル名
      RS.MoveNext
    Loop
  End If

  '終了
  RS.Close: Set RS = Nothing
  CN.Close: Set CN = Nothing

【4223】Re:コンボボックスへのセット方法
発言  クロ  - 05/1/20(木) 16:34 -

引用なし
パスワード
     If RS.RecordCount = 0 Then
    Call showError("現在、出力可能なマスタ情報は存在しません。")
    Exit Sub
  Else
    Me.コンボボックス名.RowSource = criteria
    Me.コンボボックス名.Requery
  End If
でいいのでは?

【4224】Re:コンボボックスへのセット方法
質問  Aiz  - 05/1/20(木) 17:17 -

引用なし
パスワード
   ▼クロ さん:

レスありがとうございます。
このソースで実行してみたところ実行後のコンボボックスにはデータが入っていませんでした。
いろいろ試してみたんですが、どれも値が入らず...。

>Me.コンボボックス名.RowSource = criteria

の、ctiteriaのところを直にテーブル名で指定すれば表示されるんですが、それだと意味がないので。。。^^;

【4225】Re:コンボボックスへのセット方法
回答  クロ  - 05/1/20(木) 17:25 -

引用なし
パスワード
   criteria = "SELECT 名前 FROM テーブル名 WHERE 出力対象=1 ORDER BY 表示順;"

このSQL文のまま?
"SELECT 名前 FROM 出力テーブル WHERE 出力対象=1 ORDER BY 表示順;"
ではないでしょうか?

出力テーブル内に出力対象が「1」のものがあれば
Me.コンボボックス名.RowSource = criteria
Me.コンボボックス名.Requery
※コンボボックス名は正規のものに変えてください。

で入るはずですけど...
ちなみにどのイベントで書いているのでしょうか?

【4226】Re:コンボボックスへのセット方法
質問  Aiz  - 05/1/20(木) 17:35 -

引用なし
パスワード
   ▼クロ さん:
>"SELECT 名前 FROM 出力テーブル WHERE 出力対象=1 ORDER BY 表示順;"
>ではないでしょうか?
そうです。こちらのほうです。
criteria = "SELECT NMテーブル名 FROM Sマスタ情報管理 WHERE CF出力対象=1 ORDER BY NO表示順;"

ctiteriaには条件式が格納されているんですが、なぜか表示されません。
イベントはフォームロード時です。

【4227】Re:コンボボックスへのセット方法
回答  クロ  - 05/1/20(木) 17:46 -

引用なし
パスワード
   一度、フォームプロパティの「デザイン変更の許可」を「すべてのビュー」として
フォームロード後にフォームのコンボボックスにフォーカスのある状態でプロパティ
で値集合ソースがcriteriaのSQLになっていないか確認してみてください。
※既存の値集合ソースがあるとデザインにしたときは既存のSQLになってしまうかも?

それと併せて
値集合タイプ/列数/列幅なども再確認してください。

【4228】Re:コンボボックスへのセット方法
発言  Aiz  - 05/1/20(木) 18:02 -

引用なし
パスワード
   ▼クロ さん:
実行後のプロパティでは値集合ソースにはcriteriaのSQLソースになっていました。
後、
値集合タイプ:テーブル/クエリ

列数:2

列幅:0cm;2.54cm

となっていました。

何度もすいません。ご助言のほうお願いします。

【4230】解決
お礼  Aiz  - 05/1/20(木) 19:43 -

引用なし
パスワード
   クロさんありがとうございました。
問題解決しました。

列幅が0になっていたからのようです。

お手数かけてすいませんでした。

【4234】Re:解決
発言  クロ  - 05/1/21(金) 8:35 -

引用なし
パスワード
   そんなもんです...自分も永遠に悩んで解決すれば
大したことがないということは結構あります。
お疲れさまでした。

※【4229】存在チェックにレスが付いてます。
 独自で解決されているようですがレスした方失礼ですので
 ちゃんとレスをどのように解決したかを明記の上レスを返
 してください。
 何処のBBSでも暗黙のルールですので...

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