MS Access 2007ファイルへの接続を開く際にエラーが発生しました:MS Office Accessデータベースエンジンワークグループ情報ファイルを開くことができません

Cannot open the MS Office Access database engine workgroup information file - When I have code as posted.

私のコードでやろうとしていることは、MS Access 2007ファイルを作成してから、プログラムからユーザー名とパスワードを設定することです。私はここで間違って何をしていますか?

Error occurs here: objOleDbConnection.Open();

編集:私はいくつかの変更を加えたが、それは接続を開きますが、コマンドが間違っているようです。

今問題はここにあります:

        objOleDbCommand.CommandText = 
            "ALTER USER " + storedAuth.UserName + 
            " PASSWORD [" + storedAuth.Password + "] []";

コード全体:

   //Creating an object allowing me connecting to the database.
    OleDbConnection objOleDbConnection = new OleDbConnection();
    objOleDbConnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
            "Data Source=" + sfdNewFile.FileName + ";Persist Security Info=False";
   //Creating command object.
    OleDbCommand objOleDbCommand = new OleDbCommand();
    objOleDbCommand.Connection = objOleDbConnection;

    try
    {
        objOleDbConnection.Open();
        objOleDbCommand.CommandText = "ALTER USER " + 
                    storedAuth.UserName + " PASSWORD [" + 
                    storedAuth.Password + "] []";
        objOleDbCommand.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
       //Displaying any errors that 
       //might have occured.
        MessageBox.Show("Error: " + ex.Message);
    }
    finally
    {
        objOleDbConnection.Close();
    }
0
@ケランShunmugavel:MDBはそれを持っていますか?私はACCDBを使用します。
追加された 著者 HelpNeeder,
@チェランShunmugavel:私はユーザー名とパスワードを持つことができるようにしたいと思います。私が参照できるいくつかの記事を指摘していただけますか?私はグーグルをしていたが、これを行う方法を教えてくれるものは何も見つかりませんでした。
追加された 著者 HelpNeeder,
これはMDBまたはACCDBファイルですか?あなたはこれがAccess 2007のファイルだと言いましたが、私は ACCDBファイルにはユーザーレベルのセキュリティがありません
追加された 著者 Cheran Shunmugavel,
はい。単純なデータベースパスワード(MDBまたはACCDBで利用可能)でユーザーレベルのセキュリティ(MDBでのみ使用可能)を混乱させないようにしてください。データベースをパスワードで保護したいだけなら、 ALTER DATABASE PASSWORD コマンドを使用してください。
追加された 著者 Cheran Shunmugavel,
追加された 著者 Cheran Shunmugavel,

3 答え

HelpNeeder, I think the problems you are experiencing should first be solved in your other question: Error tells me I haven't close the connection, but haven't I?

ありがとう!

1
追加された
はいといいえ。ここでの問題は、ACCDBは認証としてユーザー名とパスワードを持つことができないということです。
追加された 著者 HelpNeeder,
わかった。
追加された 著者 Pavel Donchev,

Access DBパスワードを変更するには、排他モードで開く必要があります。これを接続文字列に追加すると、Exclusive = 1になります。

createMSFile.Create("Provider=Microsoft.ACE.OLEDB.12.0;Exclusive=1;Data Source=" +
        sfdNewFile.FileName);
0
追加された
okk ....上記の行からExclusiveを削除し、 OleDbConnection objOleDbConnection = new OleDbConnection( "Provider = Microsoft.ACE.OLEDB.12.0; Exclusive‌ = 1" + "Data Source =" + sfdNewFile.FileName ); ...それが動作するかどうかを確認する
追加された 著者 Pankaj Upadhyay,
私はこれを追加するとエラーが表示されます:インストール可能なISAMが見つかりませんでした。
追加された 著者 HelpNeeder,
PSあなたが持っている行は、ファイルを作成する行です。これは問題ありません。他のコード行に問題があります。私のOPを見てください。あなたが話している行を以前に投稿したことは間違いですが、修正しました。
追加された 著者 HelpNeeder,
はい、私はそれを理解しており、私はそれがすべきであるところに排他的な部分を使用しました。そこに私は問題があります。
追加された 著者 HelpNeeder,

さて、あなたが得ているエラーは、他の誰かがファイルを開いたままにしておくことを示唆しているので、パスワードの変更はできません...

0
追加された
しかしここで?私はすべてを閉じていますが、私はしませんか?
追加された 著者 HelpNeeder,
さて、私はその問題を修正したようです。私は今、別のものを持っている。
追加された 著者 HelpNeeder,
おそらくAnothedユーザーですか?
追加された 著者 zmbq,