Skip to content

MS_AccessAndAccessVBA

nishi_74322014 edited this page Aug 3, 2026 · 1 revision

Access、Access VBA

概要

Access系のトピック纏め。

詳細

特徴

本格的なことも出来る。

  • 過去にJava見積もり2.0MステップのAccessの.NET移行をやったことある。
  • (EUCで結果的に育ったケースを除いて)そう言うシステムをAccessで組むのは少々アレ。

EUCツール

  • RDBMSを知らなくても、効率的に開発を進められるGUI開発環境。
    • VB6的なフォーム開発が必要なので、FileMakerより難易度が高い。
    • 本格的なことをやり始めると、難しい。潔く、.NET開発した方がイイ。
  • ...なぜなら、
    • 競争が熾烈なオフィススイート製品ゆえ
      下位互換打ち切りを含めた頻繁なプログラムの更新があるので
      • ADPのdiscon(Accessバージョンアップ: MS_AccessUpgrade.md
      • Access Servicesのdiscon
    • そして、VBAと異なりAccessの情報は、Web上に少ない。

その他、小規模向けの特徴

  • もともとスタンドアロンで使われることを想定されている製品
    • クエリ、フォーム、及びレポートはデータベースの中に格納
    • アプリケーションをデータとプログラムに分割することはできる。
  • ただし、データアクセスがネットワーク経由の場合には力不足
    • WebDBとしての利用を想定した設計がされていない。
    • 一応、ODBC経由でのバックエンド・データベースをホストできる。
  • データベースが損傷を受ける可能性がある。
    • RDBMSの運用系機能がない(バックアップ・リストア: MS_SQLServerBackup.md)。
    • 複数ユーザから使用されると損傷を受ける可能性が高まる。

機能

RDBMS

テーブル定義やクエリ・ビルダなどのツールがある。

  • テーブル
  • リレーションシップ (関連)
  • クエリ

開発

VBAを使用する。

  • GUI
    • フォーム
    • レポート
    • ページ (HTML)
  • 処理
    • マクロ
    • モジュール(VBA)

※ 「ページ(データ アクセス ページ)」は Access 2010 で廃止済み。

データアクセス

Engine

  • Jet Database Engine
  • 2007以降はAccess Connectivity Engine

API

VBAからのデータアクセス

  • Data Access Objects (DAO)
  • ActiveX Data Objects (ADO)

*.accde ファイルと *.accdb ファイル

Accessの機能で *.accdb ファイルを *.accde ファイルに変換できる。

*.accdb

  • Access 2007以降のAccessのデスクトップ データベース・ファイルに付く拡張子
  • 内部で使うときは「.accdb」のまま配布するなど。

*.accde

  • .accde ファイルとしてデータベースを保存すると、
    • 内部で以下のような処理が行われ、
      • すべてのVBAコードモジュールがコンパイルされ、
      • 編集可能なすべてのソースコードが削除され、
      • コピー先のデータベースが圧縮される。
    • 下記のような差異が生まれる。
      • VBAコードの機能を保持するが、コードを表示または編集できなくなる。
      • デスクトップ データベースは引き続き通常どおり機能する。
  • 外部に配るときは「.accde」に変換するなど。

参考

Access データ プロジェクト(ADP)

SQL Serverに直接接続して使用する機能。

  • ADPは 既にdiscon になっているので移行(Accessバージョンアップ: MS_AccessUpgrade.md)が必要。
  • 本項は、この移行手順を理解するために作製した項で、新規作成のタメではないので注意。

※ ADP は Access 2013 で新規作成・設計がサポート外となり、Access 2016 で完全に削除された。

ADPへの移行

先ず、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) を使うのが標準。

参考

SharePoint Access Service

AccessをWeb化する機能。

  • Access Serviceは 既にdiscon になっているので移行が必要。
  • 本項は、この移行手順を理解するために作製した項で、新規作成のタメではないので注意。

※ Access Services は SharePoint Online で 2018年(Access Services 2010)/ 2021年(Access Services 2013)に、SharePoint Server でも順次終了している。

Access Serviceへの移行

  • 以下で、*.accdb をアップロードする。
  • フォームのサポートはある模様だが、*.accdb 内のフォームが移行可能かは不明。

アップロード

参考

Visual Basic for Applications (VBA)

MS_VBA.md

Accessバージョンアップ

MS_AccessUpgrade.md

Microsoft

  • Access デスクトップ データベース リファレンス > 概念 > 変換
    • Access における変更点
    • Access のテーブル、フォーム、およびレポートの変換
    • DAO コードを ADO に変換する
  • Microsoft Office 2000/Visual Basic プログラマーズ ガイド
    • ADO または DAO を選択して Access データベースを使用する
    • リンクされたテーブルを作成する

マイクロソフトアクセス活用法

教材

メルマガ


Tags: Microsoft Office, Access, Visual Basic, EUC

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally