Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Thay thông báo lỗi tiếng Anh bằng tiếng việt cho form sub
#1
Chào mọi người !

Mình có một form sub, "ma_sp" là khoá chính, mình muốn thay thế thông báo lỗi "trùng khoá chính" mặc định là tiếng Anh bằng tiếng Việt. Hiện mình đang dùng sự kiện Form_Error, nhưng nó chỉ hiệu quả với main form, còn sub form thì không ăn nhậu gì cả, nhờ các bạn chỉ dẫn thêm.

Thanks
Chữ ký của dinh_trong_hoa
Reply
Những người đã cảm ơn
#2
(10-12-13, 09:55 AM)dinh_trong_hoa Đã viết: Chào mọi người !

Mình có một form sub, "ma_sp" là khoá chính, mình muốn thay thế thông báo lỗi "trùng khoá chính" mặc định là tiếng Anh bằng tiếng Việt. Hiện mình đang dùng sự kiện Form_Error, nhưng nó chỉ hiệu quả với main form, còn sub form thì không ăn nhậu gì cả, nhờ các bạn chỉ dẫn thêm.

Thanks

Bạn thêm đoạn code sau vào sự kiện On Error của subform là được. nhớ là subform chứ ko phải form nhé.[/code]
Mã:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Response = acDataErrContinue
If DataErr = 3022 Then
MsgBox "Trung khoa chinh", vbInformation, "Thong Bao"
End If
End Sub
Chữ ký của quan_pc Lắp đặt Internet VNPT tại Điện Bàn - Quảng Nam - Hotline: 0915.636.745
ღღღღღTài sản của quan_pc (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#3
(12-12-13, 12:29 AM)quan_pc Đã viết:
(10-12-13, 09:55 AM)dinh_trong_hoa Đã viết: Chào mọi người !

Mình có một form sub, "ma_sp" là khoá chính, mình muốn thay thế thông báo lỗi "trùng khoá chính" mặc định là tiếng Anh bằng tiếng Việt. Hiện mình đang dùng sự kiện Form_Error, nhưng nó chỉ hiệu quả với main form, còn sub form thì không ăn nhậu gì cả, nhờ các bạn chỉ dẫn thêm.

Thanks

Bạn thêm đoạn code sau vào sự kiện On Error của subform là được. nhớ là subform chứ ko phải form nhé.[/code]
Mã:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Response = acDataErrContinue
If DataErr = 3022 Then
MsgBox "Trung khoa chinh", vbInformation, "Thong Bao"
End If
End Sub

Dear Quan_pc,

Phương pháp của bạn mình đã dùng qua, nhưng không được. Mình tham khảo trên một trang web nước ngoài, nó bảo sự kiện Form_error không sử dụng được cho form dạng datasheet không biết đúng không và nếu đúng thì có cách nào để thay thế không ?

Thanks
Chữ ký của dinh_trong_hoa
Reply
Những người đã cảm ơn
#4
Đếm cái masp đó trên subform, nếu kết quả = 1 thì thông báo trùng khóa chính
Chú ý dòng chữ in đậm màu đỏ
Thân mến
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#5
(12-12-13, 10:46 AM)Xuân Thanh Đã viết: Đếm cái masp đó trên subform, nếu kết quả = 1 thì thông báo trùng khóa chính
Chú ý dòng chữ in đậm màu đỏ
Thân mến

Chào Xuân Thanh,

Nhờ bạn chỉ dẫn rõ hơn. Trước đây mình bỏ indexed trong table, sử dụng sự kiện subform_exit trong mainform và, ma_sp_exit trong subform cùng một lúc, rồi dùng dcount để điếm ma_sp, kết quả good 80% theo ý muốn, tuy nhiên một số trường hợp bị trùng lắp mà không hiện thông báo, như thế rất nguy hiểm nếu dùng cho công việc

thanks
Chữ ký của dinh_trong_hoa
Reply
Những người đã cảm ơn
#6
1/ Cái masp đó liên quan tới nhiều thứ kèm theo, không có CSDL không thể hướng dẫn cho bạn chi tiết được
2/ Một trường hợp cụ thể để bạn tham khảo : Trường hợp nhập
MainForm sử dụng RecordSource là tblPhieuNhap, SubForm sử dụng RecordSource là tblNhapChiTiet. Main và Sub link qua trường SoPhieu

Mã:
Private Sub MaSP_AfterUpdate()
    If DCount("[MaSP]","tblPhieuChitiet","[MaSP] = '" & Forms!frmPhieuNhap!txtMaSP & "' And [SoPhieu] = '" & Forms!frmPhieuNhap!SoPhieu & "'") = 1 Then
        MsgBox "Trung Ma" , , "Chu y"
        MaSP.SetFocus
        Exit Sub
    End If
End Sub

txtMaSP = TenSubForm.Form.MaSP
Bạn vận dụng cho phù hợp
Thân mến
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Noname
#7
(12-12-13, 03:18 PM)Xuân Thanh Đã viết: 1/ Cái masp đó liên quan tới nhiều thứ kèm theo, không có CSDL không thể hướng dẫn cho bạn chi tiết được
2/ Một trường hợp cụ thể để bạn tham khảo : Trường hợp nhập
MainForm sử dụng RecordSource là tblPhieuNhap, SubForm sử dụng RecordSource là tblNhapChiTiet. Main và Sub link qua trường SoPhieu

Mã:
Private Sub MaSP_AfterUpdate()
    If DCount("[MaSP]","tblPhieuChitiet","[MaSP] = '" & Forms!frmPhieuNhap!txtMaSP & "' And [SoPhieu] = '" & Forms!frmPhieuNhap!SoPhieu & "'") = 1 Then
        MsgBox "Trung Ma" , , "Chu y"
        MaSP.SetFocus
        Exit Sub
    End If
End Sub

txtMaSP = TenSubForm.Form.MaSP
Bạn vận dụng cho phù hợp
Thân mến

Cám ơn bạn Xuân Thanh đã chỉ dẫn, cách này mình đã ứng dụng qua cũng giống cách mà mình đã đề cập. Nó rắc rối là ở thế này:
-Thiết kế của mình gồm 1 form main + 2 form sub, form sub có chứa "ma_sp" chỉ có 02 trường (gồm ma_sp; ghi_chu), cho nên sau khi update xong ma_sp thường thì người ta sẽ không nhấn enter hay tab mà click trực tiếp sang subform thứ 2 hoặc về mainform, như thế nó sẽ hiện ra thông báo theo mặc định, các lệnh của mình đã cài đặt sẽ không có tác dụng

ặc.... thật nhức đầu quá đi 040
Chữ ký của dinh_trong_hoa
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Refresh Form và tiếp tục hoạt động Godspear 2 84 08-12-16, 12:48 PM
Bài mới nhất: Godspear
  Tạo Menu dạng TreeView bằng Query (không dùng ActiveX) ongke0711 4 269 06-12-16, 09:16 PM
Bài mới nhất: toancvp
  [Hỏi] Cách thêm dữ liệu vào form Main_Sub NganNguyen 1 39 06-12-16, 02:23 AM
Bài mới nhất: maidinhdan
  Tự động hiện Form khi loading hết thời gian ChiMai 1 49 02-12-16, 08:59 PM
Bài mới nhất: ongke0711
  [Help] Cập nhật combobox 2 từ combobox 1 (dữ liệu ở nhiều bảng) votinh.tq 6 209 22-11-16, 11:34 PM
Bài mới nhất: votinh.tq

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ơ