Accessマスターデータ更新ツール(バージョン0.1)
対応環境:Access 2007以上
こちらよりダウンロードできます。→[download id=”1378″]
概要
Accessのテーブルに入っている値を一括更新する際に、テーブルからエクスポートしたデータ(csvや.xlsxファイルなど)をExcelを使って編集し、また元のテーブルに戻したい、ということがあると思います。しかし、テーブル上に「メモ型フィールド」や「複数値フィールド」がある場合、エクスポートしたデータを修正してそのまま再インポートすると、さまざまな不具合が起こります(Accessの仕様の問題)。
このアプリは、メモ型フィールド、複数値フィールドのインポートに対応していますので、そのようなときに役に立つツールです。(「添付ファイルフィールド」のインポートには対応していません)また、「主キー」が複数存在する、いわゆる「複合キー」の場合にも対応しています。
メモ型フィールドは、256文字以上のデータを格納できますが、csvやExcelファイルから新たなテーブルにインポートする際、勝手にフィールドの型が「テキスト型(最大256文字)」に設定されてしまい、256文字以上の部分が切り捨てられてしまうことが起こってしまいますが、このアプリではこれを回避して、メモ型フィールドでもインポートが可能です。
また、複数値フィールドをExcelにエクスポートする際、このアプリではいったん「;;」区切り(変更可能)のテキストにして、1つのセルに格納し、それをインポートする際も「;;」区切りのデータを複数値フィールドに戻してインポートしますので、複数値フィールドの一括変更も可能となっています。
その他、日付型フィールドや時刻型フィールド、数値型フィールドなどの際も、インポート先のデータベースを解析してインポート前にデータチェック(データ型の確認とデータサイズの確認)をしてくれるので、安全に一括データ更新することができます。
主な機能・特徴
このアプリは、「データ更新用Excelファイル作成画面(エクスポート)」「Accessデータ一括更新画面(インポート)」の2つの画面から成り立っており、タブで切り替えして使用します。
■ データ更新用 Excelファイル作成画面(エクスポート)
Accessファイルから便利にエクスポート
- 任意のAccessデータベースに接続し、中の任意のテーブルからフィールドを選択し、Excelファイルをエクスポートできます。
- エクスポートしたファイルを修正することで、手間をかけずにテーブルデータ更新用のExcelファイルが作れます。
- パスワードのかかっているAccessデータベースの場合も、パスワードを入力して接続できます。
- 選べるExcelファイルのバージョン
- エクスポートするExcelファイルのフォーマットは、Excel97~2003形式(.xlsファイル)とExcel 2007以降(.xlsxファイル)から選択できます。
- 複数値フィールドに対応
- 複数値フィールドに格納されている値も、Excelファイルにエクスポートすることができますので、複数値フィールドを一気に更新したいときにとても便利です。
複数値フィールドに格納されている値は、Excelの1つのセルにまとめてエクスポートされます。
例えば「読書;;音楽鑑賞;;スポーツ観戦」というように、複数の値をセパレータ(この場合は「;;」)を使って一つの文字列に変換して、1つのセルに格納します。(セパレータは自由に指定することが可能です)- Excel上で「読書;;音楽鑑賞;;スポーツ観戦」のセパレータ区切り形式のままデータを編集することで、それを「一括更新画面」で再度「複数値として」インポートできます。
- データ中に使われている文字または文字列をセパレータに指定した場合は、エクスポート時に警告が表示されるようになっていますので、データ構造が崩れることはありません。
- 添付ファイル型フィールドの処理
- 「添付ファイル型」のエクスポートは「添付ファイルのファイル名」のみがエクスポートされます(添付ファイル本体はエクスポートされません)。
- 1行に複数の添付ファイルが含まれる場合は「(添付ファイル):」という文字列の後に「複数値フィールド」と同様にセパレータで区切られてセルに格納されます。
(例「(添付ファイル):契約書.pdf;;ドラフト1.docx;;スキャン.jpg」など)
- エクスポートするフィールドの選択
- テーブル中のすべてのフィールドではなく、任意のフィールドを選択してエクスポートできます。(再インポートのときのために、主キーは必ずエクスポートされます)
- 複合キーに対応
- 主キーが複数(=複合キー)の場合にも対応しています。
- 日付/時刻型フィールドの処理
- 「日付/時刻型フィールド」において「時間」として入力されているフィールド(例えば「23:45:00」など)にも対応しています。(日付としてではなく、時刻としてエクスポート・インポートができます)
- 「日付/時刻型フィールド」中のデータに1つでも「1日未満」の値が存在する場合は「時刻型にしますか?」と聞いてきて「はい」の場合はエクスポートしたExcelファイルを操作して、該当フィールドの表示形式を「h:nn:ss(時:分:秒)」に自動設定します。
■ Accessデータ 一括更新画面(インポート)
-
Excelファイルを便利にインポート
- ExcelファイルとAccessファイルを指定して、データのインポートを行います。
- パスワードのかかっているAccessデータベースの場合も、パスワードを入力して接続できます。
- 任意のフィールドのみのインポートが可能
- Excelファイルに含まれているフィールド列の中から、任意のデータを選択してインポートすることができます。
- 複数値フィールドのインポートにも対応
- エクスポート時と同様、「読書;;音楽鑑賞;;スポーツ観戦」といったセパレータ区切り形式のデータを「複数値として=複数値フィールドとして」インポートできます。
複数値フィールドが値候補のリストに含まれる値かどうかはチェックせず、そのままインポートします。
- メモ型フィールドのインポートにも対応
- メモ型フィールドも正常にインポートできるように処理します。TransferSpreadsheetメソッドでのインポートの場合にある「勝手にテキスト型としてインポートして256文字以降がカットされてしまう」といったことはありません。
- インポート時のデータチェック
- Excelファイルに入っているデータが、元のテーブルにエラーなく格納できるように「データチェック」を行ってからインポートします。
- データチェックは、いったんこのツール内の「一時テーブル」としてインポートされ、その一時テーブル上で行われます。一時テーブルは「更新データ修正画面」ボタンで表示してデータ編集することも可能ですので、データチェックに引っかかった場合も、Excelデータを再度仮インポートすることなく作業を進められます。
必ずAccessテーブル側に「主キーが存在するレコード」のみをインポートします。(結果として「新規データの追加」には対応していません)また、主キーフィールドの値が重複していないかチェックを行います。- データ型・文字数制限などをチェックして、テーブル側で許容できるものかどうかをチェックします。
- ログの表示について
- 更新したデータ内容、日時、件数などが「更新結果画面」に表示されます。
ご注意
- インポートするExcelファイルは、このツールでエクスポートしたExcelファイルを修正したものを使うことをお勧めします。
- テーブル間リレーションの設定してあるテーブルを更新する際は、テーブル間のデータ整合性が崩れる場合がありますので、ご注意ください。
- フィールドに設定してある「定型入力」「入力規則」「書式」「入力チェック(複数値)」のチェックはしません。また、テキスト型の「フィールドサイズ」のチェックは行います。
- その他予期しないトラブルを回避するため、必ず元データのバックアップを取ってから更新を行ってください。
このツールの使用による、いかなる損害についても保障できかねますので、上記をよくお読みになった上で必ず自己責任にてご利用ください。

