|
▼じぇっと さん、こたつねこさん、こんにちは。
>久々にADOを使用しています。
>かなり忘れています(汗)
>ご教授願います。
>
>*環境
>・OS:WinNT4.0
>・Excel:97
>・Access:2.0
>(XPでも同じ事象が発生します)
>
>*目的
>エクセルからADOを使用して、アクセスのテーブルからデータを抽出(読み取り)する。
>アクセスのテーブルには、ユーザーがデータの読み取りをできないようになっている。
>この権限設定をSQLを使用して、ユーザーからもデータの読み取りができるようにしてから、データの抽出を行う。
>
>*問題点
>権限設定の変更が実行できない。
>
>*組んだコード
>下記のようなコードを組みました。
>始めにも申し上げましたが、久々にADOを使用しているので、見当違いのコードを組んでいるかもしれません。ご容赦願います。
>下記コード内のコメント文「'☆エラー」の部分でエラーが発生してしまいます。
>エラーの内容は『実行時エラー '-2147467259(80004005)';Jet データベースエンジンのワークグループ情報ファイルを開くことができません。』です。
>
>
>Sub プロシージャ()
>
>Dim cnn As Object
>Dim rst As Object
>Dim cmd As Object
>
>Set cnn = CreateObject("ADODB.Connection")
>Set rst = CreateObject("ADODB.Recordset")
>Set cmd = CreateObject("ADODB.Command")
>
>cnn.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0;" _
> & "Data Source=C:\アクセス.mdb"
>cnn.Open
>Set cmd.activeConnection = cnn
>cmd.CommandText = "GRANT ALL PRIVILEGES ON テーブル TO PUBLIC;"
>Set rst = cmd.Execute '☆エラー
>
>rst.Open "Select * FROM テーブル", cnn
>
>Rem 読み取り処理
>
>End Sub
まず、
GRANT ALL PRIVILEGES ON テーブル TO PUBLIC
このSqlって、Mdbファイルで使えましたっけ?
私が調べた限りでは、その記述が見当たらないんですが・・・。
仮に可能だとして、
権限の変更を 読み取りも許されていないユーザーが
Sql一行で変更できたら、権限の意味があるのかなあ?
これは、管理者で接続して権限変更するのではありませんか?
ADOでの権限変更ですが、以下のサイトが参考に
なりませんか?
http://www.microsoft.com/japan/msdn/data/techmat/ado/dao2ado_6.asp
の「権限の設定」を参考にしてみてください。
尚、私もやったことがないのであしからず・・・。
|
|