" Operasi harus menggunakan kueri yang dapat diperbarui &" kesalahan di MS Access

Saya mendapatkan pesan kesalahan: "Operasi harus menggunakan kueri yang dapat diperbarui &" ketika saya mencoba menjalankan SQL saya. Dari pemahaman saya, ini terjadi ketika join digunakan dalam kueri pembaruan / penghapusan di MS Access. Namun, saya sedikit bingung karena saya memiliki kueri lain yang hampir identik dalam database saya yang berfungsi dengan baik.

Ini adalah kueri saya yang merepotkan:

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];

Seperti yang saya katakan sebelumnya, saya bingung karena saya memiliki query lain yang mirip dengan ini, yang berjalan dengan sempurna. Ini adalah kueri itu:

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];

Apa yang salah dengan kueri pertama saya? Mengapa kueri kedua berfungsi ketika kueri pertama tidak berfungsi?

Tidak ada kesalahan dalam kode, tetapi kesalahan dilemparkan karena hal berikut:

 - 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..? 

misalkan Anda menyimpan database (file MS-Access) di folder read only, saat menjalankan aplikasi Anda, koneksi tidak dibuka secara paksa. Oleh karena itu ubah izin file / izin folder yang mengandungnya seperti di C:\Program files semua file drive c telah disetel read-only sehingga mengubah izin ini menyelesaikan Masalah ini.

Komentar (2)
Larutan

Apakah jawaban ini benar secara universal atau tidak, saya tidak tahu, tetapi saya menyelesaikannya dengan mengubah sedikit pertanyaan saya.

Daripada menggabungkan kueri pilih ke tabel dan memprosesnya, saya mengubah kueri pilih untuk membuat tabel sementara. Saya kemudian menggunakan tabel sementara itu ke tabel yang sebenarnya dan semuanya bekerja dengan sempurna.

Komentar (3)

Ini adalah sebuah tembakan dalam kegelapan, tetapi cobalah meletakkan dua operan untuk AND dalam tanda kurung

Pada ((A = B) Dan (C = D))

Komentar (3)