Bẫy lỗi khi không có dữ liệu (5 người xem)

  • Thread starter Thread starter na_an
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

na_an

Thành viên chính thức
Tham gia
23/2/10
Bài viết
89
Được thích
4
Chào các bạn!
Mình có việc này nhờ các bạn chỉ giúp.
Mình thực hiện bẫy lỗi cho chương trình mình đang làm. Nhưng vướng mắc ở bẫy ngày tháng. Bạn nào biết cách làm chỉ giúp mình với. Mình thiết kế ngày, tháng, năm nhập vào ở dạng textbox.
Ví dụ: Khi người sử dụng nhập vào một ngày bất kỳ nào đó nhưng ngày ấy lại không có trong CSDL thì báo lỗi " Ngay ban chon khong co trong CSDL".
Mình cảm ơn!
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn có thể dùng Validation , có file dễ giúp hơn
 
Chào các bạn!
Mình có việc này nhờ các bạn chỉ giúp.
Mình thực hiện bẫy lỗi cho chương trình mình đang làm. Nhưng vướng mắc ở bẫy ngày tháng. Bạn nào biết cách làm chỉ giúp mình với. Mình thiết kế ngày, tháng, năm nhập vào ở dạng textbox.
Ví dụ: Khi người sử dụng nhập vào một ngày bất kỳ nào đó nhưng ngày ấy lại không có trong CSDL thì báo lỗi " Ngay ban chon khong co trong CSDL".
Mình cảm ơn!
Bạn có thể dùng Find hoặc Match,... Nếu bạn không tự làm được thì gửi dữ liệu lên.
 
Mình đã gửi dữ liệu lên rồi đấy. Bạn coi giúp mình với nhé.
Bạn dùng thử code sau nhé:
Mã:
Private Sub tim_Click()
Me.Refresh
If txtngay = DLookup("[ngaynhaplieu]", "dl", "[ngaynhaplieu]=[txtngay]") Then
MsgBox "Co ngay nay roi ne, tiep tuc nhe "
Else
MsgBox "Khong co ngay nay roi ban oi, vui long kiem tra lai di ", vbCritical
txtngay.SetFocus
txtngay = ""
Exit Sub
End If

End Sub
 
Bạn dùng thử code sau nhé:
Mã:
Private Sub tim_Click()
Me.Refresh
If txtngay = DLookup("[ngaynhaplieu]", "dl", "[ngaynhaplieu]=[txtngay]") Then
MsgBox "Co ngay nay roi ne, tiep tuc nhe "
Else
MsgBox "Khong co ngay nay roi ban oi, vui long kiem tra lai di ", vbCritical
txtngay.SetFocus
txtngay = ""
Exit Sub
End If
 
End Sub



Chào bạn!
Mình đã áp dụng cách bạn chỉ và làm được rồi. Nhưng khi mình áp dụng cách này để bẫy lỗi khi tìm kiếm với khỏang thời gian thì nó lại báo lung tung loạn hết cả lên.
Ví dụ: khi load form mà mình chưa chọn ngày bắt đầu ma đã ấn nút tìm thì nó báo bạn chưa nhập ngày bắt đầu thế này thì được rồi nhưng khi mính ấn vào OK theo thông báo đáng lý ra con trỏ phải nhảy đến ô ngày bắt đầu thì nó lại ra thông báo tiếp là bạn chưa chọn ngày kết thúc ấn tiếp vào nút OK thì lại ra tiếp thông báo ngày bạn chọn không có, bạn nhập lại ngày khác lúc này mình ấn ok thì con trỏ mới nhảy tới ô ngày bắt đầu...
Bạn có cách nào sửa lỗi này không chỉ mình với. Mình muốn là khi mới bắt đầu mà người dùng chưa chọn ngày bắt đầu thì thông báo bạn chưa nhập ngày bắt đầu sau khi ấn OK thì con trỏ nhảy đến ô ngày bắt đầu. và nếu chưa chọn ngày kết thúc thì sẽ thông báo bạn chưa nhập ngày kết thúc khi ấn OK con trỏ nhảy đến ngày kết thúc và nếu ngày bắt đầu lớn hơn ngày kết thúc thi thông báo bạn đã nhập sai ngày.
Mình đã viết code nhưng không hiểu sai hay nhầm lãn ở đâu mà khi chạy nó không theo ý mình muốn mà cứ ra cả loạt thông báo.
Một vấn đề nữa xảy ra là khi ra một loạt thông báo và con trỏ nhảy về ô ngày bắt đầu và nếu mình nhập ngày bắt đầu sau đó không nhập ngày kết thúc thì chương trình báo bạn chưa vào ngày kết thúc ấn OK ra thông báo tiếp Ngày bạn chọn không có, xin chon lại ngày khác. Mình nhập vào ngày kết thúc nhỏ hơn ngày bắt đầu (VD: ngày bắt đầu là 15/6/2010 ngày kết thúc là 10/6/2010) chương trình thông báo Bạn chọn sai ngày khi mình chọn lại ngày cho đúng (vd ngày bắt đầu là ngày 09/6/2010 ngày kết thúc vẫn để là 10/6/2010) thi báo lỗi.
Bạn giúp với nhé.
Cảm ơn bạn
 

