#170 レコードセットを文字列で取り出す方法 VBA

ADOの「GetString」メソッドを使うと、テーブルの複数のレコードを1つの文字列として取り出すことができます。

次の例では、テーブル「顧客マスタ」から先頭の10レコードをまとめて読み出し、変数strDataにセット、その内容をイミディエイトウィンドウに出力しています。GetStringメソッドの記述の仕方としては、第1引数には常に"adClipString"という定数を指定します。また、第2引数には取り出すレコード数を指定します(今回は10)。これを省略するとすべてのレコードが取り出されます。
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim strData As String
  
Set cnn = CurrentProject.Connection
With rst
  .Open "顧客マスタ", cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect
  strData = .GetString(adClipString, 10)
  Debug.Print strData
  .Close
End With
cnn.Close
イミディエイトウィンドウの実行結果


上記のコード例では、画面では判断できませんが、各フィールドはタブで区切られています。もしカンマ(,)で区切りたい場合には、次のように第3引数にカンマを指定します。セミコロンやスペースで区切りたい場合にも、同様にそれらを第3引数に指定すればOKです。
strData = .GetString(adClipString, 10, ",")
イミディエイトウィンドウの実行結果


さらに、上記のコード例では、各レコードはデフォルトであるCR+LFによって区切られています。これも第4引数を指定することによって、任意の文字で区切ることができます。次の例では各レコードを"■"で区切っています。
strData = .GetString(adClipString, 10, ",", "■")
イミディエイトウィンドウの実行結果
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved