Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Mở 1 Form khác khi thỏa điều kiện
#1
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.
Tôi cũng thiết kế 1 unbound form (F_Date) gồm: 1 textbox (gõ dd/mm/yyyy), và 1 command botton "OK". Tôi dùng chung F_Date cho cả 2 trường hợp là: Nhập theo ngày và Xuất theo ngày. Hễ khi chọn popup "Nhập theo ngày" thì sẽ hiện ra F_Date, gõ ngày tháng xong nhấn "OK" thì sẽ hiện ra Bảng Nhập theo ngày. Tương tự, nếu chọn popup "Xuất theo ngày" thì sẽ hiện ra F_Date, gõ ngày tháng xong nhấn "OK" thì sẽ hiện ra Bảng Xuất theo ngày.
Nếu tôi làm 1 cái thì được, nhưng tôi muốn làm 1 điều kiện để có thể mở 1 trong 2 cái. Ở đây, tôi dùng 1 F_Date chung cho cả 2 bảng nhập trên. Nhờ mọi người chỉ giúp cho ạ!

Đây là đoạn mã tôi đã viết:
Mã:
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
Chữ ký của pherotao "Hạnh phúc ở đâu... biết tìm đâu,
Hồng trần là thế giới muôn màu,
Hội đủ nhân duyên... thời sinh quả,
Kết thúc... cũng là lúc bắt đầu".
Reply
Những người đã cảm ơn
#2
Nếu chỉ để nhập Ngày xong bạn ấn OK thì mình thấy bạn sử dụng thêm một CheckBox chẳng hạn, với Nhập thì để True, còn Xuất để False. Xong trong Commad [OK] thì thêm điều kiện vào. CheckBox này bạn để chế độ ẩn đi.
Bạn có thể thêm một Label và đổi nội dung Label theo từng trường hợp.

Mình không thích dùng kiểu này lắm. Tại sau nhỡ có ai sửa Code thay mình họ mò mẫm khổ laughing
Chữ ký của duynamvnn1208 duynamvnn1208,gia nhập Thủ Thuật Access từ 25-06 -17.
Reply
Những người đã cảm ơn
#3
(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.
...

007 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??
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
#4
(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.
...

007 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??


Dạ, tại phân ra làm 2 sự lựa chọn như vậy là để đề phòng: người nhập muốn nhập (xuất) đơn hàng vào 1 ngày khác, không phải là ngày hiện hành. Vì code tạo số chứng từ là lấy ngày nhập hóa đơn kết hợp, nên nếu trống "Ngày" sẽ bị lỗi ngay.
Chữ ký của pherotao "Hạnh phúc ở đâu... biết tìm đâu,
Hồng trần là thế giới muôn màu,
Hội đủ nhân duyên... thời sinh quả,
Kết thúc... cũng là lúc bắt đầu".
Reply
Những người đã cảm ơn
#5
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.
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 pherotao
#6
(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.

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.
Chữ ký của pherotao "Hạnh phúc ở đâu... biết tìm đâu,
Hồng trần là thế giới muôn màu,
Hội đủ nhân duyên... thời sinh quả,
Kết thúc... cũng là lúc bắt đầu".
Reply
Những người đã cảm ơn
#7
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.
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
#8
(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.

Đây là file của e: http://www.mediafire.com/file/cbducd4cjx...VA_1.4.mdb
A mở Form1 sẽ thấy "ý đồ " của e liền. Đại khái, trên menu có chọn lựa "Nhập Hàng", hoặc "Nhập theo ngày". Còn bảng F_Date thì e muốn dùng chung cho tất cả các lựa chọn "Nhập theo ngày", "Xuất theo ngày", "Thu theo ngày", "Chi theo ngày" v.v...
Chữ ký của pherotao "Hạnh phúc ở đâu... biết tìm đâu,
Hồng trần là thế giới muôn màu,
Hội đủ nhân duyên... thời sinh quả,
Kết thúc... cũng là lúc bắt đầu".
Reply
Những người đã cảm ơn
#9
(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 
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 pherotao
#10
(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 

Cám ơn ongke0711, e làm được rồi. E đặt sự kiện OnGotFocus cho nút "Thêm", nếu "Ngày" trống thì cảnh báo, ngược lại thì Me.txtMaHD.Value = SoTT. Mọi chuyện diễn ra ổn vô cùng. Đỡ mất công tạo thêm form. Cám ơn a đã nhắc...
Chữ ký của pherotao "Hạnh phúc ở đâu... biết tìm đâu,
Hồng trần là thế giới muôn màu,
Hội đủ nhân duyên... thời sinh quả,
Kết thúc... cũng là lúc bắt đầu".
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] Click vào button mở form mới ngay dưới button đó mrsiro 1 163 22-09-18, 12:04 PM
Bài mới nhất: lmthu
  Xuất dữ liệu từ Access ra Excel theo điều kiện Minh Tiên 13 1,166 25-05-18, 07:06 PM
Bài mới nhất: ongke0711
  [Hỏi] Ghép chuổi trong điều kiện hàm dcount mrsiro 8 803 23-05-18, 10:51 AM
Bài mới nhất: ongke0711
  [Hỏi] Căn Chỉnh Form Tự Động pherotao 9 1,108 21-12-17, 11:38 PM
Bài mới nhất: ongke0711
  [Hỏi] Cập nhật thông tin từ Textbox của UnBound Form vào Listbox pherotao 5 782 20-12-17, 09:00 PM
Bài mới nhất: pherotao

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