質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

1978閲覧

毎日更新されるエクセルデータの差分をアクセスにVBAで追記したいです。

Kazuhiro-ch

総合スコア85

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2022/07/14 09:17

実現したいこと

毎日更新されるエクセルデータの差分をアクセスにVBAで追記したいです。

詳細

エクセルのデータはToday関数Today関数を使って使って日々データが1行ずつ追加されていきます。その1行を毎日取得し、アクセスに追記したいです。最終的に僕はアクセスに行くだけで日々のデータが日々のデータが自動で取得できることが目標です。

###現在できていること

エクセルでこれまでのデータを取得し、アクセスにインポートしています。またエクセルにデータが更新されるところまではできています。ここで聞きたいことはVBAでエクセルデータの差分を取得する方法が知りたいです。

###考えていること
実はまだコードに書く段階には至っておらず、どのように差分を獲得するのか考えている段階です。案としては案としては以下のものがあります。

①毎回、表をコピペし一つに追記、その差分を取得する方法。→コピーをした後表を削除する過程が発生し、コピペなので両方の表が更新されてしまう可能性もある。

②For文で日付までスキップし、今日更新分を取得する。

③各データにN(新規データ)、O(古いデータ)と言ったような指標をつけ、認識する。処理が成功したらNをOに変える。

と言ったものを考えました。

② が現実的かと思いましが、検索してもなかなか出てません。

エクセルデータの差分を抜き取るにはどうすればいいですか?さっくりとした質問になってましいましたがお答えいただけますと幸いです。他にもやりやすい方法等あれば教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatena19

2022/07/14 11:55

そのVBAはAccess側に記述するものですか、エクセル側に記述するものですか。 また、実行するタイミングはどのように考えてますか。1日の業務が終了したときに実行ですか。
guest

回答1

0

ベストアンサー

追記依頼をしてますが、こちらで勝手に推測して、回答します。

最終的に僕はアクセスに行くだけで日々のデータが日々のデータが自動で取得できることが目標です。

アクセスの起動時に追記データをインポートするようにするのがいいと思います。
手順としては、

  • アクセスにエクセルの表のリンクテーブルを作成しておきます。
  • このリンクテーブルの追記されたデータをテーブルに追加する追加クエリを作成する。
  • アクセスの起動時マクロ(AutoExec マクロ)または起動時に表示されるフォームの開くときイベントでリンクテーブルから追記データをテーブルに追加する追加クエリを実行する。

追加クエリは、1日の業務が終了後または開始前に実行するなら、テーブルの最大日付より後のデータを抽出するようにすればいいでしょう。
日付の抽出条件に下記の式を設定すればOKです。

>Dmax("日付","リンクテーブル名")

投稿2022/07/14 12:10

hatena19

総合スコア34352

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問