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で質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- スピードスケート・フィギュアスケート スケートリンク(、カーリングコート含む) が多い地域は北海道ですがなぜ北海道なんですか? 室内競技っ 3 2022/05/02 08:43
- オリンピック・パラリンピック スケートリンク(、カーリングコート含む) が多い地域は北海道ですがなぜ北海道なんですか? 室内競技っ 3 2022/05/02 08:27
- 政治 東京以外の県の選挙で当選した議員は、東京の国会に出席ですか?それとも出馬した県ですか?例えば北海道で 5 2023/04/29 12:57
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/21 16:01
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) エクセルの書式設定について教えてください。 2 2023/02/03 09:59
- 北海道 これからの地球温暖化を予測して将来北海道への移住を考えてます。 札幌とかじゃなくて職業柄寒い田舎の方 4 2022/12/16 12:35
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
ACCESSクエリ抽出条件について
Access(アクセス)
-
リストボックスのプロパティ「複数選択」の「標準」「拡張」の違い
Access(アクセス)
-
Access コンボボックスの複数選択
Access(アクセス)
-
-
4
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
5
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
6
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
7
ACCSESS2013VBA フォームのレコードソースを変更する
その他(データベース)
-
8
ListBox 複数選択 で オートフィルター抽出方法
Visual Basic(VBA)
-
9
access2019 チェックボックスと連動したクエリ抽出条件について
Access(アクセス)
-
10
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
11
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
12
ACCESSのクエリー抽出条件にIIFを使用して
Access(アクセス)
-
13
アクセスのボタンから指定のワードファイルを開く
Access(アクセス)
-
14
アクセス 項目毎にデータを横に並べる方法
Access(アクセス)
-
15
選択クエリで空欄のテーブルがあっても表示したい
Access(アクセス)
-
16
アクセス2000 クエリ抽出でBetweenを記述したところ・・
Access(アクセス)
-
17
ACCESSのフォーム上で複数検索したい項目がある場合どうすればいいですか?
Access(アクセス)
-
18
AccessVBAで作成したExcelファイルを削除する方法は?
Visual Basic(VBA)
-
19
フォームウィンドウを最前面に表示したい(ACCESS)
Microsoft ASP
-
20
ACCESSのリストボックスで複数選択した値をテーブルに保存するには?
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
子供会に入らなければ登校班に...
-
生活保護の申請で原付が許可さ...
-
降水確率60%、降水量0mmってな...
-
公約違反について教えてください!
-
電気管理技術者の収入は幾らで...
-
地方産業、地域産業、地場産業...
-
アクセスのクエリ、リストボッ...
-
朝方、夕方〜夜中以外で、人の...
-
1976年(昭和51年)の成人式は...
-
小さな川の中の、段差は何のた...
-
十三夜のお月見
-
都市と地域と地区の違いがイマ...
-
投票所立会人選出について
-
巨乳が多い地域はどこですか? ...
-
自治会を脱会することに理解が...
-
市民運動、市民活動、住民運動...
-
新大久保の影響を受けてる大学...
-
方言を教えてください!
-
高齢者が地域に貢献出来る事と...
-
一年間の平均降水確率は?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
生活保護の申請で原付が許可さ...
-
子供会に入らなければ登校班に...
-
降水確率60%、降水量0mmってな...
-
今までで、一番不正議員を輩出...
-
安芸高田市議会のリコールって...
-
大阪府大阪市・北摂地域、兵庫...
-
巨乳が多い地域はどこですか? ...
-
どんどん焼き?どんど焼き?
-
防災ラジオについて
-
大阪府の北摂地域・和泉地域と...
-
1976年(昭和51年)の成人式は...
-
4月から転勤になります。 3営業...
-
電気管理技術者の収入は幾らで...
-
狼男や吸血鬼が銀の銃弾やにん...
-
小さな川の中の、段差は何のた...
-
自治会を脱会することに理解が...
-
なぜ寒い地域に住むのでしょうか?
-
地方産業、地域産業、地場産業...
-
丸の内は三菱なのに対し、日本...
-
ペットボトルの捨てかた
おすすめ情報