No.4ベストアンサー
- 回答日時:
データベース関数などと命名した標準モジュールに以下の関数をコピペして保存して下さい。
次に、イミディエイトウインドウでテストして頂ければ幸いです。
[イミディエイト]
? DBSelect("SELECT F2 FROM A WHERE F1=1111")
1;4
? DBSelect("SELECT F2 FROM A WHERE F1=1111", " And ")
1 And 4 And
Public Function DBSelect(ByVal strQuerySQL As String, _
Optional ByVal strSeparator 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) & strSeparator
Next C
.MoveNext
Next R
End If
End With
' ---------------
' End With: rst
' ===============
Exit_DBSelect:
DBSelect = Left(Datas, Len(Datas) + (Len(Datas) > 0))
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.3
- 回答日時:
No1 さんの回答を具体化すれば・・・。
<A>
ID___F1_____F2
1____1111__1
2____1112__2
3____1113__3
4____1111__4
<クエリ2>
F1_______F2_New
1111____1,4
1112____2
1113____3
このクエリを SQLビューで見れば、割と簡単なものです。
SELECT A.F1, DBSELECT("SELECT F2 FROM A WHERE F1=" & F1, ",") AS F2_New
FROM A
GROUP BY A.F1;
まあ、課題は、DBSelect関数を用意できるか否かです。
<続く>
No.2
- 回答日時:
VBA ( DAO 使用 ) で作ってみました。
( このプログラムのまま使用するのであれば参照設定で Microsoft DAO X.X Object Library を設定してください。)Aテーブル→Table1
別テーブル→Table2
としました。
また、Table2 は空であることが前提です。
Private Sub コマンド0_Click()
Dim rsCode As Recordset
Dim strWhere As String
Dim rsNo As Recordset
Dim rsDst As Recordset
Dim strNos As String
Set rsCode = CurrentDb.OpenRecordset("SELECT DISTINCT Table1.コード FROM Table1", dbOpenForwardOnly)
Set rsDst = CurrentDb.OpenRecordset("SELECT * FROM Table2", dbOpenDynaset)
Do Until rsCode.EOF
strWhere = "WHERE Table1.コード=""" & rsCode.Fields("コード").Value & """"
Set rsNo = CurrentDb.OpenRecordset("SELECT Table1.No FROM Table1 " & strWhere, dbOpenForwardOnly)
strNos = ""
Do Until rsNo.EOF
If strNos <> "" Then
strNos = strNos & ","
End If
strNos = strNos & rsNo.Fields("No").Value
rsNo.MoveNext
Loop
Set rsNo = Nothing
With rsDst
.AddNew
.Fields("コード") = rsCode.Fields("コード").Value
.Fields("NO").Value = strNos
.Update
End With
rsCode.MoveNext
Loop
Set rsCode = Nothing
End Sub
No.1
- 回答日時:
こんばんは!
ご質問を読んで、
横もちに替えるためにクロス集計して、
カンマで結合させるユーザー定義関数を作って文字連結させる方法
があるかなぁって思いました。
カンマつきではありませんが、
文字連結部分のSQLのご参考になれば。。。
SELECT T.コード, [1] & [2] & [3] & [4] AS 番号 FROM [ TRANSFORM Min(番号) SELECT コード FROM Aテーブル GROUP BY コード PIVOT 番号 In(1,2,3,4);]. as T
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
アクセスで複数のレコード情報を1レコードにまとめる方法
Access(アクセス)
-
複数のレコードを1つのレコードにまとめる方法
Access(アクセス)
-
Access:クエリーにて集計後に文字列結合したい。
その他(データベース)
-
-
4
Accessでテキストが合体できる関数ないですか?
Access(アクセス)
-
5
行方向のデータを横に並べる
その他(データベース)
-
6
Accessでグループ化した結果フィールドをつなげるには?
その他(Microsoft Office)
-
7
ACCESSで縦に並んだテーブルデータを横に並べることは出来ますか?
Access(アクセス)
-
8
[Access]異なるレコード間の文字列連結
その他(データベース)
-
9
Access サブフォームでの選択行の取得
その他(データベース)
-
10
複数行を1行にするSQL
Oracle
-
11
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
12
アクセスのクエリでSplit関数は使えないのですか
Access(アクセス)
-
13
ACCESSのテーブル複数行を1行にしてエクスポートは?
Access(アクセス)
-
14
2つ目のレコードの値を取得するには?
Access(アクセス)
-
15
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
16
ACCESSでひとつのフィールドに内容をまとめる
Access(アクセス)
-
17
エクセルで縦のカラムデータをカンマ区切りで出力したい。
PostgreSQL
-
18
Access テーブルを分割してエクスポートしたい
Access(アクセス)
-
19
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
20
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
ACCESS 一つのフィールドに複...
-
重複するキーから一番古い年月...
-
続.ORACLEのSELECTのソートに...
-
PLSQLの識別子エラー
-
VIEWでテーブルの集計結果...
-
請求と入金のテーブルの作成の...
-
ACCESSのコンパイルエラーについて
-
主キーの変更
-
SQLについて質問です。 テーブ...
-
片方だけ抽出する方法(SQL)
-
[Oracle] UPDATE分の副問い合わ...
-
行方向のデータを横に並べる
-
Accessリレーションシップ
-
ACCESS2000でDCount関数の使い方
-
ACCESS 一番最新の日付の金額...
-
3つ以上のテーブルをUNIONする...
-
accessテーブル作成クエリを実...
-
SELECT時の行ロックの必要性に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
重複するキーから一番古い年月...
-
2つのテーブルから条件に一致...
-
ACCESS 一つのフィールドに複...
-
行方向のデータを横に並べる
-
SQL 2つのテーブルとSUBSTRING...
-
PLSQLの識別子エラー
-
Accessでフィールドを比較した...
-
主キーの変更
-
Accessユニオンクエリーで2つ...
-
請求と入金のテーブルの作成の...
-
続.ORACLEのSELECTのソートに...
-
Inner join と Left joinの明...
-
片方だけ抽出する方法(SQL)
-
複数テーブルの不一致クエリに...
-
SQL文について(片方のテーブル...
-
自分自身への矢印
-
OracleのUnion内でそれぞれのOr...
-
VIEWでテーブルの集計結果...
-
【Access】順位を付けたい
おすすめ情報