【解決方法】フォルダーを指定せずにデータベースにアクセスするための接続文字列を書き込む


私は VB データベース プロジェクト (アクセス) を持っています。 source=Application.Startuppath & “\filename.accdb” を試しました。 それは動作しません。 |Data Directory|\filename.accdb も機能しません。 助言がありますか?

私が試したこと:

source=Application.Startuppath & “\filename.accdb” を試しました。 それは動作しません。 |Data Directory|\filename.accdb も機能しません。

解決策 1

「Program Files」または「Program Files (x86)」の下にデータベースを配置すると、データベースを使用できなくなります。 これらのフォルダーの場所は、通常のユーザーには読み取り専用であるため、データベースを更新することはできません。

データベースの元のコピーを保持し (できれば、データベース全体を定義しているがデータを含まない状態で)、そのファイルをユーザーが読み取り/書き込み権限を持つより適切な場所 (フォルダーなど) にコピーできます。 %PROGRAMDATA% の下、または %APPDATA% (ユーザーのローミング プロファイル) または %LOCALAPPDATA% (ユーザーのローカル プロファイル) の下のフォルダー。

どのフォルダを選択するかは、アプリケーションによって異なります。 同じマシン上のすべてのユーザーが同じデータベースを使用しますか? その場合は、%PROGRAMDATA% の下のフォルダーを使用してください。 データが同じマシン上の各ユーザーに固有であるが、マシンからマシンへとユーザーを追跡しない場合は、%LOCALAPPDATA% の下のフォルダーを使用します。 各ユーザーが使用するすべてのマシンでデータを追跡する必要がある場合は、%APPDATA% の方が適しています。 ローミング プロファイルを使用する場合は、各マシンを Active Directory 環境に配置し、ロメイン プロファイルとデータに適したネットワーク ロケーションをセットアップする必要があります。

ほとんどの場合、%PROGRAMDATA% の下のフォルダーを使用します。

データベースへの接続文字列を作成するときは、文字列操作を使用してデータベース ファイルへのパスを挿入できます。

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%PROGRAMDATA%\myAppFolder\myAccessFile.accdb;Persist Security Info=False;

コメント

タイトルとURLをコピーしました