電子書籍の厳選無料作品が豊富!

Access97を使用しています。Excelで事例集を作っており、
随時期間ごとに抜粋して保存するためにAccessにインポートして条件で抜き出す事にしました。
(毎回インポート&エクスポートします)
おおむねうまくいったのですが、詳しい症例を書く欄が255バイトを越えるため途中で切れてしまいました。
テキスト型ではなくメモ型なら全部インポートされると分かったのですが
DoCmd.TransferSpreadsheetを使った場合、メモ型の設定は行えるのでしょうか。
(手動インポートでは予めテーブルAを用意し、フィールドを設定しておけばうまくいきました)

また、テキストのインポートの場合はインポート定義を利用できるのが分かったので
一度エクセルをタブ区切りテキストにしてから手動でインポートするとうまくいったものの
Transfertextを使うと、タブ区切りの位置を無視&文字化けが起きてしまいました。

できれば、xlsのままインポートが望ましいですが、テキスト変換してからでも
構いませんのでメモ型をきちんとインポートする方法をご教授願います。

A 回答 (2件)

TransferSpreadsheetは既存のテーブルにインポートするという使い方をします


事前に受け入れ用のテーブルを作成しておき(データ型もそのとき設定)
そこにインポートします

なお、TransferSpreadsheetは既存テーブルに追加する形でインポートしますから
インポート前に既存テーブルを空にしておく必要があります

On Error Resume Next
Do.Cmd.DeleteObject acTable,TableName
On Error GoTo 0

DoCmd.TransferSpreadsheet acImport,_
acSpreadsheetTypeExcel9,_
TableName, MyPath & MyFileName, True
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/12/19 21:17

>確認のためにエクスポートしてみるとやはり255バイトで途切れてしまっているのです。


そうですか、じゃ、データ型をメモ型にしても255バイト以上は
インポートできないということなんでしょうね

エクスポートの場合もメモ型は255以下に分割し、テキスト型としてからでないとできませんから
そういう仕様なんでしょうね
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/01/05 23:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!