1

VB6アプリケーションがあり、MSAccessDBにリンクしています。データ入力画面のすべてのレコードは、ADO/SQLを使用して書き込まれるか読み取られます。

あるユーザーサイトで(Win 7を使用-彼のUACは最大のセキュリティに設定されていたため、最初は大量の読み取り/書き込みエラーが発生しました!さらに、アプリとデータ(サブフォルダー)フォルダーは読み取りのみに設定されていました。 「すべてのユーザー」のセキュリティをフルコントロールに変更して、これらすべてを修正しました。レコードはDBに書き込まれました。ただし、MS Accessから直接MDBを開くと、3つのテーブルのいずれにもレコードが表示されませんでした。クライアントはフロントエンドからデータを入力しました。

したがって、1。MS Accessがデータと表示および空白のテーブルを含むテーブルの行を非表示にするか、2。データサブフォルダーにMDBの非表示のコピーがあります(プログラムがMDBファイルの可用性をチェックするときに起動し、利用できない場合はメッセージボックスエラーを投稿します

誰かがこの動作を見たことがありますか?それが#2の場合、Win 7ですべてのファイルを表示するにはどうすればよいですか?MDBはオペレーティングシステムファイルではないため、デフォルトでは非表示にしないでください。または、これはAV(Symantec)アクティビティですか?

私の問題とまったく同じ2004年のこのリンクを参照してください-しかし答えはありませんでした:http: //www.pcreview.co.uk/forums/hidden-records-t1086918.html

誰もが流すことができる助けに感謝します

よろしくフォンツ

4

2 に答える 2

1

これは、書き込み可能なデータ (ここでは MDB ファイル) を保護されたフォルダー (「Program Files」) 内に置き、「Vista 対応」であることを示すアプリケーション マニフェストなしで実行されている、不適切に設計されたアプリケーションのように思えます。これを行うと、Windows は appcompat shim の標準セットをプログラムに適合させようとします。この場合、ファイル仮想化 shim が機能している可能性が高くなります。

これにより、各ユーザーは自分の仮想ストア フォルダー内に元のデータのプライベート コピーを作成することになります。これらのプライベート コピーが更新されます。

適切なマニフェストは、代わりにこのセキュリティ違反で致命的な実行時エラーを引き起こし、何が間違っているのかをより迅速に理解し、一般的により迅速な解決につながります。

INI ファイル、MDB ファイル、その他のアプリケーション リソースなど、システムのすべてのユーザーが更新して利用できるようにする必要があるものは、インストーラーが [CommonAppData] の下に作成するアプリケーション固有のフォルダーに配置する必要があります。すべてのユーザーが必要なアクセス権を持つように、インストーラーはサブフォルダーに必要なセキュリティ属性を設定して、書き込み可能なファイルを含める必要があります。ここでのデフォルトは「所有者」アクセスですが、これはおそらくあなたが望むものではありません (ファイルの作成者にはフル アクセス権があり、他のユーザーには読み取りアクセス権があります)。

これは、IE4 Desktop Update を適用した Windows 95 を含む、すべてのバージョンの Windows で機能します。インストーラ MSI パッケージを使用すると、かなり簡単に実行できます。

于 2012-11-05T14:34:11.047 に答える
0

どの MDB ファイルに書き込まれているのか 100% 確実ですか? 書き込み中に VB6 でレコードが表示されているのに、開いている MDB でレコードが表示されない場合は、別のファイルに対して実行している可能性があります。

プロセス モニターを使用して、VB6 アプリによって書き込まれているファイルを正確に確認することをお勧めします。これにより、さらにトラブルシューティングを行うことができます。

http://technet.microsoft.com/en-us/sysinternals/bb896645

少し忙しいかもしれませんが、コードの操作に関する仮定に関係なく、どのファイルに書き込まれているのかを正確に確立できます。

于 2012-11-05T01:43:57.960 に答える