Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Lỗi cannot Update.
#1
Chào các anh chị
Nhờ các anh chị giúp em khắc phục lỗi Cannot update. Databse or object  is read only, khi em Click save 
Ps: Trên Form frmThongKeCongDoan, có phần nhập giờ bắt đàu và kết thúc, cho em hỏi, có cách nào để nhập giờ được nhanh hơn không?
Link
[Hình: Capture.th.png]
ღღღღღTài sản của huuduy.duy (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#2
- Query source của SubForm có các trường tính toán nên nó không thể cập nhật dữ liệu được và nó cũng khoá luôn cái table bạn cần "AddNew". Bạn nên thiết kế lại subF hoặc gọi form cập nhật theo cách khác didi.
- Trong code của bạn  tôi thấy bạn đặt tên biến trùng tên các table -> nó vẫn chạy nhưng sẽ gây khó khi sửa code: không biến nó là biến hay tên table và gây khó khăn cho code VBA nó cũng phải tự suy và đặt tên table vô dấu ngoặc vuông [..] để tránh xử lý sai. -> nên bỏ cách đặt tên như vậy.

Mã PHP:
Set tblThongKeCongDoan CurrentDb.OpenRecordset("SELECT * FROM [tblThongKeCongDoan]"
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn huuduy.duy
#3
(27-06-18, 03:24 PM)ongke0711 Đã viết: - Query source của SubForm có các trường tính toán nên nó không thể cập nhật dữ liệu được và nó cũng khoá luôn cái table bạn cần "AddNew". Bạn nên thiết kế lại subF hoặc gọi form cập nhật theo cách khác didi.
- Trong code của bạn  tôi thấy bạn đặt tên biến trùng tên các table -> nó vẫn chạy nhưng sẽ gây khó khi sửa code: không biến nó là biến hay tên table và gây khó khăn cho code VBA nó cũng phải tự suy và đặt tên table vô dấu ngoặc vuông [..] để tránh xử lý sai. -> nên bỏ cách đặt tên như vậy.

Mã PHP:
Set tblThongKeCongDoan CurrentDb.OpenRecordset("SELECT * FROM [tblThongKeCongDoan]"

Còn phần 
Mã PHP:
Trên Form frmThongKeCongDoancó phần nhập giờ bắt đàu và kết thúccho em hỏicó cách nào để nhập giờ được nhanh hơn không
mình xử lý sao anh?

Mã PHP:
Bạn nên thiết kế lại subF hoặc gọi form cập nhật theo cách khác didi
anh có thể giúp em?
ღღღღღTài sản của huuduy.duy (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#4
- Anh mới xem lại form của em thì thấy trong subform - Form Properties - Data -> em set Record Locks: All records -> phải đổi lại thành "No lock" thì mới update được. Còn query của subF em cứ giữ nguyên. Post trên anh trả lời sai.


- Còn về việc nhập cái textbox giờ bắt đầu/ kết thúc: anh nghĩ em nên thiết kế 2 field này dạng TEXT và có thiết lập Input Mask cho nó để người dùng dễ nhập liệu. Input mask: 00:00;0;_
Lý do: Nếu Field này em dùng định dạng DateTime nhưng Format dạng “ShortTime”, khi hiển thị nó hiển thị đúng yêu cầu của em là “hh:nn” nhưng thực tế mặc định của nó sẽ tự động gán ngày “30/12/1899” vào trước cái giờ: phút em nhập. Em có thể dùng hàm Format([Bat-Dau],”yyyy-mm-dd”) sẽ thấy ngay. Khi đó nếu có tính toán liên quan đến thời gian của field này sẽ cho kết quả không chính xác.
Sau này nếu có tính toán thì có thể dùng công thức sau để kết hợp [Ngày] và [Giờ] như sau:
dteNgayGioBatDau=Me.txtNgayThucHien+TimeValue(Me.txtBatDau)

 
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn maidinhdan , huuduy.duy
#5
(28-06-18, 10:03 PM)ongke0711 Đã viết: - Anh mới xem lại form của em thì thấy trong subform - Form Properties - Data -> em set Record Locks: All records -> phải đổi lại thành "No lock" thì mới update được. Còn query của subF em cứ giữ nguyên. Post trên anh trả lời sai.
- Còn về việc nhập cái textbox giờ bắt đầu/ kết thúc: anh nghĩ em nên thiết kế 2 field này dạng TEXT và có thiết lập Input Mask cho nó để người dùng dễ nhập liệu. Input mask: 00:00;0;_
Lý do: Nếu Field này em dùng định dạng DateTime nhưng Format dạng “ShortTime”, khi hiển thị nó hiển thị đúng yêu cầu của em là “hh:nn” nhưng thực tế mặc định của nó sẽ tự động gán ngày “30/12/1899” vào trước cái giờ: phút em nhập. Em có thể dùng hàm Format([Bat-Dau],”yyyy-mm-dd”) sẽ thấy ngay. Khi đó nếu có tính toán liên quan đến thời gian của field này sẽ cho kết quả không chính xác.
Sau này nếu có tính toán thì có thể dùng công thức sau để kết hợp [Ngày] và [Giờ] như sau:
dteNgayGioBatDau=Me.txtNgayThucHien+TimeValue(Me.txtBatDau)
Cảm ơn anh, em đã khắc phục được lỗi trên rồi.
Cũng ở form ThongKeCongDoan, khi em Click Save lần 1, thì báo cập nhật thành công, mặc dù chưa nhập dữ liệu gì hết, nhưng khi click lần thứ 2 trở đi (cũng chưa nhập dữ liệu vào các textbox) thì mới báo lỗi chưa điền đầy đủ thông tin.
Nhờ anh kiểm tra giúp em. 
Trân trọng cảm ơn
ღღღღღTài sản của huuduy.duy (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#6
(29-06-18, 11:48 AM)huuduy.duy Đã viết: Cũng ở form ThongKeCongDoan, khi em Click Save lần 1, thì báo cập nhật thành công, mặc dù chưa nhập dữ liệu gì hết, nhưng khi click lần thứ 2 trở đi (cũng chưa nhập dữ liệu vào các textbox) thì mới báo lỗi chưa điền đầy đủ thông tin.

Cái lỗi này là do lỗi code trong cái hàm CheckNullEmpty() anh post lên lúc trước. 
Giải thích về trường hợp khi bấm [Save] lần 1 khi chưa nhập liệu nó vẫn báo "Lưu thành công" là do: Trong form của em, em có thiết lập 1 textbox là [Ngày thực hiện] có Default value = Date() tức là luôn có trị khi mở form và cái hàm CheckNullEmpty() chạy sai ở đây. Nó bị sai ở vòng lặp khi gặp textbox [Ngày thực hien] có trị sẽ gán CheckNullEmpty = False -> sẽ tiến hành Lưu dữ liệu. Bấm [Save] lần 2 thì code chạy đúng, hiện thông báo yêu cầu nhập liệu các textbox null là do: code sau khi lưu dữ liệu sẽ xoá trống tất cả các textbox trên main form dẫn đến hàm CheckNullEmpty() sẽ chạy và trả về giá trị đúng (=True).
Bạn sửa code hàm CheckNullEmpty lại như bên dứoi:

Mã PHP:
Function CheckNullEmpty(frm As Form) As Boolean
   Dim ctl 
As Control
   str 
= Empty

   For Each ctl In frm.Controls
       If ctl
.ControlType acTextBox Or ctl.ControlType acComboBox Or ctl.ControlType acCheckBox Then
           If Right
(ctl.Tag8) = "required" Then
               If IsNullOrEmpty
(ctlThen
                   
'Debug.Print IsNullOrEmpty(ctl) & " - " & ctl.Name'
                   colCtlName.Add ctl.Name  'De setFocus vao control dau tien trong danh sách collection'
                   ctl.BackColor RGB(255255153)
                   str str "- " ctl.Controls(0) vbNewLine
               End 
If
           End If
       End If
   Next

   If Len
(str) = 0 Then
       CheckNullEmpty 
False
   Else
       CheckNullEmpty 
True
   End 
If

End Function 
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn huuduy.duy
#7
frmThongKeNangSuat, em thêm sự kiện double click cho subform (sfrmThongKeCongDoan) để mở 1 form mới (Form chỉnh sửa), thì báo lỗi sau. Em đã đăng ký thư viện OLE luôn rồi, 
Nhưng nếu em thay sfrmThongKeCongDoan bằng 1 subform khác thì bình thường, 

Cho em hỏi, lỗi trên mình khắc phục như thế nào 
Trân trọng cảm ơn
[img][Hình: r41827T.png][/img]
ღღღღღTài sản của huuduy.duy (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#8
Kiểm tra lại tất cả các Controls, có control nào đó trong Form có đặt tên (Name) tiếng Việt có dấu hoặc khoảng trắng. Không cần đăng ký thêm thư viện gì nữa.
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn huuduy.duy


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Update theo chuỗi VBA mrsiro 5 185 20-09-18, 10:36 PM
Bài mới nhất: tranthanhan1962
  [Help] Sự kiện gotforcus và after update ko đúng trong Main-sub form NguyenDungAnh 9 314 09-09-18, 11:03 PM
Bài mới nhất: NguyenDungAnh
  [Help] Code update dữ liệu từ subform vào table history(có ghi nhận ngày update) subasatran 5 1,059 10-07-17, 02:07 PM
Bài mới nhất: tranthanhan1962
  Điều khiển con trỏ tới vị trí vừa Update Minh Tiên 22 6,834 09-06-15, 08:11 AM
Bài mới nhất: Minh Tiên
  [Hỏi] Tạo lệnh tìm kiếm và update ngay trên form tranhai_vn 1 835 02-01-15, 12:48 PM
Bài mới nhất: hieutrinh18

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line