Access + Webのホームへ戻る

RecordsetオブジェクトのGetStringメソッドの使い方

 

RecordsetオブジェクトのGetStringメソッドの使い方を説明します。GetStringメソッドを使用すると、レコードセットの内容を文字列に変換することができますのでHTMLページに表示させるときに便利です。

 

Variant = recordset.GetString( StringFormat, NumRows,

  ColumnDelimiter, RowDelimiter, NullExpr )

 

Variantには、バリアント型の文字列を返します。StringFormatには、レコードセットを文字列に変換するときの形式を指定します。この引数にadClipString(2)を指定したときのみ、RowDelimiter, ColumnDelimiter, NullExprの引数が有効です。NumRowsには、文字列に変換するレコード数を指定します。この引数を省略したときは、レコードセットのすべてのレコードが変換されます。この引数はオプションです。ColumnDelimiterには、カラムの区切りに使用する文字/コードを指定します。この引数を省略したときは、TABが仮定されます。この引数はオプションです。RowDelimiterには、行の区切りに使用する文字/コードを指定します。この引数を省略したときは、改行(CR)が仮定されます。この引数はオプションです。NullExprには、フィールドがNullのとき置換する文字/コードを指定します。省略したときは、空白と置換されます。この引数はオプションです。

 

strRecordset = rs.GetString(adClipString)

response.Write strRecordset

 

 

図 RecordsetオブジェクトのGetStringメソッドを利用したサンプル

 

Access + Webのダウンロードにサンプルが収録されています。ダウンロードの目次を表示させたら、「GetStringメソッドを利用したサンプル」をクリックしてください。Internet Explorerの左側のフレームには、ASPのソースが表示されます。右側のフレームには、実行結果が表示されます。

 

図の行28-33では、Accessのデータベースado.mdbを接続するための処理を行っています。行28-29では、OLEDBProviderData Sourceを設定して変数strConnectionに保存しています。行30-31では、ado.mdb商品テーブルからすべてのレコードを抽出するSQLを作成して変数strSQLに保存しています。このSQLには、SELECTのフィールド名に、商品コード、商品名、梱包単位が指定されています。また、ORDER BY句が指定されていますのでレコードセットは、商品コード順に並べ替えられます。行33では、ConnectionオブジェクトのOpenメソッドでado.mdbを接続しています。

 

28: strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" _

29:   & "Data Source=" & server.MapPath("webdb/ado.mdb")

30: strSQL = "Select 商品コード,商品名,梱包単位" _

31:   & " From 商品 Order by 商品コード;"  

32: set cnn = server.CreateObject("adodb.connection")

33: cnn.Open strConnection

 

34では、ConnectionオブジェクトのExecuteメソッドにstrSQLを指定して商品テーブルのレコードセットを作成しています。

 

34: set rs = cnn.Execute(strSQL)

 

36, 51では、HTMLの表の開始/終了タグ<table>・・・</table>をブラウザに送信しています。

 

36: response.Write "<table border='1'>"

   ・・・

51: response.Write "</table>"

 

38-42では、HTML<tr>・・・</tr>タグ内に<th>・・・</th>を挿入して表の見出しを送信しています。

 

38: response.Write "<tr>"

39: response.Write "<th>ID</th>"

40: response.Write "<th>商品名</th>"

41: response.Write "<th>梱包単位</th>"

42: response.Write "</tr>”

 

44-49では、レコードセットの内容を文字列に変換してブラウザに送信しています。行44では、<table>の行と列の開始タグ<tr><td>をブラウザに送信しています。行45では、RecordsetオブジェクトのGetStringメソッドでレコードセットの内容を文字列に変換してブラウザに送信しています。引数StringFormatには、adClipStringを指定しています。adClipStirngを指定すると、ColumnDelimiter, RowDelimiter, NullExprの引数が有効になります。引数NumRowsには-1を指定しています。この場合すべてのレコードが変換されます。引数ColumnDelimiterには、<table>の列の終了/開始タグ</td><td>を指定しています。引数RowDelimiterには、<table>の列/行の終了タグ</td></tr>と行/列の開始タグ<tr><td>を指定しています。引数NullExprには、CHR(60)を指定しています。CHR(160)は、レコードのフィールドがNullのとき、置換されるコードです。CHR(160)は、印字されないコードでブラウザに送信すると空白のスペースが確保されます。CHR(32)をブラウザに送信すると空白が無効になります。行49では、<table>の列/行の終了タグ</td></tr>をブラウザに送信しています。

 

44: response.Write "<tr><td>"

45: response.Write rs.GetString (adClipString,-1,_

46:   "</td><td>", _

47:   "</td></tr><tr><td>", _

48:   chr(160))

49: response.Write "</td></tr>"

 

定数名adClipStringは、行3include file=で指定しているadovbs.incファイルに定義されています。

 

3: <!--#include file=adovbs.inc -->

 

53では、レコードセットを閉じています。行54では、データベースを切断しています。

 

53: rs.Close

54: cnn.Close

 

55-56では、Recordset, Connectionオブジェクトを解放しています。

 

55: set rs = nothing

56: set cnn = nothing

 

 

Access + Webのホームへ戻る