1

誰でもアクセスできるネットワークに ms access ファイル形式を保存します。全員のデスクトップに、ネットワーク内のファイルへのリンクがあります。ファイルを変更するたびに、すべてのファイルが ms アクセス ファイルを閉じていることを確認する必要があります。

アプリが閉じているかどうかを確認するためにどこにでも行きたいとは思いません。また、ファイルを読み取り専用に設定しましたが、うまくいきません...

4

2 に答える 2

2

市場に出回っている MOST ソフトウェアの基本的な概念は、アプリケーションに 2 つの部分があるということです。

Word 文書 (データ) + Word プログラム実行可能ファイル

Excel ドキュメント (データ) + Word プログラム実行可能ファイル。

では、あなたの会社で 20 年間、どのようにソフトウェアを展開していますか?

答え:

各コンピューターにプログラムをインストールします。

つまり、あなたが開発したソフトウェア プログラムについて話しているのです。CREATE SOFTWARE に c++、vb.net、または Access を使用しているからといって、このルールを破ることはありません。データ ファイル ドキュメントと COMPUTER PROGRAM には違いがあります。

COMPUTER プログラムには、コード、フォーム、およびユーザー インターフェイスがあります。したがって、コンピュータのサポート担当者がドキュメントとコンピュータ プログラムの違いを知らない場合、これが問題の原因になります。

そのため、1 つのプログラムに複数の人が参加することはできません。つまり、あなたの建物の中で 1 人が言葉に問題を抱えていたら、全員が家に帰りますか?

また、ソフトウェアの次の優れたバージョンに取り組んでいる間、ユーザーは気にする必要はありません。

したがって、これは次のことを意味します。

ほとんどのソフトウェアと同様に、各ユーザーのワークステーションに展開します。これにより、ソフトウェアの次の優れたバージョンに取り組むことができます。

変更が完了し、新しいコードと新しい機能が追加されたら、次のことを行います。

プログラムを実行可能ファイルにコンパイルします (Access では、これは mde、または現在は accDE です。次に、これを各ユーザーのワークステーションに展開します。

したがって、上記のアプローチにより、ソフトウェアの NEXT GREAT バージョンに取り組むことができます。ソフトウェアに更新コードを追加したり、このソフトウェアの次の優れたバージョンを各ユーザーのデスクトップにコピーするログオン スクリプトを採用したりすることもできます。

結果は次のとおりです。

ロックされていないコピーで作業しているため、ユーザーがソフトウェアの現在のバージョンを使用しているかどうかは気にしません。

したがって、ソフトウェアのコンパイル済みバージョンを配布する必要があり、ほとんどのソフトウェアと同様に、そのソフトウェアを各ユーザーのワークステーションに配布したいと本当に思っています。

最後だが大事なことは:

Word や Excel などのプログラムには、再入可能コードと呼ばれるものがあります。したがって、ターミナル サーバー環境で作業している場合、これらのオフィス プログラムはそのサーバー上で複数のユーザーを許容しますが、Access で作成したプログラムはそうではありません。したがって、この場合でも、ログオンしている各ユーザーは、作成した COMPILED プログラムの個別のコピーを受け取ります。

したがって、c++、vb.net、VB6、またはこの場合の Access の動作は、ほとんどのプログラムで同じです。

そのプログラムを各ユーザーのデスクトップに配布するため、次の優れたバージョンに取り組んでいるという問題は問題になりません。新しいバージョンをチェックする手段をセットアップして採用するだけです。つまり、単一のフォームの更新ではなく、プログラムの更新を配布するということです。コードを変更したり、レポートを変更したりする場合でも、ほとんどのソフトウェアが新しいバージョンを発行する必要があります。

したがって、ソフトウェアの新しいバージョンを発行した場合、概要を説明した問題は発生しません。プログラムのコピーで作業しているため、これらのユーザーは現在のバージョンから抜け出す必要はありません。

したがって、その更新を各ユーザーにロールアウトできるシステムとコードを採用する必要があります。

データとテーブルを別々にして分割データベースを実行する必要があるだけでなく(あなたが持っているように)、コンパイルされたエディションを配布する理由と、各デスクトップがこの新しいプログラムのコピーを受け取る必要がある理由についても、ここで詳細に説明します。

http://www.kallal.ca/Articles/split/index.htm

したがって、ここで理解する必要がある唯一の基本概念は、コンピューターおよびソフトウェア業界にはコンピューター プログラムの概念があるということです。自分がコンピュータ プログラムを作成していることを理解できれば、そのようなプログラムを作成した後、またはそのプログラムの新しいバージョンを変更または作成した後、その新しいプログラムを配布するという概念を理解できるようになります。あなたのユーザーベース。これはすべてのソフトウェアの仕組みとほぼ同じであり、この点では Access も例外ではありません。

1 つのフォームを本番ソフトウェアに含めようとするのではなく、新しいフォームを追加し、コードを変更してから、ソフトウェアを実行可能ファイルにコンパイルします。実際、コンパイルされた Access アプリケーションを使用することを強くお勧めします。これは、処理されていないエラーがグローバル変数をリセットすることは決してないためです。その結果、ソフトウェアの信頼性が大幅に向上し、ローカル変数とグローバル変数が決して再設定されないため、エラー処理のないコードも含まれます。 .

于 2013-02-20T15:21:33.303 に答える
1

1 つの解決策は、すべてのフォーム、レポート、モジュール、クエリなど (フロントエンド コード) のコピーをテーブルとは別のデータベースに保持することです。次に、テーブルを共有ネットワーク Access DB の 2 番目のデータベース (バックエンド) にリンクできます。フロントエンド データベースは各ワークステーションに配置され、バックエンド データベースは共有されます。明らかに、これにより各ワークステーションを更新する必要が生じますが、新しいフロントエンド ロジックを展開する必要がある場合に、一度に全員を追い出す必要がないことを意味します。

そうしないと、悲しいことに、データベースの排他ロックを取得する必要があり、それを行う唯一の方法は、データベースを開いたままにしておくことです。

スクリプトの助けを借りて、最新の「クライアント」のプルを自動化できます。すべてのユーザーにアプリを終了して、ネットワーク上の場所からフロントエンドをコピーするバッチ ファイルをダブルクリックするように求めることができます。

于 2013-02-20T14:26:38.750 に答える