File đính kèm

Chào bạn!
Mình đã áp dụng cách bạn chỉ và làm được rồi. Nhưng khi mình áp dụng cách này để bẫy lỗi khi tìm kiếm với khỏang thời gian thì nó lại báo lung tung loạn hết cả lên.
Ví dụ: khi load form mà mình chưa chọn ngày bắt đầu ma đã ấn nút tìm thì nó báo bạn chưa nhập ngày bắt đầu thế này thì được rồi nhưng khi mính ấn vào OK theo thông báo đáng lý ra con trỏ phải nhảy đến ô ngày bắt đầu thì nó lại ra thông báo tiếp là bạn chưa chọn ngày kết thúc ấn tiếp vào nút OK thì lại ra tiếp thông báo ngày bạn chọn không có, bạn nhập lại ngày khác lúc này mình ấn ok thì con trỏ mới nhảy tới ô ngày bắt đầu...
Bạn có cách nào sửa lỗi này không chỉ mình với. Mình muốn là khi mới bắt đầu mà người dùng chưa chọn ngày bắt đầu thì thông báo bạn chưa nhập ngày bắt đầu sau khi ấn OK thì con trỏ nhảy đến ô ngày bắt đầu. và nếu chưa chọn ngày kết thúc thì sẽ thông báo bạn chưa nhập ngày kết thúc khi ấn OK con trỏ nhảy đến ngày kết thúc và nếu ngày bắt đầu lớn hơn ngày kết thúc thi thông báo bạn đã nhập sai ngày.
Mình đã viết code nhưng không hiểu sai hay nhầm lãn ở đâu mà khi chạy nó không theo ý mình muốn mà cứ ra cả loạt thông báo.
Một vấn đề nữa xảy ra là khi ra một loạt thông báo và con trỏ nhảy về ô ngày bắt đầu và nếu mình nhập ngày bắt đầu sau đó không nhập ngày kết thúc thì chương trình báo bạn chưa vào ngày kết thúc ấn OK ra thông báo tiếp Ngày bạn chọn không có, xin chon lại ngày khác. Mình nhập vào ngày kết thúc nhỏ hơn ngày bắt đầu (VD: ngày bắt đầu là 15/6/2010 ngày kết thúc là 10/6/2010) chương trình thông báo Bạn chọn sai ngày khi mình chọn lại ngày cho đúng (vd ngày bắt đầu là ngày 09/6/2010 ngày kết thúc vẫn để là 10/6/2010) thi báo lỗi.
Bạn giúp với nhé.
Cảm ơn bạn

Có 2 vấn đề bạn ạ
1.) Bạn yêu cầu nhập móc thời gian nếu không có trong bảng thì không cho nhập, vậy các ngày bạn ví dụ đâu có trong list đâu.
2.) Khi bắt lổi cái nào thì dừng code không chạy tiếp = Exit Sub

Private Sub tim_Click()
If IsNull(txtngay1) Then
MsgBox "Ban chua nhap ngay bat dau", vbOKOnly, "Chu y!"
txtngay1.SetFocus
Exit Sub
End If
If IsNull(txtngay2) Then
MsgBox "Ban chua nhap ngay ket thuc", , "Chu y!"
txtngay2.SetFocus
Exit Sub
End If
If (txtngay1) > (txtngay2) Then
MsgBox " Ban da nhap sai ngay!", , "Chu y!"
txtngay1.SetFocus
txtngay1 = ""
Exit Sub
End If
If txtngay1 = DLookup("[ngaynhaplieu]", "dl", "[ngaynhaplieu]=[txtngay1]") Then
Else
MsgBox " Ngay ban chon khong co. Vui long chon ngay khac.", vbCritical, "Chu y!"
txtngay1.SetFocus
txtngay1 = ""
Exit Sub
End If
If txtngay2 = DLookup("[ngaynhaplieu]", "dl", "[ngaynhaplieu]=[txtngay2]") Then
Else
MsgBox " Ngay ban chon khong co. Vui long chon ngay khac.", vbCritical, "Chu y!"
txtngay2.SetFocus
txtngay2 = ""
Exit Sub
End If
inketqua.Enabled = True
End Sub

