
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で質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Access(アクセス) Access VBA を利用して、フォルダ内のファイルの名称を変更したい 1 2023/08/03 08:27
このQ&Aを見た人はこんなQ&Aも見ています
-
アクセスで複数のレコード情報を1レコードにまとめる方法
Access(アクセス)
-
複数のレコードを1つのレコードにまとめる方法
Access(アクセス)
-
ACCESSでひとつのフィールドに内容をまとめる
Access(アクセス)
-
-
4
アクセスで複数レコードを1レコードにできますか?
その他(ソフトウェア)
-
5
Access:クエリーにて集計後に文字列結合したい。
その他(データベース)
-
6
アクセス 同じフィールド(テキスト型)のレコードを連結させたい
Access(アクセス)
-
7
Accessのクエリで2つのフィールドが同条件の場合に結合したい
その他(Microsoft Office)
-
8
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
9
アクセス 項目毎にデータを横に並べる方法
Access(アクセス)
-
10
access 複数フィールドを1フィールドに
Access(アクセス)
-
11
ACCESSのテーブル複数行を1行にしてエクスポートは?
Access(アクセス)
-
12
アクセスで同じ種類のものを横に並べたい
Access(アクセス)
-
13
Accessでグループ化した結果フィールドをつなげるには?
その他(Microsoft Office)
-
14
アクセス2003 複数の列に分かれたデータを1列にまとめたい
Access(アクセス)
-
15
Accessフィールド分割
その他(データベース)
-
16
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
17
行方向のデータを横に並べる
その他(データベース)
-
18
アクセスのクエリでSplit関数は使えないのですか
Access(アクセス)
-
19
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
20
【Access】外部結合を行う前に抽出条件をつけたいのですが。。。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
行方向のデータを横に並べる
-
update文で質問です。 下記の条...
-
ACCESS 一つのフィールドに複...
-
accessで移動平均する方法
-
2つのテーブルから条件に一致...
-
請求と入金のテーブルの作成の...
-
ACCESSのコンパイルエラーについて
-
重複するキーから一番古い年月...
-
場合によって条件を変えるSQL
-
履歴を管理するテーブル構造に...
-
SQL 2つのテーブルとSUBSTRING...
-
続.ORACLEのSELECTのソートに...
-
SQLについて質問です。 テーブ...
-
ACCESSレポートで
-
3つ以上のテーブルをUNIONする...
-
Accessにインポートしたら並び...
-
ACCESSのSQLで、NULLかNULLでな...
-
SELECT文でのデッドロックに対...
-
DataTableから条件を満たした行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
主キーの変更
-
update文で質問です。 下記の条...
-
ACCESS 一つのフィールドに複...
-
PLSQLの識別子エラー
-
accessで移動平均する方法
-
Accessユニオンクエリーで2つ...
-
続.ORACLEのSELECTのソートに...
-
Accessでフィールドを比較した...
-
行方向のデータを横に並べる
-
自分自身への矢印
-
SQL(Where句)
-
テーブルを分けるべきか
-
項目内の改行がレコードの終わ...
-
履歴を管理するテーブル構造に...
-
アクセスで重複データが消えて...
-
VIEWでテーブルの集計結果...
-
項目長変更後の処理について教...
おすすめ情報