質問: access2010でメモ型がインポートできない 以前のaccess2000では出来ていたのですが、access2010(windows7)にバージョンアップしたところ、csvファイルのインポートで、メモ型のデータが255文字までしかインポートできなくなりました。 調べてみたところ、そのフィールドを、クエリなどで使用しているとキャスト(型変換)されるのでメモ型ではなくなり255文字の制限がかかる、との記述がありましたが、新しいテーブルを作成してインポートしてもできませんでしたので、別の原因かと思われます。 また、access2000のデータを、access2010の[ファイル]-[保存して発行]・・・・も行い、拡張子を.accdbにしてみましたが、やはり255文字を超えるインポートができませんでした。 インポート時の[設定]のところのフィールドの情報で、メモ型にしてあるフィールド名が表示されていないのが気になりますが。 文字列の引用符は ” にしています。 accessはデータの25行目までを読み込んでデータ型を自動選択している、という記述もあり、1行目のデータに256以上の文字を入れてインポートもして見ましたが255文字で切られてしまいます。 よろしくお願いいたします。
回答: レスがつかないようですが。時間が経っているので 解決されたかもしれませんが。 一つは、レジストリを変更してみる。以下にその手順が 書いてあります。 http://support.microsoft.com/kb/968580/ja レジストリをいじくらない、ということであれば、 以下を試してみてください。一応、daoを使っているので、 コード表のツールから参照設定を選択し、daoがチェック されているか確認をしておいてください。 ファイルが置いてあるフォルダがaccessのファイルと 同じ場合や、accessファイルと同じフォルダに ファイルが直接おいてあるならば、下記のように cuurentproject.path を、そうでないならば フルパスを設定してください。 テーブル名やフォルダ名等は実際に合わせて 変更してください。 private sub コマンド0_click() dim db as dao.database dim rs as dao.recordset dim i as long dim buf as string dim varstr as variant dim strpath as string strpath = currentproject.path set db = currentdb set rs = db.openrecordset("テーブル名", dbopendynaset) 'open "c:\xyz\xaaaa.csv" for input as #1 open strpath & "\xyz\aaa.csv" for input as #1 do until eof(1) line input #1, buf varstr = split(buf, ",", , vbtextcompare) rs.addnew for i = 0 to ubound(varstr) rs(i) = varstr(i) next i rs.update loop close #1 rs.close: set rs = nothing db.close: set db = nothing end sub