" 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?
25
3
Tidak ada kesalahan dalam kode, tetapi kesalahan dilemparkan karena hal berikut:
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.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.
Ini adalah sebuah tembakan dalam kegelapan, tetapi cobalah meletakkan dua operan untuk AND dalam tanda kurung
Pada ((A = B) Dan (C = D))