none
Access2003:TransferSpreadsheetで項目数を変えて上書き出力すると、エラーが発生します。 RRS feed

  • 質問

  • TransferSpreadsheetを使用したExcelファイルのエクスポートにて、
    以下①~⑥の手順を行うとエラーが発生します。

    環境:WindowsXP、Access2003、Excel2003


    ①任意の項目数のテーブルを用意。
     データも適当に入力。

    ②Docmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, [①で用意したテーブル],[任意のパス],True

     →正常にExcelファイル出力。

    ③①のテーブルの項目数を減らす。
     ※テーブル名は変更しない

    ④②のTransferSpreadsheetメソッドを実行。

     →正常にExcelファイル出力。
      テーブル名が同一なので、上書きされて項目数が減っている。

    ⑤③のテーブルの項目数を増やす。
     ※テーブル名は変更しない

    ⑥②のTransferSpreadsheetメソッドを実行。

     →「オブジェクト''が見つかりませんでした。オブジェクトが存在していること、名前やパス名
     が正しいことを確認してください。」というエラーメッセージが出力される。

    ・上記手順③にて項目数を増加させてもエラーとはならず、項目数減→項目数増の過程を経た場合にエラーとなります。
    ・上書きをせずに、一旦出力済みのファイルを抹消することで問題を回避できることは分かっています。

    【質問事項】

    おそらく既知の問題であると思い、いろいろ調べてみたのですが該当する情報は得られませんでした。

    この問題の原因をご存知の方、あるいは原因の記載場所に心当たりのある方がいらっしゃいましたら、ご教示頂けますでしょうか。

    長文で申し訳ありませんが、よろしくお願い致します。

    2012年7月22日 0:42

すべての返信

  • クゥエルさん、こんばんは、Fuda1ロボットです。巡回モード

    私の環境は、WindowsXP、Access2007、Excel2007ですが、同様な現象が再現致します。
    バージョンがアップしても変化無しですね。

    しかし、若干、エラーメッセージの内容が親切になっております。

    「実行時エラー’3190’:
     定義されているフィールドが多すぎます。」

    このエラー内容ですと、あ~なるほど、と納得します。
    Excelシートにゴミが書かれている事がありますが、
    フィールドが少ない分にはエラーがでませんでした。

    クゥエルさん、のWindowsXP、Access2003、Excel2003の環境での
    「オブジェクト''が見つかりませんでした。オブジェクトが存在していること、名前やパス名
     が正しいことを確認してください。」
    これでは、エラーメッセージの意味がほとんどないです。

    ○参考資料

    試験したマクロ
    Private Sub コマンド2_Click()
           DoCmd.TransferSpreadsheet acExport, _
            acSpreadsheetTypeExcel9, "転送元テーブル", "C:\work\Book1.xlsx", True
    End Sub

    TransferSpreadsheet マクロ アクション
    http://office.microsoft.com/ja-jp/access-help/HA001226308.aspx

    Excelへデータを出力する方法
    http://www.accessclub.jp/samplefile/samplefile_126.htm

    2012年7月23日 14:57
  • FUDA1さん、こんばんは。

    クゥエルです。

    なるほど… Access2007でも事象そのものは変わらずですが、メッセージだけは改善されているのですね。

    情報のご提供、感謝致します。

    2012年7月29日 10:50