目次Accessの更新クエリーを使ってデータベースのデータを修正する元データExcelの原表がミスっていて誤データが既にテーブルに存在するまず原表のExcelVBAを修正し、次からのデータを正常にしておく!競馬データの騎手名欄に減量騎手の場合、名前の前に減量記号が付くことがあるのだがマークが追加変更されたタイミングでExcelVBAの修正をしていない場合、そのまま騎手名としてデータ登録されてしまうので、これを修正する一連の作業をココに記録しておく。目次が巻頭で検索が巻末。昔のタイプの本の構成だが、索引がページでなくTipsという見出しNo.になっていて慣れるまでは検索しづらい。Amazonレビューは★3.9私のKindle-Unlimited評価は★4Accessの更新クエリーを使って.accdbとSQL-Serverのデータを修正する今回のデータ更新用にサブシステムとして新規でAccessの.accdbを1つ作成しAccessとSQLのデータをアタッチしてデータを修正する更新クエリーを作成し、ジョブマクロとして登録し再利用可能とする。SQL-Server更新用サブシステムを作成する(今回は既に作成してある)内容は、AccessもSQL-Serverも同じ間違いなので、ここではAccessのDBにアタッチした状態のファイルを簡単に説明した上でデータ修正をする更新クエリーを作成するまでを簡単に記載する。➡付きが、外部ファイルをアタッチしているファイル。(2dbo_MS_DT:結果データの退避用SQL-Server)※Accessの元データがある.accdbに直接クエリーを作成してしまうと管理が大変になるので、目的ごとにサブシステムとして1つ.accdbを作成するのがAccessDBの管理しやすい使い方になる。今回の修正サブシステムはSQL-SV-rep用として既に作成してあるDBに更新クエリーとジョブマクロを追加する方法でデータ更新及びサブシステム管理を完成させる。更新前の誤データを確認する誤データは1文字目に記号が入っているので、フィルターで抽出してみると・・・3出馬表で796件あるようだ。1SQL-Serverの方も796件ありデータ件数は一致している。選択クエリーで今回更新するデータを確認してみる「減量」を選択し、ダブルクリック(もしくは下のフィールド欄までドラッグ)同様に「騎手」を選択し、ダブルクリックする。※「減量」をクリックしShift+「騎手」をクリックし、下のフィールド欄までドラッグしても同様の結果を得られる。テスト表示として、上記メニューバーを「更新」から「選択」に変更し騎手の抽出条件にマークを指定すると該当するデータが抽出されるのでそれが今回更新するデータ群となる。上記Accessでの表示をSQLにすると下のようになる。AccessではSQLを知らなくても、SQL文を簡単に作成できるのがとても便利なのだ。(Left([騎手],1))="△"));クエリー1のタブを右クリックし、SQLビューを選択すると同じものが表示されるので、一度試してもらいたい。クエリーを走らす場合、必ず先にデータベースのバックアップを取ってから実行するように心がける。同様に今度は騎手名を更新していくクエリーを4つ作成していく。上記クエリーに纏めてしまえば4つの更新クエリーで出来てしまうが、データ修正パッチモジュールは多少時間が掛かっても確実に1つずつ仕留めていく方法をとった方がベターである。※失敗しても復旧しやすい形をとる。(Left([騎手],1))="△"));更新クエリー名とデータベース名をSQL文を直接変更するだけで作成できるが、これをAccess更新クエリーから作るとデータベース選択からクリックして作ることになるので、1から作ることになるので面倒。(Left([騎手],1))="△"));データベースのバックアップを取っているのを確認しRmk01から順番に更新クエリーを実行しデータ内容を確認してみる。名前が上位に表示されていないので、うまくいっているポイ!ここまで出来たらこの完成した更新クエリーをジョブマクロとして登録しておけば次に忘れた頃このAccessDBを見た時、この更新マクロ群は何をやっているのかが分かりやすくなる。履歴として保存管理するのは次に同じようなデータ更新をする場合に流用できて便利だし開発時間も大幅に短縮されることがある。今回は出来上がりのジョブマクロの画像を貼り付けておくので、参考にして頂ければ幸いだ。ジョブマクロに作成した更新クエリーを登録しておく実行すると下記のメッセージボックスが表示される「OK」と「キャンセルボタン」で処理を分岐。キャンセルだと何も実行せずマクロを終了する。修正パッチは大概同じ方法で作成可能なので、サンプルを1つ作っておくと便利になる。リファレンス索引AccessVBAではなく「Accessマクロの専門書」としてはコレしか見たことがない!個人でデータ加工するなら、Excelの弱点である大量データの更新や一括更新は、Accessで操作した方が正確で素早く加工できるが、皆様あまり使わない。他人様へのプログラムを納品する場合は、Accessでのフォームやレポートが必要になるが、個人使用となると、データエントリーはExcel!データ出力もExcel!という私同様の方は多いと思う。なると、Accessの立ち位置としてはデータベース一択になるので、利用方法はテーブルクエリーマクロVBAこの4つになるが、上手くExcelが機能していると、AccessVBAは個人ではほぼ使うことがない。Excelシートのデータをインポートして、抽出結果をエクスポートする一連の作業は、VBAでなくマクロを使えば簡単に作成できる。AccessマクロはAccessVBAとは違うモノExcelVBAとExcelマクロは同じモノを指すが、Accessマクロ≠VBAではない!Excelも厳密に言えばExcelマクロは存在するが、今はほとんど使用されていない。Accessマクロを使用する最大のメリットは?Accessの機能を使うので、単体モジュールテストが簡単Accessマクロにない条件分岐処理だけAccessVBAで部品化(関数)ジョブストリームライブラリ(JCL)として利用すると汎用的に使うことが出来る本でAccessマクロ特化本はほとんどないので、AccessVBAの解説本を購入するハメになるが、順番が違うように私には思ってしまう。個人使用のWindowsのデータベースはAccessで管理するのが簡単.accdbでパンクしそうになったら、SQL-Server(Express)を利用SQL-Serverを使うツールとしてAccessでアタッチすればそのまま利用可能!!ただ2022.5.17時点では、Accessを個人利用している人はあまり多くはないようで、ブログやYoutubeから利用方法を探すのは難しい。書籍もない!ブログもない!!となると、自分で使ってみるしか方法はない!Accessマクロのデメリット解説本がほとんどなく自主学習が必要。この一点!例文がたくさん載っているAccessVBA本を使い回すうちに、Accessマクロの一つ一つの命令は理解できるようになるが、Accessをデータベースとして使い回せるようになるころには、Accessマクロを使うよりもAccessVBAの個人資産が既に出来上がっているといったことが起きるのが現実だろう。私のようなおじさん?だと、先にデータベースやJCLといったことを知っているので、同じような年代の人はわざわざAccessVBAから始める必要はなくAccessマクロから入った方が良いと思われる。