#681 | 複数レコードのデータを単一フィールドに出力するプロシージャ例 | VBA | |
ある条件に一致する複数レコードの特定フィールドについて、それらのデータをカンマ区切りの文字列としてまとめ、ひとつのフィールド値のように出力するサンプルプロシージャです。 Public Function ListCSV(strField As String, strSource As String, strWhere As String) As String '複数レコードの指定フィールドの値をカンマ区切りでリスト化して返す 'strField :選択するフィールド名 'strSource :テーブルまたはクエリ名 'strWhere :抽出条件 Dim dbs As Database Dim rst As Recordset Dim strSQL As String Dim strRet As String Set dbs = CurrentDb 'SQL文を組み立て strSQL = "SELECT " & strField & " FROM " & strSource & " WHERE " & strWhere 'SQL文からレコードセットを生成 Set rst = dbs.OpenRecordset(strSQL) With rst strRet = "" '抽出された全レコードのループ Do Until .EOF '指定フィールドの値をカンマ区切りで組み立て strRet = strRet & IIf(Len(strRet) > 0, ",", "") & .Fields(strField) .MoveNext Loop .Close End With '組み立てられたカンマ区切りの文字列を返す ListCSV = strRet End Function このプロシージャをクエリの演算フィールドから呼び出して利用する例です。
|
|||
|
Copyright © T'sWare All rights reserved |