SQLを実行しようとすると、「"Operation must use an updateable query"」というエラーメッセージが表示されます。私の理解では、MS Accessの更新/削除クエリで結合が使用されている場合にこの現象が起こります。しかし、私のデータベースにはほぼ同じ内容の別のクエリがあり、正常に動作しているので少し混乱しています。
これが私の問題のクエリです。
UPDATE [GS] INNER JOIN [Views] ON
([Views].Hostname = [GS].Hostname)
AND ([GS].APPID = [Views].APPID)
SET
[GS].APPID = [Views].APPID,
[GS].[Name] = [Views].[Name],
[GS].Hostname = [Views].Hostname,
[GS].[Date] = [Views].[Date],
[GS].[Unit] = [Views].[Unit],
[GS].[Owner] = [Views].[Owner];
前にも言いましたが、これと似たようなクエリがもう一つあり、そちらは完璧に動作するので混乱しています。これがそのクエリです。
UPDATE [Views] INNER JOIN [GS] ON
[Views].APPID = [GS].APPID
SET
[GS].APPID = [Views].APPID,
[GS].[Name] = [Views].[Name],
[GS].[Criticial?] = [Views].[Criticial?],
[GS].[Unit] = [Views].[Unit],
[GS].[Owner] = [Views].[Owner];
私の最初のクエリのどこが悪いのでしょうか?1つ目のクエリが動作しないのに、2つ目のクエリが動作するのはなぜですか?
コードにエラーはありませんが、次のような原因でエラーが発生します。
- Please check whether you have given Read-write permission to MS-Access database file.
- The Database file where it is stored (say in Folder1) is read-only..?
データベース(MS-Accessファイル)を読み取り専用フォルダに格納していると、アプリケーションの実行中に接続が強制的に開かれません。したがって、ファイルのパーミッションとそれを含むフォルダのパーミッションを変更してください。たとえば、「C:プログラムファイル」では、ほとんどのCドライブファイルが読み取り専用に設定されていますので、このパーミッションを変更すると、この問題は解決します。