Đánh giá chủ đề:
  • 6 Votes - 2.67 Average
  • 1
  • 2
  • 3
  • 4
  • 5
So sánh ngày tháng trong access
#1
Mình gặp chút vấn đề về so sánh ngày tháng.
Mình Dookup 1 giá trị ngày tháng trang table(trả về giá trị 20/10/2010), so sánh lớn hớn (>) với dateserial(2010,11,20). khi định dạng date hệ thống là mm/dd/yyyy thì không vấn đề gì vẫn trả về false. Nhưng khi mình đưa hệ thống sang dd/mm/yyyy thì nó lại trả về giá trị true ( tức là nó cho là 20/10/2010 > 20/11/2010 ) tại sao vậy nhỉ ?
Chữ ký của The Wind [Hình: http://socializedsoftware.com/wp-content...ensuse.png]
Chờ đợi cũng là 1 nghệ thuật! Và người chờ đợi cũng là 1 nghệ sĩ!
Reply
Những người đã cảm ơn
#2
(05-11-10, 12:41 PM)The Wind Đã viết: Mình gặp chút vấn đề về so sánh ngày tháng.
Mình Dookup 1 giá trị ngày tháng trang table(trả về giá trị 20/10/2010), so sánh lớn hớn (>) với dateserial(2010,11,20). khi định dạng date hệ thống là mm/dd/yyyy thì không vấn đề gì vẫn trả về false. Nhưng khi mình đưa hệ thống sang dd/mm/yyyy thì nó lại trả về giá trị true ( tức là nó cho là 20/10/2010 > 20/11/2010 ) tại sao vậy nhỉ ?

Không biết sao chứ có thể lỗi ngày <12. Chứ làm sao ngày lớn hơn 12 mà lỗi được! Bạn kiểm tra lại phải đúng không!

Bạn thử gọi hàm format coi nó báo thế nào:
Msgbox " date1:" & format(Date1,"Long Date") & " ; Date 2:" & format(Date2,"Long Date")

Với Date1,Date2 là giá trị bạn đang cần kiểm tra!
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn hoangtuanan
#3
đây là code đoạn đó
bien = Dcuont("NgayApDung", "tb_DienBienLuong", "[NgayApDung] > #" & DateSerial(rst![Nam], rst![Thang], 1) & "#")

trong đó
rst![Nam] = 2010
rst![Thang] = 11

trong tb_DienBienLuong có 1 record duy nhất với"
[NgayApDung] = 20/10/2010


kết quả biến = 1
trong khi đúng ra thì phải = 0

msgbox 1 có nội dung: "Date 1: wednesday, october, 20, 2010"
msgbox 2 có nội dung: "Date 2: Monday, november, 01, 2010"

À xin lỗi rất nhiều, đúng là dateserial = 01/11/2010 chứ không phải = 20/11/2010
Chữ ký của The Wind [Hình: http://socializedsoftware.com/wp-content...ensuse.png]
Chờ đợi cũng là 1 nghệ thuật! Và người chờ đợi cũng là 1 nghệ sĩ!
Reply
Những người đã cảm ơn
#4
Xin lỗi, nhần nữa, dù mình đã chỉnh dateserial = 20/11/2010 thì vẫn trả về true (kết quả này sai). nên đây hok phải lỗi < ngày 12
Chữ ký của The Wind [Hình: http://socializedsoftware.com/wp-content...ensuse.png]
Chờ đợi cũng là 1 nghệ thuật! Và người chờ đợi cũng là 1 nghệ sĩ!
Reply
Những người đã cảm ơn
#5
À, nếu không dùng dấu # thì thế nào nhỉ. Vì bản thân dateserial đã trả về ngày rồi!
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#6
Khi bỏ dấu # đi giá trị trả về vẫn trà "true" 20/10/2010 > 1/11/2010 = true
biến = 1
_____________________________________

lỗi này phát sinh do bỏ dấu # đi
Trích dẫn:Xin lỗi, nhần nữa, dù mình đã chỉnh dateserial = 20/11/2010 thì vẫn trả về true (kết quả này sai). nên đây hok phải lỗi < ngày 12
Chữ ký của The Wind [Hình: http://socializedsoftware.com/wp-content...ensuse.png]
Chờ đợi cũng là 1 nghệ thuật! Và người chờ đợi cũng là 1 nghệ sĩ!
Reply
Những người đã cảm ơn
#7
Kì nhỉ! Bạn thử Ra Excel.
Gõ ô thứ nhất: A1 = 20/10/2010
Ô thứ hai: A2 = 01/11/2010
ô thứ 3 bằng := If(A1>A2, True, false)

Coi kết quả thế nào?
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#8
(05-11-10, 02:01 PM)Noname Đã viết: Kì nhỉ! Bạn thử Ra Excel.
Gõ ô thứ nhất: A1 = 20/10/2010
Ô thứ hai: A2 = 01/11/2010
ô thứ 3 bằng := If(A1>A2, True, false)

Coi kết quả thế nào?

Ecxel trả về "false". như vậy hok phải tại cái mẫy ngớ ngẩn của mình phải hok?!

đã thử dùng between trog điều kiện
bien = Dcuont("NgayApDung", "tb_DienBienLuong", "[NgayApDung] Bedween #" & DateSerial(rst![Nam], rst![Thang], 1) & "#
And #" & DateSerial(rst![Nam], rst![Thang], EndDate(rst![Nam],rst![Thang])) & "#")

kết quả trả về bien = 1
tức là ngày 20/10/2010 nằm giữa ngày 1/11/2010 và ngày 31/1/2010 Cry_smile
____________

Đã giải quyết được vấn đề, cái hàm dateserial "ăn hại", sử dụng nó mụa đích để tránh lỗi vậy mà lại gặp lỗi do nó. Sử dụng định dạng ngày tháng chuẩn.
code mới
bien = Dcuont("NgayApDung", "tb_DienBienLuong", "[NgayApDung] > #" & rst![Nam] & "-" & rst![Thang] & "-" & 1 & "#")


đã chuyển date hệ thống ở cả 2 dạng dd/mm/yyyy và mm/dd/yyyy. không thấy sai nữa. Chắc là được rồi!
Chữ ký của The Wind [Hình: http://socializedsoftware.com/wp-content...ensuse.png]
Chờ đợi cũng là 1 nghệ thuật! Và người chờ đợi cũng là 1 nghệ sĩ!
Reply
Những người đã cảm ơn Noname
#9
Cảm ơn Noname rất nhiều! chúc bạn buổi chiều vui vẻ!
Chữ ký của The Wind [Hình: http://socializedsoftware.com/wp-content...ensuse.png]
Chờ đợi cũng là 1 nghệ thuật! Và người chờ đợi cũng là 1 nghệ sĩ!
Reply
Những người đã cảm ơn
#10
Tôi cũng đang gặp phải vấn đề về so sánh ngày tháng trong access.

Vấn đề như sau: Tôi nhập vào CSDL ngày "11/10/2012" và check trực tiếp trong CSDL vẫn thấy hiển thị là: "11/10/2012". Tuy nhiên khi thực hiện truy vấn để tìm ngày "11/10/2012" thì không tìm thấy kết quả. Tôi thực hiện nhập ngược lại là "10/11/2012" thì tìm thấy kết quả.

Nhưng nếu nhập vào ngày: "13/10/2012" thì khi truy vấn luôn tìm thấy kết quả

Tôi cũng đã định dạng lại ngày bằng hàm Format(Trim(txtExamDate.Text), "dd/mm/yyyy") và trong trong CSDL trường "ExamDate" tôi cũng set format là "dd/mm/yyyy". Nhưng không được !!!! 004

Và ngày giờ hệ thống trong windows cũng đã được set lại theo format: dd/mm/yyyy

Tôi cho rằng access đang hiểu sai giữa ngày và tháng nằm trong khoảng giá trị (1..12)

Các bạn giải quyết giúp tôi vấn đề này với !
Chữ ký của pidgin Xin chào, mình là pidgin, Tham gia http://thuthuataccess.com/forum từ ngày 18-08 -12.
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
  [Help] Lỗi "A problem occurred while Microsoft Access was communicating with the OLE server thanhoai 1 109 03-11-16, 03:53 PM
Bài mới nhất: maidinhdan
  [Hỏi] Việc set thuộc tính OnClick trong Code toancvp 5 229 31-10-16, 10:14 AM
Bài mới nhất: toancvp
  [Lỗi] Cúp điện ---> lỗi access 2013 biencuong86 3 149 26-10-16, 04:30 PM
Bài mới nhất: maidinhdan
  [Hỏi] chương trình đơn giản để so sánh chuỗi text kanmai07 4 317 28-09-16, 06:05 PM
Bài mới nhất: kanmai07
  thay đổi biểu tượng Access dưới thanh Start từ win 7 đến win 10 thanhtruong 7 433 05-08-16, 10:53 PM
Bài mới nhất: hungefi

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ơ