• 締切済み

access2010でメモ型がインポートできない

以前のACCESS2000では出来ていたのですが、ACCESS2010(windows7)にバージョンアップしたところ、csvファイルのインポートで、メモ型のデータが255文字までしかインポートできなくなりました。 調べてみたところ、そのフィールドを、クエリなどで使用しているとキャスト(型変換)されるのでメモ型ではなくなり255文字の制限がかかる、との記述がありましたが、新しいテーブルを作成してインポートしてもできませんでしたので、別の原因かと思われます。 また、ACCESS2000のデータを、ACCESS2010の[ファイル]-[保存して発行]・・・・も行い、拡張子を.accdbにしてみましたが、やはり255文字を超えるインポートができませんでした。 インポート時の[設定]のところのフィールドの情報で、メモ型にしてあるフィールド名が表示されていないのが気になりますが。 文字列の引用符は ” にしています。 ACCESSはデータの25行目までを読み込んでデータ型を自動選択している、という記述もあり、1行目のデータに256以上の文字を入れてインポートもして見ましたが255文字で切られてしまいます。 よろしくお願いいたします。

みんなの回答

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

レスがつかないようですが。時間が経っているので 解決されたかもしれませんが。 一つは、レジストリを変更してみる。以下にその手順が 書いてあります。 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

関連するQ&A