|
▼小僧 さん:
>▼moto さん、Kein さん:
>こんにちは。
>
>>DAO.Recordsetの.Fields().Valueには文字数制限があるのでしょうか?
>
>Access より DAO.Field のヘルプの抜粋です。
>ご参考になれば幸いです。
>
>Type プロパティ
>オブジェクトの操作の種類やデータ型を示す値を設定または返します。
>
>dbText テキスト型 (Text)
>フィールド データ型の 1 つで、
>テキスト フィールドには最大 255 バイトまでの文字列を格納できます。
>
>ただし、Field オブジェクトの Size プロパティに
>この最大値より小さい値が設定されている場合は、
>その設定値の示すバイト数までしか格納できません。
>
>
>dbMemo メモ型 (Memo)
>フィールド データ型の 1 つです。メモ型フィールドには最大 1.2GB までのデータを格納できます。
ありがとうございます。
なるほどテキスト型で取得してしまっているようです・・。
この以下のロジックで取得しても結果は同じでした。
取得の際にメモ型に変換することは可能なのでしょうか?
すみませんがよろしくお願いいたします。
'*******************************************************************************
' DAOでフィールドを個々に指定して読み込む
'*******************************************************************************
Sub TEST1()
' 参照設定「Microsoft DAO 3.x Object Library」
Dim dbWS As DAO.Workspace
Dim dbWB As DAO.Database
Dim dbRes As DAO.Recordset
Dim GYO As Long
strODBC_con = "ODBC;DSN=notes;DATABASE=DIPSSCH******.NSF;"
' ワークスペースを定義
Set dbWS = DBEngine.Workspaces(0)
' データベースを開く
Set dbWB = dbWS.OpenDatabase("notes", False, False, strODBC_con)
' レコードセットを取得
Set dbRes = dbWB.OpenRecordset("DailyMemo", dbOpenDynaset)
' レコードセットを取得
Set dbRes = dbRes.OpenRecordset()
GYO = 1
Rows("2:65536").ClearContents
' 先頭レコードからEOFまで繰り返す
dbRes.MoveFirst
Do Until dbRes.EOF
' 行の変数を加算し必要項目を選択してセルにセット
GYO = GYO + 1
Cells(GYO, 1).Value = dbRes("Created").Value
Cells(GYO, 2).Value = dbRes("JissekiMemo").Value
' 次のレコードに移る
dbRes.MoveNext
Loop
' レコードセット、データベースを閉じる
dbRes.Close
Set dbRes = Nothing
dbWB.Close
Set dbWB = Nothing
dbWS.Close
Set dbWS = Nothing
End Sub
|
|