- 締切済み
access2010でメモ型がインポートできない
以前のACCESS2000では出来ていたのですが、ACCESS2010(windows7)にバージョンアップしたところ、csvファイルのインポートで、メモ型のデータが255文字までしかインポートできなくなりました。 調べてみたところ、そのフィールドを、クエリなどで使用しているとキャスト(型変換)されるのでメモ型ではなくなり255文字の制限がかかる、との記述がありましたが、新しいテーブルを作成してインポートしてもできませんでしたので、別の原因かと思われます。 また、ACCESS2000のデータを、ACCESS2010の[ファイル]-[保存して発行]・・・・も行い、拡張子を.accdbにしてみましたが、やはり255文字を超えるインポートができませんでした。 インポート時の[設定]のところのフィールドの情報で、メモ型にしてあるフィールド名が表示されていないのが気になりますが。 文字列の引用符は ” にしています。 ACCESSはデータの25行目までを読み込んでデータ型を自動選択している、という記述もあり、1行目のデータに256以上の文字を入れてインポートもして見ましたが255文字で切られてしまいます。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- piroin654
- ベストアンサー率75% (692/917)
レスがつかないようですが。時間が経っているので 解決されたかもしれませんが。 一つは、レジストリを変更してみる。以下にその手順が 書いてあります。 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