pherotao > 19-12-17, 12:04 AM
Option Compare Database
Private Sub OK_Click()
On Error GoTo Err_OK_Click
If IsNull(txtDate) Then
MsgOut VniToUni(" Phaûi cho bieát Ngaøy ! "), vbExclamation
txtDate.SetFocus
Exit Sub
End If
DoCmd.OpenForm "F_Date", , , , , acHidden
Dim stDocName_N As String
Dim stDocName_X As String
Dim stLinkCriteria As String
stDocName_N = "F_HoaDon_N_Ngay" 'Ten Form Nhap
stDocName_X = "F_HoaDon_X_Ngay" 'Ten Form Xuat
stLinkCriteria = "[txtNgay]=forms![F_Date]![txtDate]"
'Dieu kien mo Form Nhap, sau do moi thi hanh cau lenh: DoCmd.OpenForm stDocName_N, , , stLinkCriteria
DoCmd.OpenForm stDocName_N, , , stLinkCriteria
'Dieu kien mo Form Xuat, sau do moi thi hanh cau lenh: DoCmd.OpenForm stDocName_X, , , stLinkCriteria
DoCmd.OpenForm stDocName_X, , , stLinkCriteria
DoCmd.RunCommand acCmdSaveRecord
Exit_OK_Click:
Exit Sub
Err_OK_Click:
MsgBox Err.Description
Resume Exit_OK_Click
End Sub
duynamvnn1208 > 19-12-17, 08:36 AM
ongke0711 > 19-12-17, 10:11 AM
(19-12-17, 12:04 AM)pherotao Đã viết: Chào mọi người!
Tôi có thiết kế 1 menu Nhập - Xuất bằng Macro. Trên munu, có 4 popup là: Nhập Hàng, Nhập theo ngày; Xuất hàng, Xuất theo ngày.
...
pherotao > 19-12-17, 10:20 AM
(19-12-17, 10:11 AM)ongke0711 Đã viết:(19-12-17, 12:04 AM)pherotao Đã viết: Chào mọi người!
Tôi có thiết kế 1 menu Nhập - Xuất bằng Macro. Trên munu, có 4 popup là: Nhập Hàng, Nhập theo ngày; Xuất hàng, Xuất theo ngày.
...
Sao bạn lại thiết kế cầu kỳ thêm chi cho form Nhập - Xuất hàng vậy? Muốn nhập xuất ngày nào thì cứ vô Form Nhập Xuất chọn ngày nào cần nhập, ngày nào cần Xuất là được rồi, thiết kế thêm form tùy chọn ngày cho mất thời gian người nhập liệu vậy??
ongke0711 > 19-12-17, 11:00 AM
pherotao > 19-12-17, 11:28 AM
(19-12-17, 11:00 AM)ongke0711 Đã viết: Vậy là do code tạo số HD chưa bẫy lỗi tốt, bạn phải sửa lại nó thay vì tạo thêm form thêm code đẻ giải quyết cái lỗi của code khác -> càng rườm rà thêm code.
ongke0711 > 19-12-17, 01:07 PM
pherotao > 19-12-17, 01:35 PM
(19-12-17, 01:07 PM)ongke0711 Đã viết: Bạn ngâm cứu sự kiện BeforeUpdate của Form đi. Tôi có thể hướng dẫn bạn cách bẫy lỗi code tạo HD chứ không hướng dẫn bạn code cho cái form chọn Date để né lỗi. Sau này có biết bao nhiêu form, bao nhiêu cái lỗi cần bẫy mà bạn gặp rồi không giải quyết được lại đi vòng vòng.
Bạn up cái form mà bạn không bẫy lỗi đc xem bạn code nó như thế nào.
ongke0711 > 19-12-17, 03:22 PM
(19-12-17, 11:28 AM)pherotao Đã viết: Lúc đầu e cũng có viết theo hướng đó mà không được. Cụ thể, e để trường "Ngày" trống nếu chọn menu "Nhập theo ngày" (Số Hóa đơn chưa tự tạo vì chưa có ngày). Sau đó, e không cho con trỏ di chuyển nếu "Ngày" trống. Mặc dù nó có thông báo nhưng con trỏ vẫn di chuyển qua chỗ khác được.
Private Sub txtNgay_LostFocus()
If Len(Nz(Me.txtNgay, "")) = 0 Then
MsgBox "Khong duoc de trong [NGAY]"
Me.Them.SetFocus
Me.txtNgay.SetFocus
Exit Sub
End If
Me.txtMaHD.Value = SoTT
End Sub
pherotao > 19-12-17, 09:07 PM
(19-12-17, 03:22 PM)ongke0711 Đã viết:(19-12-17, 11:28 AM)pherotao Đã viết: Lúc đầu e cũng có viết theo hướng đó mà không được. Cụ thể, e để trường "Ngày" trống nếu chọn menu "Nhập theo ngày" (Số Hóa đơn chưa tự tạo vì chưa có ngày). Sau đó, e không cho con trỏ di chuyển nếu "Ngày" trống. Mặc dù nó có thông báo nhưng con trỏ vẫn di chuyển qua chỗ khác được.
Bạn set sự kiện OnLostFocus của textbox Ngay. Khi click (hoặc di chuyển) chuột qua textbox khác thì sự kiện này sẽ bật lên kiểm tra xem textbox NGÀY có rỗng hay không, nếu rỗng thì SetFocus, nếu không thì tạo mã HD. Bây giờ bạn muốn nhập hóa đơn ngày nào mà chả được, cần gì tạo thêm 2 cái form nhập theo ngày cho lãng phí tài nguyên.
Nhớ Enable, mở Lock textbox [Ngày]. Bạn cần gì phải lock nó, nếu không cho sửa thì Lock toàn bộ form luôn.
Mã PHP:Private Sub txtNgay_LostFocus()
If Len(Nz(Me.txtNgay, "")) = 0 Then
MsgBox "Khong duoc de trong [NGAY]"
Me.Them.SetFocus
Me.txtNgay.SetFocus
Exit Sub
End If
Me.txtMaHD.Value = SoTT
End Sub