
No.2ベストアンサー
- 回答日時:
<tab1>
ID__地域
1___北海道
2___東北
3___関東
まず、この簡単なテーブルをリストボックスの選択に応じてMsgBox で表示に挑戦されたらと。
1、tab1 作成しデータ登録。
2、フォームにリストボックス[地域]とテキストボックス[選択地域]を配置。
[地域].[値集合ソース]=SELECT tab1.地域 FROM tab1;
3、以下の DBSelect関数を標準モジュールに登録。
これで、テスト準備完了です。
<やるべき作業>
以下のコードを書くだけです。
Private Sub 地域_Click()
Dim I As Integer
Dim N As Integer
Dim L As Integer
Me.選択地域 = ""
N = Me.地域.ListCount - 1
If N >= 0 Then
For I = 0 To N
If Me.地域.Selected(I) Then
Me.選択地域 = Me.選択地域 & "'" & Me.地域.ItemData(I) & "',"
End If
Next I
If Len(Me.選択地域) Then
MsgBox DBSelect("SELECT * FROM Tab1 WHERE 地域 IN (" & Me.選択地域 & ")")
End If
End If
End Sub
これだけで、複数選択に応じたデータがメッセージボックスに表示されます。
Select * FROM tab1 WHERE 地域 IN ('北海道','東北')
このような SQL文を作成しているだけです。
後は、各フォームのレコードソースを、このSQL 文にすれば事足ります。
Public Function DBSelect(ByVal strQuerySQL As String, _
Optional ByVal strSeparator1 As String = ";", _
Optional ByVal strSeparator2 As String = "") As String
On Error GoTo Err_DBSelect
Dim I As Integer
Dim J As Integer
Dim R As Integer
Dim C As Integer
Dim M As Integer
Dim N As Integer
Dim rst As ADODB.Recordset
Dim fld As ADODB.Field
Dim Datas As String
Set rst = New ADODB.Recordset
' =================
' Begin With: rst
' -----------------
With rst
.Open strQuerySQL, _
CurrentProject.Connection, _
adOpenStatic, _
adLockReadOnly
If Not .BOF Then
M = .RecordCount - 1
N = .Fields.Count - 1
.MoveFirst
For R = 0 To M
For C = 0 To N
Datas = Datas & .Fields(C) & strSeparator1
Next C
If Len(strSeparator2) Then
Datas = Datas & strSeparator2
End If
.MoveNext
Next R
End If
End With
' ---------------
' End With: rst
' ===============
Exit_DBSelect:
DBSelect = Datas
Exit Function
Err_DBSelect:
MsgBox "SELECT 文の実行時にエラーが発生しました。(DBSelect)" & Chr$(13) & Chr$(13) & _
"・Err.Description=" & Err.Description & Chr$(13) & _
"・SQL Text=" & strQuerySQL, _
vbExclamation, " 関数エラーメッセージ"
Resume Exit_DBSelect
End Function
なお、クエリ自身の改造は任せます。
私は、ダイレクトにレコードソースを指示することしかしていません。
私は、クエリ自体もフォームから更新して利用しています。
よって、クエリでフォームの[選択地域]を参照させることは、どうにも苦手です。
No.1
- 回答日時:
>[Forms]![フォーム]![地域] ← 抽出条件
このような形で複数選択されたものを参照することは出来ません
複数選択されたものを取り出すにはVBAが必須です
詳細はVBAのヘルプに書かれていますから調べてください
キーワードは
MultiSelect/複数選択 プロパティ
Selected プロパティ
です
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESSクエリ抽出条件について
Access(アクセス)
-
リストボックスのプロパティ「複数選択」の「標準」「拡張」の違い
Access(アクセス)
-
ACCESSのリストボックスで複数選択した値をテーブルに保存するには?
Access(アクセス)
-
-
4
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
5
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
6
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
7
アクセスで入力したデータの順番が変わってしまいます
その他(ビジネス・キャリア)
-
8
【Access】レポートでテキストボックスやラベル中の文字配置を下にしたい
Access(アクセス)
-
9
クエリで出来た表にチェックボックスを追加する
その他(Microsoft Office)
-
10
フォームで複数のチェックボックスからの抽出をしたい
Visual Basic(VBA)
-
11
AndroidからのAccessデータベースの使用について
その他(データベース)
-
12
accessでクエリをExcelにエクスポートする時にファイル名に日付を追加したい
Access(アクセス)
-
13
ACCESS クエリで1から順番に番号を表示したい
Access(アクセス)
-
14
【VBA】【ユーザーフォーム_ListBox】オートフィルタで絞りこんだ値だけを取り出したい
Visual Basic(VBA)
-
15
Accessでフォームに自動入力した内容をテーブルに反映させる方法はありますか?
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
部活動が必要か不必要かの質問...
-
諸説
-
生活保護の申請で原付が許可さ...
-
小さな川の中の、段差は何のた...
-
好きな餅菓子(大福、〇〇餅、...
-
巨乳が多い地域はどこですか? ...
-
降水確率60%、降水量0mmってな...
-
狼男や吸血鬼が銀の銃弾やにん...
-
特定郵便局とは?
-
『地域委員』について。
-
人文地理学における機能的地域...
-
国家間の共同体、連合体、機構...
-
北斗の拳の世界みたいな地域
-
地域活性化
-
私と国を作りませんか?
-
小論文の添削をお願いします。 ...
-
埼玉県川口市あたりって夏の気...
-
今までで、一番不正議員を輩出...
-
障害者から町内会費を払う必要...
-
日本の外国人について
おすすめ情報