Theo tôi nghĩ bạn nên dùng Calendar để chọn móc thời gian nó tiện hơn.
 
Có 2 vấn đề bạn ạ
1.) Bạn yêu cầu nhập móc thời gian nếu không có trong bảng thì không cho nhập, vậy các ngày bạn ví dụ đâu có trong list đâu.
2.) Khi bắt lổi cái nào thì dừng code không chạy tiếp = Exit Sub



Theo tôi nghĩ bạn nên dùng Calendar để chọn móc thời gian nó tiện hơn.[/QUOTE


Mình làm được rồi.
Cho mình hỏi thêm.
Có cách nào để khi load form mà chưa lựa chọn tìm kiếm gì thì không hiện dữ liệu mà chỉ hiện dữ liệu khi ấn nút tìm kiếm
 
Mình làm được rồi.
Cho mình hỏi thêm.
Có cách nào để khi load form mà chưa lựa chọn tìm kiếm gì thì không hiện dữ liệu mà chỉ hiện dữ liệu khi ấn nút tìm kiếm

Hoàn toàn có thể được bằng cách bạn dò đến mục Record Source, xóa trống nó.
 
Lần chỉnh sửa cuối:
Bạn đưa file của bạn xem thử nhé, cái file mà bạn thiết kế có có truy vấn ấy.

Có hai trường hợp xảy ra.
1. Mình bỏ trống record source thì bị như form mình gửi cho bạn.
2. nếu mình để record source là dl còn các ô dl bên dưới phần control source mình bỏ trống thì khi ấn tìm kiếm không hiện dữ liệu gì cả.
Bạn xem giúp mình với nhé.
 

File đính kèm

Có hai trường hợp xảy ra.
1. Mình bỏ trống record source thì bị như form mình gửi cho bạn.
2. nếu mình để record source là dl còn các ô dl bên dưới phần control source mình bỏ trống thì khi ấn tìm kiếm không hiện dữ liệu gì cả.
Bạn xem giúp mình với nhé.
Thôi làm cho bạn luôn cái form có Calendar để chọn và lọc ngày.
Bạn xem file nhé
 

File đính kèm

Thôi làm cho bạn luôn cái form có Calendar để chọn và lọc ngày.
Bạn xem file nhé

Vấn đề không phải là mình không muốn làm cái form có calender mà thư viện acc của minh không đủ. Không có cái đó để làm. Mình đã cài lại rồi nhưng vẫn báo không có. Vì thế mình phải làm thông qua textbox. Mấy cái bẫy lỗi đó mình làm được rồi.
Cảm ơn bạn nhé.
 
Vấn đề không phải là mình không muốn làm cái form có calender mà thư viện acc của minh không đủ. Không có cái đó để làm. Mình đã cài lại rồi nhưng vẫn báo không có. Vì thế mình phải làm thông qua textbox. Mấy cái bẫy lỗi đó mình làm được rồi.
Cảm ơn bạn nhé.
Nếu không có bạn tải về bỏ nó vào System32 và đăng ký là được. Bạn tải ở link sau:
http://www.ocxdump.com/download-ocx-files_new.php/ocxfiles/M/MSCAL.OCX/9.0.0.2607/download.html
 
Bẫy lỗi với query

Chào bạn!
Mình làm query để tổng hợp dữ liệu theo tháng. Bạn có cách nào để khi mình nhập vào 1 tháng bất kỳ nhưng tháng ấy không có trong csdl hoặc không có dữ liệu thì báo lỗi không?
Ví dụ: khi mình nhập vào tháng 6 thi nó ra số liệu của tháng 6, khi nhập vào tháng 7 thì thông báo " Tháng bạn chọn không có dữ liệu" hoặc khi nhập vào tháng 8 thì sẽ báo " tháng bạn chọn không có trong CSDL"
 

File đính kèm

Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom