次の方法で共有

ACCESS2013にて EXCELへのエクスポートができなくなる

Anonymous
2016-07-23T02:39:03+00:00

ACCESS2013 から Excel(xlsx)へのエクスポートにおいて

更新(上書き)されなくなる現象が起きてしまいます。

マクロのコマンドで

[スプレッドシートのインポート/エクスポート]を利用し、

Aというクエリを指定の場所へのExcelファイルを作成しました。

シートの種類:Excel Workbook

フィールド名の指定:いいえ

同様に、A-1、A-2という別クエリも同一ファイルにエクスポートします。

ブック内に各シートが作成されるという構成です。

マクロをスケジュール化し、日々のデータを更新する目的です。

このマクロを実行し、初回は無事に作成されました。

しかし、タスクスケジュールに組み込み、日々のデータ更新をセットすると

いつの間にか更新(上書き)されなくなってしまします。

クエリの内容を確認すると、クエリでの内容は変わっているのですが

Excelの内容が更新(上書き)されないという状況です。

※マクロを再度実行してもダメで、更新(上書き)されません。

しかも、そのクエリの抽出条件だけを変えた、B、C、D、、、

といったクエリも同様にエクスポート実行しているのですが

Bは更新される、Cは更新されない、、、などまちまちです。

一度、Excelファイルを削除すると、当然現在の内容でエクスポートされるので

再度、作成して対処しています。

①初回はエクスポートできて、あるタイミングで上書きできない条件とは?

②確実に更新するようにするには?

どうか、ご助言願います。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

4 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2017-07-20T02:14:35+00:00

    Makapu様、このまま使わせて頂きました。ありがとうございます。

    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "QTest", FName 

    の部分だけ、

    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "QTest", FName 

    にしないとファイル形式によってはエクスポート先のEXCELファイルを開くことができなくなります。

    参考:AcSpreadSheetType Enumeration (Access)

    https://msdn.microsoft.com/en-us/vba/access-vba/articles/acspreadsheettype-enumeration-access

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Makapu 92,110 評価のポイント ボランティア モデレーター
    2016-07-23T22:56:55+00:00

    KIMURA_508さん、ご返信ありがとうございます。

    書式がリセットされるので「削除→新規」ではなく、

    やはり上書き保存したいという事ですね。

    タスクスケジュールに組み込んで上書き保存がうまくいかなくなる現象について

    私の方では他にうまく調べられませんでした。。。

    もしよろしければ、経験豊富な方が多くいらっしゃる

    msdnフォーラムに投稿されてみてはいかがでしょう。

    msdnフォーラム(VBA)

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2016-07-23T05:43:38+00:00

    Makapu 様

    早々のご回答ありがとうございます。

    「削除→新規」も検討しましたが

    書式がリセットされてしましますので

    オートフィルターが継承できなくなってしまいます。

    オートフィルター付きでエクスポートできれば良いのですが。。。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Makapu 92,110 評価のポイント ボランティア モデレーター
    2016-07-23T05:27:55+00:00

    KIKIMURA_508さん こんにちは。

    上書きをするのではなく、常に新規でエクスポートするよう

    一度ファイルを削除してからエクスポートするようにしてはいかがでしょう。

    VBAになりますが

    ’ファイルを削除してからエクスポートする動作のサンプル

    Sub TestExp()

        Const FName = "C:\D\Test.xlsx"  'ファイル←Cドライブの下のDフォルダの中のTest.xlsx

        If Dir(FName) <> "" Then    'ファイルが存在したら

            Kill FName              '削除する

        End If

     'QTest クエリーを Text.xlsx にエクスポート

        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "QTest", FName 

    End Sub

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません