2012-03-05 9 views
2

私はアクセス2002年にDBをやっているし、私はロック共有モードでいくつかの問題があった。私は多くのプログラムとほぼ10ユーザーがログオンしているアプリケーションを持っています。また、アプリケーションが行うことの1つはレポートを開くことです。ユーザーはプログラムと番号(通常は各プログラムに4つの番号があります)を選択し、レポートを開く前に非表示モードで開き、現在のレポートを編集しますプログラム/番号、この回転と私はちょうど何百回も回るかもしれない1つのレポートを持っている...記憶を節約し、それを最適化する。その後、私はそれを保存し、再びビューモードで開きます。アクセスをロック共有モード - レポートの編集

しかし、問題は、他の人がアプリケーションを使用しているため、アクセスが編集できず、レポートを保存できないということです。ちょうど排他モードです!

共有モードで瞬時に変更できるようにするには、vbaのcmdがありますか?私は知らない、すべてのユーザーを凍結し、保存して、それらを解凍するように?

他の提案はありますか?

フロントエンド/バックエンドの作成について実行不可能で、原因はベータ版であり、頻繁に更新しなければならないと私はすでに考えていましたが、すべてのクエリー、フォーム、レポート、およびローカルPCのリンクされたテーブルを使用して、データベースとデータベース(フロントエンド)をネットワークとフロントエンドに分割しましたが、実際にはスローになりました。誰かが私を助けることができれば、私の問題をもっと速く解決できるでしょう。


私はdbを分割して最適化しようとしています。私はウェブ上でそれについて多くを読んで、変更が必要なすべてのアクセス設定を変更しました。今はより高速なプログラムを取得します。しかし、単一のアプリよりも遅くなります。

今、私のアプリを遅くするフォームが落ちただけです。

たとえば、私はいつも閉じるときに私はそれを閉じるのに長い時間を費やしているフォームがあります( 私はこのフォームは常に閉じる前に保存されていることに気づいた。私は、このフォームが原因で保存されていることを実感...

をネットワーク内にあるtahtリンクテーブル)は、多くの時間を無駄にしたので、私はこれを回避する必要があります。

しかし、私は今のところそれを取得できませんでしたform_open私はいくつかの列(各プログラムごとに異なる)を隠してキャプションを編集します。そして、フォームを閉じる必要があれば、この時間を節約して無駄にします!

フォームを保存する必要がありますが、この列を隠す/編集するにはどうすればよいですか?または、どのように構造を保存せずにフォームを閉じることができますか?

私は単なるボタンでそれを行う方法を知っていますが、これらのフォームはデータシートであり、 "X"フォームボタンで閉じることができます。そして、不幸にも、アクセスはBeforeCloseイベントを持たず、OnCloseイベントではこのサブに行く前に保存します!

答えて

1

WhereConditionDoCmd.OpenReport Methodと組み合わせて使用​​すると、実行時にレポートのデザインを変更する必要がなくなります。

ここで条件は、レポートの既存のレコードソースクエリに、そのクエリのWHERE句に書かれているかのように適用されます。だから、

YourReportのレコードソースが...

SELECT program_id, some_number, another_field 
FROM YourTable; 

であれば...あなたはそれを動作させることができれば、これは...

DoCmd.OpenReport "YourReport", _ 
    WhereCondition:="program_id = 7 AND some_number = 22" 

は、...

SELECT program_id, some_number, another_field 
FROM YourTable 
WHERE 
     program_id = 7 
    AND some_number = 22; 

これまでレコードソースの見直しと同じように、あなたにこのアプローチのこの利点を行の同じセットを与えるだろう実際にはレポートのデザインを変更していないため、DBへの排他的アクセスが不要になるということです。

ベータステータスに関する関連する問題は、アプリケーションを分割することが実際的ではないため、慎重に再検討する必要があります。分割すると、FEアプリケーションの変更をロールアウトするときに、BEのデータを簡単に保持できます。バージョンを変更したときにデータを失わないように別の方法を思いついたとしても、その方法はデータをBEファイルに分離するより簡単にはなりません。

アプリケーションを分割すると、各ユーザーは、マシンのハードドライブにローカルに保存されているFEファイルのコピーを取得する必要があります。それらのFEファイルには、ファイル共有に格納されているBEファイル内のテーブルへのリンクが含まれます。

新しいバージョンのリリース時にユーザーのFEアプリケーションを更新することは解決されています。たとえば、Tony ToewsのAuto FE Updaterを参照してください。そして、あなたはウェブを検索することによって他のアプローチを見つけることができます。

分割アプリケーションのパフォーマンスが懸念される場合は、TonyのMicrosoft Access Performance FAQにチェックを入れてください。

+0

私はあなたが私に言ったことをしようとしますが、問題はレポートラベル(タイトル、プログラム名、プロトタイプ...)です。レポートのコードでラベルの値を編集できない/ 私はこの問題の別の解決策を見つけようと疲れています。今は分割ソリューションに変更しています。ご協力いただきありがとうございます.. – user459559