ACCESS2016で名簿を作成しています。名簿のテーブルのフィールドは、ID,名前、住所、電話、メール、登録年月日、備考があります。ACCESSでは、容量が最大2Gとまでの制限があるようなので、これを超えないようにするため、古いレコードはExcelに出力して、出力したレコードはACCESSのテーブルから削除できるようにしたいと思っています。様々な本を調べましたがVBAではどのようにしたら良いのかわかりません。このようにすることは無理なのでしょうか?できれば出力先のExcelは、毎回新たにファイル名をしてして保存できるようにできないか?とも思っています。
どなたかご存じな方、ご教授お願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
頻度は高くないと思われますので(たぶん年に一・二回?)
エクセル出力用クエリ
select * from 名簿テーブル where 登録年月日 <= #2016/4/1#
削除用クエリ
delete * from 名簿テーブル where 登録年月日 <= #2016/4/1#
を作っておいて(抽出条件は作業のつど適宜変更)
docmd.TransferSpreadsheet acExport,acSpreadsheetTypeExcel12Xml,"エクセル出力用クエリ","D:\" & format (now,"yyyymmdd_hhnnss") & ".xlsx",true
でDドライブなどに出力し、
docmd.openquery "削除用クエリ"
で削除。
とかでは?
なお、
どのようなデータが入るのか不明ですが、
フィールド名 データ型 サイズ
ID 長整数型 8
名前 テキスト 255
住所 テキスト 255
電話 テキスト 40
メール テキスト 255
登録年月日 日付時刻 8
備考 メモ 1000
で各フィールドに常に目いっぱいデータを押し込むとしても
Accessのサイズの上限を安全マージンをとって1.5GBと仮定します。
8+500+500+80+500+8+2000 = 3596
1.5*1024*1024*1024/3596 = 447890.
常に目いっぱいの場合でも44万件、一般的なケースでは100万件でも
まだ余裕がありそうですので、この処理自体を考えなくても大丈夫な気がします。
ご丁寧な回答をいただきありがとうございます。ACCESSは初心者なのでインターネットや本で調べ、試行錯誤しながらデータベースを作成しています。これから教えていただいた方法を取り組んでみます。また、ACCESSの容量についてもアドバイスをいただきありがとうございます。ときどきデータベースの最適化しながら作成していますが、今現在8148KBなので心配になり質問させていただきました。
お忙しいところ回答いただきありがとうございました。
No.1
- 回答日時:
テーブルに削除というフィールドをyesno型で追加。
削除したいレコードにチェックをつける。
チェックのあるデータのみを抽出するクエリを作成。
このクエリをエクセルにエクスポート。
テーブルからチェックのあるデータのみを削除する。
これでできると思います。
早速ご回答いただきありがとうございます。質問するときの言葉が足りなかったようで申し訳ありません。質問の内容は、フォームにボタンを作成して、そのボタンをクリックすると質問の内容を実行するようにVBAでやりたいと思っているのです。折角ご回答をいただいたのにこちらの言葉足らずの質問で申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのフィールド数が255しか...
-
ACCESSでの改行コード
-
INSERT INTO ステートメントに...
-
Accessでテーブルの値をテキス...
-
アクセス エラーを数値「0」に...
-
accessで重複を防ぎたい
-
アクセス VBAで列の入れ替...
-
ACCESS検索★ある文字を複数のフ...
-
【Access】フォームで自動計算...
-
accessのレポートで元になるテ...
-
主キーはオートナンバー型のID...
-
ACCESS レーダーチャートのデー...
-
ExcelからAccessにデータを取り...
-
Accessで別途保存の画像ファイ...
-
ACCESSで400以上のフィールドが...
-
ACCESSでテーブルのフィールド...
-
ACCESSで和暦を西暦に・・・
-
ACCESSのフォームでアルファベ...
-
アクセスで複数行の一括入力す...
-
Access:リンクテーブルマネー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブルの値をテキス...
-
Accessのフィールド数が255しか...
-
ACCESSでの改行コード
-
INSERT INTO ステートメントに...
-
ACCESSで400以上のフィールドが...
-
Access 昇順・降順で並び替え...
-
SQLServer2005のSQL文での別名...
-
【Access】フォームで自動計算...
-
ACCESSで和暦を西暦に・・・
-
accessで重複を防ぎたい
-
アクセス エラーを数値「0」に...
-
accessのレポートで元になるテ...
-
ExcelのデータをコピーでACCESS...
-
主キーはオートナンバー型のID...
-
アクセス VBAで列の入れ替...
-
Accessで、固定アルファベット+...
-
Access:リンクテーブルマネー...
-
ACCESS検索★ある文字を複数のフ...
-
アクセスのテーブルデータをCSV...
-
ACCESSでテーブルのチェックを...
おすすめ情報