• 締切済み

Accessにインポート時、メモ型に設定したい

Access97を使用しています。Excelで事例集を作っており、 随時期間ごとに抜粋して保存するためにAccessにインポートして条件で抜き出す事にしました。 (毎回インポート&エクスポートします) おおむねうまくいったのですが、詳しい症例を書く欄が255バイトを越えるため途中で切れてしまいました。 テキスト型ではなくメモ型なら全部インポートされると分かったのですが DoCmd.TransferSpreadsheetを使った場合、メモ型の設定は行えるのでしょうか。 (手動インポートでは予めテーブルAを用意し、フィールドを設定しておけばうまくいきました) また、テキストのインポートの場合はインポート定義を利用できるのが分かったので 一度エクセルをタブ区切りテキストにしてから手動でインポートするとうまくいったものの Transfertextを使うと、タブ区切りの位置を無視&文字化けが起きてしまいました。 できれば、xlsのままインポートが望ましいですが、テキスト変換してからでも 構いませんのでメモ型をきちんとインポートする方法をご教授願います。

みんなの回答

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

>確認のためにエクスポートしてみるとやはり255バイトで途切れてしまっているのです。 そうですか、じゃ、データ型をメモ型にしても255バイト以上は インポートできないということなんでしょうね エクスポートの場合もメモ型は255以下に分割し、テキスト型としてからでないとできませんから そういう仕様なんでしょうね

whatwhat
質問者

お礼

お礼が遅くなってすいません。 もう一度確認したところ、フィールドによっては255バイト以上インポート出来ておりました。 フィールド1、2、3は255以上出ているのにフィールド4だけが255で切られる という事はあるのでしょうか。 データ型はすべてメモ型です。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

TransferSpreadsheetは既存のテーブルにインポートするという使い方をします 事前に受け入れ用のテーブルを作成しておき(データ型もそのとき設定) そこにインポートします なお、TransferSpreadsheetは既存テーブルに追加する形でインポートしますから インポート前に既存テーブルを空にしておく必要があります On Error Resume Next Do.Cmd.DeleteObject acTable,TableName On Error GoTo 0 DoCmd.TransferSpreadsheet acImport,_ acSpreadsheetTypeExcel9,_ TableName, MyPath & MyFileName, True

whatwhat
質問者

お礼

回答いただきありがとうございます。 教えて頂いた通りやってエクセルファイルはインポートは出来るのですが、 その後確認のためにエクスポートしてみるとやはり255バイトで途切れてしまっているのです。 試しにその列だけをインポートしてみてもやはり同じ結果でした。