Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Kết quả 1 đến 10 của 10
  1. #1
    Ngày tham gia
    Nov 2015
    Bài viết
    0

    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

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    4
    Ðề: Lỗi Operation must use an updateable




    Trích dẫn Gửi bởi codang2605
    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:




    • 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.
    • 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:


    • Mã nguồn PHP:
      [COLOR=#000000]
      SQL [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]"UPDATE Products Set UnitPrice = 2;" [/COLOR][COLOR=#0000BB]Set Conn [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Server[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]CreateObject[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"ADODB.Connection"[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Conn[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Mode [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]3 [/COLOR][COLOR=#DD0000]'3 = adModeReadWrite Conn.Open "myDSN" Conn.Execute(SQL) Conn.Close[/COLOR] 
      NOTE: By default, the MODE is set to 0(adModeUnknown), which generally allows updates.
    • 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.
    • 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:
      • <li>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.
      </li>

  3. #3
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: 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

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: 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.

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: 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

  6. #6
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: 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é.

  7. #7
    Ngày tham gia
    Apr 2016
    Bài viết
    18
    Ðề: 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.

  8. #8
    Ngày tham gia
    Aug 2015
    Bài viết
    1
    Ðề: 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 đó.

  9. #9
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: 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?

  10. #10
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: 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

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •