0

プロジェクトで MS Access を使用したいと考えています。このコードと統合しようとしています。

rs = st.executeQuery("SELECT name FROM MSysObjects where database <> ''");

これを使用して、 からすべてのテーブル名を取得しようとしますMSysObjects。しかし、私はエラーが発生します:

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] レコードを読み取れません。「MSysObjects」に対する読み取り権限がありません。

このエラーの解決を手伝ってください。

4

2 に答える 2

3

管理者ユーザーに に対するread ( SELECT) 権限を付与しMSysObjectsます。

Access セッションで、イミディエイト ウィンドウ ( Ctrl+ g) を開き、DDLGRANTステートメントを作成してから実行します。CurrentProject.Connection

strDdl = "GRANT SELECT ON MSysObjects TO Admin;"
CurrentProject.Connection.Execute strDdl

ステートメントは ADO から実行する必要があることに注意してください。CurrentProject.Connectionは ADO オブジェクトであるため、記述どおりに機能するはずです。ただし、DAOExecuteメソッドを使用して試行した場合CurrentDb.Executeや、Access クエリ デザイナーから実行した場合は失敗します。

于 2013-11-14T07:04:12.183 に答える
1

読み取り権限で MS Access に接続するには、次の手順に従います。

MSアクセスを開く

  1. アクセスファイルから ctrl+g を押して実行記号を押してマクロを作成します。任意の名前でマクロを作成します。

その中に:これらの行を貼り付けます

strDdl = "MSysObjects の選択を管理者に付与;" CurrentProject.Connection.Execute strDdl

これを保存して、マクロを実行してください。最後に、「MySysObject」に対する選択権限を付与しました。

于 2013-11-15T09:49:25.117 に答える