Lỗi Operation must use an updateable

codang2605

New Member
Hội viên mới
Lỗi trên xảy ra khi mình thực hiện truy vấn cập nhật
giống như thế này
update khoa set sosv:-(select count(masv) from sinhvien where sinhvien.makh=khoa.makhoa)
có search thử trên google rồi
không biết trong diễn đàn có ai bị lỗi này chưa
và cách giải quyết ra sao!
Cũng đoạn code đó thì đem sang SQL server chạy ok luôn không lỗi gì hết
nhưng chạy trên Access thì bị vậy
 
Ðề: Lỗi Operation must use an updateable

Lỗi trên xảy ra khi mình thực hiện truy vấn cập nhật
giống như thế này
update khoa set sosv:-(select count(masv) from sinhvien where sinhvien.makh=khoa.makhoa)
có search thử trên google rồi
không biết trong diễn đàn có ai bị lỗi này chưa
và cách giải quyết ra sao!
Cũng đoạn code đó thì đem sang SQL server chạy ok luôn không lỗi gì hết
nhưng chạy trên Access thì bị vậy

Mình Search trên Microsoft có 4 Cause như sau, bạn tham khảo mà giải quyết xem sao:

  1. The most common reason is that the Internet Guest account (IUSR_MACHINE), which is by default part of the "Everyone" group, does not have Write permissions on the database file (.mdb). To fix this problem, use the Security tab in Explorer to adjust the properties for this file so that the Internet Guest account has the correct permissions.

    NOTE: When using Microsoft Access databases with ADO, it is also necessary to give the Internet Guest account Write permissions on the directory containing the .mdb file. This is because Jet creates an .ldb file to handle database locking. You may also need to give read/write permission on the "Temp" folder because Jet may create temporary files in this directory.
  2. A second cause of this error is that the database was not opened with the correct MODE for writing. If you perform the Open on the Connection object, you use the Mode property to indicate the permissions on the connection as shown here:
  3. PHP:
    SQL = "UPDATE Products Set UnitPrice = 2;"
          Set Conn = Server.CreateObject("ADODB.Connection")
          Conn.Mode = 3      '3 = adModeReadWrite
          Conn.Open "myDSN"
          Conn.Execute(SQL)
          Conn.Close



    NOTE: By default, the MODE is set to 0(adModeUnknown), which generally allows updates.
  4. Another cause of this error is that the "Read Only" setting may be checked in the Options page for this DSN in the ODBC Manager.
  5. The last issue and work around pertains to any SQL data source. The error can be caused by SQL statements that violate referential integrity of the database. Here are a few of the most common queries that fail:
    • The simplest groups to deal with are those you cannot change: crosstab, SQL pass-through, union, or update (or make-table) action queries that have UniqueValue properties set to Yes.
    • Another very common cause is when the join includes linked ODBC tables that do not have unique indexes. In this case, there is no way for SQL to guarantee that records are unique in a table that has fields whose value will change with the query.
    • One cause does have a robust workaround. If you try to update a join field on the "one" side of a "one-to-many" query it will fail unless you turn on cascading updates. This way, you delegate referential integrity to the JET engine.
 
Ðề: Lỗi Operation must use an updateable

Đó là nguyên nhân gây ra lỗi
nhưng giải quyết thế nào đây
toàn tiếng anh không hà
với lại nó cũng không hướng dẫn mình chi tiết phải fix lỗi đó làm sao
nhưng dù sao cũng thanks
 
Ðề: Lỗi Operation must use an updateable

Nếu mình hiểu theo ý bạn thì câu truy vấn này là sai.
Câu truy vấn này có nghĩa đếm toàn bộ số sinh viên trong bảng Sinh viên mà có mã khoa trùng với mã khoa trong bảng Khoa .
Tức là trong bảng Khoa có 3 mã 1,2,3
Mà trong bảng Sinhvien có mã khoa 1,2
Thì ở câu Select kia sẽ đếm toàn bộ mã sv có khoa là 1 và 2 .
Mà theo như ý bạn thì khoa nào có số sv khoa ấy thì phải.
 
Ðề: Lỗi Operation must use an updateable

Như mình đã nói câu sQL trên hoàn toàn ok khi chạy bên SQL server
ở đây mình muôn biết làm cách nào chạy được nó khi mà Access không cho
chứ không phải câu truy vấn này sai
 
Ðề: Lỗi Operation must use an updateable

Mình cũng chạy một câu truy vấn tương tự trong chương trình mình đang sử dụng thì OK.
Không hiểu tại sao khi tạo truy vấn trên theo một TOPIC trước của CODANG2605 thì của mình cũng báo lỗi như vậy. Vẫn chưa tìm được ra cách giải quyết.
Các PRO giúp nhé.
 
Ðề: Lỗi Operation must use an updateable

Trước đây mình cũng bị trường hợp như vậy.
Mình chuyển sang làm trung gian như sau, dùng INSERT query (hoặc MAKE query) lưu kết quả vào 1 table tạm, sau đó dùng query Update từ table tạm vào table chính.
Từ đó mình đưa ra nhận xét dùng câu lệnh Update kết quả trực tiếp từ query thì bị lỗi như vậy, nhưng Update từ table vào 1 table khác thì OK.
Không biết nhận xét như vậy có đúng không các pro cho ý kiến.
 
Ðề: Lỗi Operation must use an updateable

Sau khi chạy trên SQL thì đúng thật.
Ý kiến của mình thế này ,có thể làm theo cách của Socnau nếu bạn sử dụng access chỉ bằng bảng mà không dùng Form.
Còn nếu dùng Form để update thì công việc trở lên quá dễ dàng,đâu phải làm rắc rối thêm làm gì.
Tạo 1 Form có Source từ bảng khoa, subform từ sinhvien ,trong subform tạo 1 textbox dùng hàm count.
Tạo 1 Query update sosv với makhoa trên Form khoa
Tạo 1 command button chạy cái Query đó.
 
Ðề: Lỗi Operation must use an updateable

Cái vấn đề này nó nằm ở chỗ mình chạy cái câu đó ở đâu?
Nếu bạn chạy nó trong một form, mà form đó có RecordSource là table KHOA thì chắc chắn sẽ có câu báo lỗi.
Bạn có rơi vào trường hợp này không?
 
Ðề: Lỗi Operation must use an updateable

Em không phải chạy trên Form đâu mà dùng trực tiếp Query để update luôn
Chac phải làm theo cách của Socnau thôi
Thanks tất cả mọi người
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top