-
Notifications
You must be signed in to change notification settings - Fork 0
MS_AccessAndAccessVBA
- 戻る(Microsoft Office、Visual Basic for Applications (VBA)(
MS_VBA.md))- Office 365(
MS_Office365.md) - Excel、Excel VBA
- Access、Access VBA
- Office 365(
Access系のトピック纏め。
本格的なことも出来る。
- 過去にJava見積もり2.0MステップのAccessの.NET移行をやったことある。
- (EUCで結果的に育ったケースを除いて)そう言うシステムをAccessで組むのは少々アレ。
- RDBMSを知らなくても、効率的に開発を進められるGUI開発環境。
- VB6的なフォーム開発が必要なので、FileMakerより難易度が高い。
- 本格的なことをやり始めると、難しい。潔く、.NET開発した方がイイ。
- ...なぜなら、
- 競争が熾烈なオフィススイート製品ゆえ
下位互換打ち切りを含めた頻繁なプログラムの更新があるので- ADPのdiscon(Accessバージョンアップ:
MS_AccessUpgrade.md) - Access Servicesのdiscon
- ADPのdiscon(Accessバージョンアップ:
- そして、VBAと異なりAccessの情報は、Web上に少ない。
- 競争が熾烈なオフィススイート製品ゆえ
- もともとスタンドアロンで使われることを想定されている製品
- クエリ、フォーム、及びレポートはデータベースの中に格納
- アプリケーションをデータとプログラムに分割することはできる。
- ただし、データアクセスがネットワーク経由の場合には力不足
- WebDBとしての利用を想定した設計がされていない。
- 一応、ODBC経由でのバックエンド・データベースをホストできる。
- データベースが損傷を受ける可能性がある。
- RDBMSの運用系機能がない(バックアップ・リストア:
MS_SQLServerBackup.md)。 - 複数ユーザから使用されると損傷を受ける可能性が高まる。
- RDBMSの運用系機能がない(バックアップ・リストア:
テーブル定義やクエリ・ビルダなどのツールがある。
- テーブル
- リレーションシップ (関連)
- クエリ
VBAを使用する。
- GUI
- フォーム
- レポート
- ページ (HTML)
- 処理
- マクロ
- モジュール(VBA)
※ 「ページ(データ アクセス ページ)」は Access 2010 で廃止済み。
- Jet Database Engine
- 2007以降はAccess Connectivity Engine
VBAからのデータアクセス
- Data Access Objects (DAO)
- ActiveX Data Objects (ADO)
Accessの機能で *.accdb ファイルを *.accde ファイルに変換できる。
- Access 2007以降のAccessのデスクトップ データベース・ファイルに付く拡張子
- 内部で使うときは「.accdb」のまま配布するなど。
-
.accdeファイルとしてデータベースを保存すると、- 内部で以下のような処理が行われ、
- すべてのVBAコードモジュールがコンパイルされ、
- 編集可能なすべてのソースコードが削除され、
- コピー先のデータベースが圧縮される。
- 下記のような差異が生まれる。
- VBAコードの機能を保持するが、コードを表示または編集できなくなる。
- デスクトップ データベースは引き続き通常どおり機能する。
- 内部で以下のような処理が行われ、
- 外部に配るときは「.accde」に変換するなど。
SQL Serverに直接接続して使用する機能。
- ADPは 既にdiscon になっているので移行(Accessバージョンアップ:
MS_AccessUpgrade.md)が必要。 - 本項は、この移行手順を理解するために作製した項で、新規作成のタメではないので注意。
※ ADP は Access 2013 で新規作成・設計がサポート外となり、Access 2016 で完全に削除された。
先ず、ADPは、「アップサイジング・ウィザード」によって、
Accessのスタンドアロン(*.accdb 形式)からADP(*.adp ファイル)へ移行されている。
Accessのスタンドアロン(*.accdb 形式)からADP(*.adp ファイル)への移行を行うツール。
Accessのスタンドアロンのデータベースファイル(*.accdb 形式)が作られている前提
対話式でいろいろな設定していくことでADPへの移行が可能。
- 必要なオブジェクトをAccessからSQL Server側に転送
- オブジェクトをSQL Server側に転送した後の変換処理
- 変更なし
テーブルをSQL Server上に移行するが、Access自体には変更を加えない。
結果的にSQL Server上にテーブルやその属性が生成されるだけになる。 - SQL Serverのテーブルを既存のアプリケーションにリンクさせる
テーブルをSQL Server上に移行したあと、ODBC経由のリンクテーブルとしてAccess上に設定する。
これにより、従来のローカルテーブルに代わって、SQL Server上のテーブルのデータを扱えるようになる。 - 新しいAccessクライアント/サーバーアプリケーションを作成する
ADP化して、直接的にSQL Serverデータベースを扱えるようにする。
- 変更なし
補足(最新化): アップサイジング ウィザードも Access 2013 以降は非搭載。 現行で Access → SQL Server の移行を行う場合は、 SSMA for Access(SQL Server Migration Assistant) を使うのが標準。
-
アップサイジング ウィザードを使用して Access データを SQL Server データベースに移動する - Access
-
T'sWare Access Study ~Vol.18 Accessアップサイジング実例~
ADP(Accessプロジェクト)形式への変更
AccessをWeb化する機能。
- Access Serviceは 既にdiscon になっているので移行が必要。
- 本項は、この移行手順を理解するために作製した項で、新規作成のタメではないので注意。
※ Access Services は SharePoint Online で 2018年(Access Services 2010)/ 2021年(Access Services 2013)に、SharePoint Server でも順次終了している。
-
以下で、
*.accdbをアップロードする。 - フォームのサポートはある模様だが、
*.accdb内のフォームが移行可能かは不明。
(MS_VBA.md)
(MS_AccessUpgrade.md)
- Access デスクトップ データベース リファレンス > 概念 > 変換
- Access における変更点
- Access のテーブル、フォーム、およびレポートの変換
- DAO コードを ADO に変換する
- Microsoft Office 2000/Visual Basic プログラマーズ ガイド
- ADO または DAO を選択して Access データベースを使用する
- リンクされたテーブルを作成する
- アップサイジング / アップサイジングセミナー
- アクセス(Access)をSQL Server Expressへ移行してみよう
- Access2013とAccess2010の比較
- SQL Serverとアップサイジング
- AccessからSQL Serverに移行した時の処理スピード
- アップサイジング
- Access ADP
- SQL Server Migration Assistant for Access
- AccessからSQL Server 2016へのテーブルの移動の注意点
- AccessからSQL Serverへの移行の手順
- AccessからSQL Serverへのリレーションシップの移行
- Access ADPのプログラムをどうするか
Tags: Microsoft Office, Access, Visual Basic, EUC
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。