Access VBA質問箱 IV

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

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


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

【7493】チェックボックスについて 超初心者 06/3/12(日) 23:10 質問[未読]
【7495】Re:チェックボックスについて 小僧 06/3/13(月) 11:13 発言[未読]

【7493】チェックボックスについて
質問  超初心者  - 06/3/12(日) 23:10 -

引用なし
パスワード
   宜しくお願いします。
テーブル T_購入高に
項目名
エリア   購入高
日本    123450
アメリカ  123500
日本    235000
ヨーロッパ 258000
日本    158000
フォームで「エリア」をチェックボックス付きで作って、チェックある「エリア」を選択クエリの条件にして購入高の合計を抽出したいのですが上手く行きません。
例えば、日本とアメリカにチェックを付けると、クエリの抽出条件に指定出来るようにしたいと思っています。
クエリにビルドでチェックボックス名を貼り付ければ良いのか思ったのですが、無理でしょうか?
ご指導宜しくお願いします。

【7495】Re:チェックボックスについて
発言  小僧  - 06/3/13(月) 11:13 -

引用なし
パスワード
   ▼超初心者 さん:
こんにちは。

フォームとテーブルの関係などが当方には解りづらいので
超初心者 さんが何をされたいのかがイマイチ伝わりません。


以下が何かのヒントになれば幸いです。

フォーム上にリストボックスを配置。

名前:lstエリア
値集合ソース:SELECT エリア FROM T_購入高 GROUP BY エリア;
複数選択:標準

フォーム上にコマンドボタンを配置。
名前:実行

コマンドボタン「実行」の「クリック時」のコードに
Private Sub 実行_Click()
'要参照設定 Microsoft DAO x.x Object Library
Dim strSQL As String
Dim varItem As Variant
Dim QD As DAO.QueryDef
Dim i As Long

  If DCount("*", "MSysObjects", "Name ='Q_Temp'") > 0 Then _
    DoCmd.DeleteObject acQuery, "Q_Temp"

  For Each varItem In Me.lstエリア.ItemsSelected
    strSQL = strSQL & ",'" & Me.lstエリア.ItemData(varItem) & "'"
  Next
    
  strSQL = "SELECT エリア, Sum(購入高) AS 合計 " _
      & "FROM T_購入高 " _
      & "GROUP BY エリア " _
      & "HAVING エリア " _
      & "IN(" & Mid(strSQL, 2) & ");"
       
  Set QD = CurrentDb.CreateQueryDef("Q_Temp", strSQL)
  Set QD = Nothing
End Sub

リストボックスで選んだ項目だけ集計されるクエリ「Q_Temp」が
作成されている事を確認されてみて下さい。

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