フィールド名(ADO)Field オブジェクト
Field オブジェクト
Recordset オブジェクト内の列(フィールド)を表すオブジェクトです。Recordset オブジェクト内の列全体を表す Fields コレクション に関しての詳細は、フィールド名(ADO)Fields コレクション を参照して下さい。
Field オブジェクトを取得
<取得>
object.Fields[.Item](index)
object.Fields[.Item](“name“)
object(index)
object(“name“)
object![name]
引数・戻り値
- object ・・・ 対象となる Recordset オブジェクトを指定します。
- index ・・・ インデックス番号(0 から始まる整数値)を指定します。
- name ・・・ 列名(フィールド名)を指定します。
列名(フィールド名)を取得する(Name プロパティ)
<取得>
object.Name
引数・戻り値
- object ・・・ 対象となる Field オブジェクトを指定します。
- 戻り値 ・・・ 対象となるField オブジェクトの名前(フィールド名)を表す文字列型(String)の値
フィールド内のレコードを取得・設定する(Value プロパティ)
<取得>
object[.Value]
<設定>
object[.Value] = field_value
引数・戻り値
- object ・・・ 対象となる Field オブジェクトを指定します。
- field_value ・・・ 対象となる列(フィールド)のデータ(レコード)を設定します。
- 戻り値 ・・・ 対象となる列(フィールド)のデータ(レコード)を取得します。
Value プロパティは、Field オブジェクトの既定プロパティです。
フィールドの基本特性を取得(Type プロパティ・Precision プロパティ・NumericScale プロパティ)
<取得>
object.Precision
object.NumericScale
object.Type
引数・戻り値
- object ・・・ 対象となる Field オブジェクトを指定します。
Precision プロパティの戻り値 … Field オブジェクトで使用される数値の最大桁数を取得します。
NumericScale プロパティの戻り値 … Field オブジェクトで使用される数値の小数点以下の桁数を取得します。
Type プロパティの戻り値 … Field オブジェクトのデータ型(DataTypeEnum 型の値)を取得します。
定数 | 値 | 説明 |
adArray (ADOX には適用せず。) |
0x2000 | 常に別のデータ型定数と組み合わされ、そのデータ型の配列を示すフラグ値です。 |
adBigInt | 20 | 8 バイトの符号付き整数を示します (DBTYPE_I8)。 |
adBinary | 128 | バイナリ値を示します (DBTYPE_BYTES)。 |
adBoolean | 11 | ブール値を示します (DBTYPE_BYTES)。 |
adBSTR | 8 | Null で終了する Unicode 文字列を示します (DBTYPE_BSTR)。 |
adChapter | 136 | 子行セットの行を識別する 4 バイト チャプタ値を示します (DBTYPE_HCHAPTER)。 |
adChar | 129 | 文字列値を示します (DBTYPE_STR)。 |
adCurrency | 6 | 通貨値を示します (DBTYPE_CY)。通貨型は小数点以下 4 桁の固定小数点の数値です。スケールが 10,000 の、8 バイトの符号付き整数で格納します。 |
adDate | 7 | 日付値を示します (DBTYPE_DATE)。日付型は倍精度浮動小数点数型 (Double) で格納され、整数部分は 1899 年 12 月 30 日からの日数を、分数部分は日数の分数を表します。 |
adDBDate | 133 | 日付値 (yyyymmdd) を示します (DBTYPE_DBDATE)。 |
adDBTime | 134 | 時刻値 (hhmmss) を示します (DBTYPE_DBTIME)。 |
adDBTimeStamp | 135 | 日付/時刻スタンプ (yyyymmddhhmmss および 10 億分の 1 桁までの分数) を示します (DBTYPE_DBTIMESTAMP)。 |
adDecimal | 14 | 固定精度およびスケールの正確な数値を示します (DBTYPE_DECIMAL)。 |
adDouble | 5 | 倍精度浮動小数点値を示します (DBTYPE_R8)。 |
adEmpty | 0 | 値を指定しません (DBTYPE_EMPTY)。 |
adError | 10 | 32 ビット エラー コードを示します (DBTYPE_ERROR)。 |
adFileTime | 64 | 1601 年 1 月 1 日からの時間を示す 64 ビット値を 100 ナノ秒単位で示します (DBTYPE_FILETIME)。 |
adGUID | 72 | 固有のグローバル識別子 (GUID) を示します (DBTYPE_GUID)。 |
adIDispatch | 9 | COM オブジェクトの IDispatch インターフェイスへのポインタを示します (DBTYPE_IDISPATCH)。 (注意)このデータ型は、現在は ADO ではサポートされていません。使用すると予期しない結果になることがあります。 |
adInteger | 3 | 4 バイトの符号付き整数を示します (DBTYPE_I4)。 |
adIUnknown | 13 | COM オブジェクトの IUnknown インターフェイスへのポインタを示します (DBTYPE_IUNKNOWN)。 (注意)このデータ型は、現在は ADO ではサポートしていません。使用すると予期しない結果になることがあります。 |
adLongVarBinary | 205 | 長バイナリ値を示します (Parameter オブジェクトのみ)。 |
adLongVarChar | 201 | 長文字列の値を示します (Parameter オブジェクトのみ)。 |
adLongVarWChar | 203 | Null で終了する Unicode 文字列値を示します (Parameter オブジェクトのみ)。 |
adNumeric | 131 | 固定精度およびスケールの正確な数値を示します (DBTYPE_NUMERIC)。 |
adPropVariant | 138 | オートメーション PROPVARIANT を示します (DBTYPE_PROP_VARIANT)。 |
adSingle | 4 | 単精度浮動小数点値を示します (DBTYPE_R4)。 |
adSmallInt | 2 | 2 バイトの符号付き整数を示します (DBTYPE_I2)。 |
adTinyInt | 16 | 1 バイトの符号付き整数を示します (DBTYPE_I1)。 |
adUnsignedBigInt | 21 | 8 バイトの符号なし整数を示します (DBTYPE_I8)。 |
adUnsignedInt | 19 | 4 バイトの符号なし整数を示します (DBTYPE_I4)。 |
adUnsignedSmallInt | 18 | 2 バイトの符号なし整数を示します (DBTYPE_I2)。 |
adUnsignedTinyInt | 17 | 1 バイトの符号なし整数を示します (DBTYPE_I1)。 |
adUserDefined | 132 | ユーザー定義の変数を示します (DBTYPE_UDT)。 |
adVarBinary | 204 | バイナリ値を示します (Parameter オブジェクトのみ)。 |
adVarChar | 200 | 文字列値を示します (Parameter オブジェクトのみ)。 |
adVariant | 12 | オートメーション バリアント型 (Variant) を示します (DBTYPE_VARIANT)。 (注意)このデータ型は、現在は ADO ではサポートされていません。使用すると予期しない結果になることがあります。 |
adVarNumeric | 139 | 数値を示します (Parameter オブジェクトのみ)。 |
adVarWChar | 202 | Null で終了する Unicode 文字列を示します (Parameter オブジェクトのみ)。 |
adWChar | 130 | Null で終了する Unicode 文字列を示します (DBTYPE_WSTR)。 |
列(フィールド)のデータサイズを取得する(DefinedSize プロパティ)
<取得>
object.DefinedSize
引数・戻り値
- object ・・・ 対象となる Field オブジェクトを指定します。
DefinedSize プロパティの戻り値 … Field オブジェクトのデータ容量を示します。
レコードのサイズを取得する(ActualSize プロパティ)
<取得>
object.ActualSize
引数・戻り値
- object ・・・ 対象となる Field オブジェクトを指定します。
ActualSize プロパティの戻り値 … 対象となる列(フィールド)に格納されているデータ(レコード)の実際の長さを示します。
Field オブジェクト 使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
Sub Sample_ADO_FieldObject() '参照設定 'Microsoft ActiveX Data Objects 6.1 Library Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim constr As String Dim DBFile As String Dim strSQL As String Dim FieldArray Dim i As Long Dim j As Long Dim myType As Collection Set myType = New Collection myType.Add "符号付整数", "3" myType.Add "日付型", "7" myType.Add "テキスト型", "202" DBFile = ActiveWorkbook.Path & "\mydb1.accdb" constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DBFile cn.ConnectionString = constr cn.Open strSQL = "Select * from 社員名簿 order by ID;" rs.Source = strSQL rs.ActiveConnection = cn rs.Open With Worksheets("Sheet1") .Cells.Clear i = 1 Do Until rs.EOF For j = 0 To rs.Fields.Count - 1 If i = 1 Then .Cells(i, j + 1) = myType.Item(CStr(rs(j).Type)) If i = 2 Then .Cells(i, j + 1) = rs(j).Name .Cells(i + 2, j + 1) = rs(j).Value Next j rs.MoveNext i = i + 1 Loop .Columns("A:F").AutoFit End With rs.Close Set rs = Nothing cn.Close Set cn = Nothing Set myType = Nothing End Sub |
実行結果
関連記事
-
Excel VBA のクラスを使ってデータベースへ接続する(ADO)
データベースの処理をクラスモジュールに書く ExcelVBAで、クラス使用する方 …
-
カレントレコードの移動(ADO)MoveFirst、MoveLast、MoveNext、MovePrevious、Move
MoveFirst メソッド、MoveLast メソッド、MoveNext メソ …
-
フィールド名(ADO)Fields コレクション
Fields コレクション Recordset オブジェクト内の1つ以上の列(フ …
-
トランザクション(ADO)BeginTrans、CommitTrans、RollbackTrans
ADO でのトランザクション処理 【書式】 Sub Sample_Transac …
-
テーブル名、クエリ名の取得(ADOX)
テーブル名の取得 Table.Type プロパティ 【書式】 <取得> obje …
-
データベースを作成する(ADOX)
ADOX を使用してデータベース(Access)を作成 Catalog オブジェ …
-
データベース(MySQL)に接続する(ADO)
MySQL ODBCドライバ Windowsには標準で、いくつかの ODBC ド …
-
BOF プロパティ・EOF プロパティ(ADO)
EOF プロパティ・BOF プロパティ BOF プロパティは、カレントレコードの …
-
インデックス、プロパティの設定(ADOX)
インデックスを作成する index オブジェクト 【書式】 <CreateObj …
-
レコードの更新(ADO)Update メソッド
データベースのレコードを更新する Update メソッド カレントレコードの内容 …