私は何年もの間、DAO 経由で MS Access データベースを使用してきましたが、新しい手法を採用する必要があると感じています。
私のメイン アプリケーションはエンド ユーザー PC (サーバーなし) で実行され、オンザフライで作成および更新される共有データベースを使用します。アプリケーションを最初に実行すると、データベースが存在しないことが検出され、新しい空のデータベースが作成されます。
アプリケーションを実行しているすべてのローカル ユーザーは、この共有データベースでレコードを追加または更新できます。テンプレート、地域情報などを含む他の共有データベースがいくつかありますが、これらはアプリケーションによって直接更新されません。
アプリケーションの更新は随時リリースされ、新しい更新ごとにメイン データベースのバージョンがチェックされ、必要に応じてデータベースを最新の仕様にするコードが実行されます。これには、テーブルや列の作成または削除が含まれる場合があります。テンプレート データベースの新しいコピーも更新の一部として含まれています。
私たちのユーザーは、コンピューターに精通している必要はなく、アプリケーションによって提供される機能を超えて、あらゆる種類のデータベース管理ソフトウェアを実行する必要はありません。
DAO/Access ではすべてうまく機能しますが、SQL Express でそれを行う方法を見つけるのに苦労しています。データベースはユーザー固有の場所に散らばっているように見え、データベースの作成と更新は、プログラム コードだけで行うのはせいぜい厄介に思えます。
有望なように見える「Xcopy展開」の参照に出くわしましたが、共有されていないもののように疑わしいように聞こえる「ユーザーインスタンス」への参照があるようです。やったことがある方からのアドバイスよろしくお願いします。