Vấn đề ngày tháng trong Access

glasseggs

New Member
Hội viên mới
Cho mình hỏi chút nhé,nếu như trong phần mềm của mình định dạng Format cho trường Date là dd/mm/yyyy mà ngày tháng hệ thống là mm/dd/yyyy thì sẽ dẫn đến lẫn lộn ngày tháng khi nhập vào CSDL .Nếu như mình nhập 12/06/2009 thì nó sẽ hiển thị 6/12/2009.
Vậy có cách nào để khi mình mở phần mềm lên nó sẽ tự kiểm tra ngày hệ thống để trả về định dạng dd/mm/yyyy không ?
Đừng bảo mình chuyển trong Control Panel nhé ,vì như thế cứ mang pm đi máy nào cũng phải chỉnh lại mất công lắm,mà không pro
Thanks
:giabo:
 
Ðề: Vấn đề ngày tháng trong Access

Cho mình hỏi chút nhé,nếu như trong phần mềm của mình định dạng Format cho trường Date là dd/mm/yyyy mà ngày tháng hệ thống là mm/dd/yyyy thì sẽ dẫn đến lẫn lộn ngày tháng khi nhập vào CSDL .Nếu như mình nhập 12/06/2009 thì nó sẽ hiển thị 6/12/2009.
Vậy có cách nào để khi mình mở phần mềm lên nó sẽ tự kiểm tra ngày hệ thống để trả về định dạng dd/mm/yyyy không ?
Đừng bảo mình chuyển trong Control Panel nhé ,vì như thế cứ mang pm đi máy nào cũng phải chỉnh lại mất công lắm,mà không pro
Thanks
:giabo:

Có nhiều hướng dẫn cho vấn đề này rồi. Nhưng đa số đều khá phức tạp.
Sau một thời gian viết vài chương trình cho các công ty Đài Loan thì tôi nghiệm ra rằng, cách nhập giá trị ngày theo kiểu của họ là OK nhất. Nghĩa là nhập theo kiểu yyyy/MM/dd.

Cho nên một lời gợi ý là, đối với field ngày, bạn hãy nhập theo kiểu yyyy/MM/dd. Phần định dạng sẽ do Access đảm nhận. Như vậy bạn không bận tâm về định dạng của máy đang sử dụng nữa.
 
Ðề: Vấn đề ngày tháng trong Access

Bạn có thể giải quyết bằng hàm API. Cách làm như sau:

1. Copy đoạn code sau vào 1 modul



2. Ở sự kiện Form_Load của form ******* của bạn, bạn gọi thủ tục SetSysDate như sau:



Như vậy mỗi lần chạy chương trình của bạn thì định dạng ngày hệ thống sẽ tự động chuyển thành dạng dd/mm/yyyy

Chúc thành công!

Đây là một đoạn code hữu ích, nhưng như thế là "không fair" lắm, khi chương trình chạy trên một máy của người khác, mà tất cả tài liệu của họ được định dạng theo mm/dd/yyyy ????

Bạn làm thế, khi chương trình thoát rồi mà không trả lại định dạng cũ cho người ta, lỡ người ta sơ ý, người ta nhập sai dữ liệu trong tài liệu khác thì sao?

Do vậy cần phải có một thao tác Reset lại format cho người ta khi chương trình thoát nữa thì mới tốt.
 
Ðề: Vấn đề ngày tháng trong Access

Nghe bác Phatnq2002 nói em thấy cũng có vẻ rắc rối vấn đề ngày tháng nhỉ.Mà theo bác nếu nhập theo kiểu yyyy/MM/dd thì có phải đặt Format trên Textbox Date là yyyy/MM/dd không ?

Mà theo em nghĩ nếu ngày hệ thống đang để là MM/dd/yyyy thì khi nhập dữ liệu nó vẫn bắt mình nhập theo kiểu đó chứ.
 
Ðề: Vấn đề ngày tháng trong Access

Nghe bác Phatnq2002 nói em thấy cũng có vẻ rắc rối vấn đề ngày tháng nhỉ.Mà theo bác nếu nhập theo kiểu yyyy/MM/dd thì có phải đặt Format trên Textbox Date là yyyy/MM/dd không ?

Mà theo em nghĩ nếu ngày hệ thống đang để là MM/dd/yyyy thì khi nhập dữ liệu nó vẫn bắt mình nhập theo kiểu đó chứ.

Thông lệ, có 2 hình thức format:
Display format: định dạng hiển thị giá trị hiện có của control
Edit format: định dạng giá trị khi nhập

Cái rắc rối ở chỗ là cái Display format. Nếu Edit format = Display format thì không vần đề gì, nhưng nếu khác là có chuyện như đã, đang bàn.

Tuy nhiên, như một ngầm định, hầu hết các ứng dụng khi nhập vào theo dạng yyyy/MM/dd (tức là Edit format) thì sẽ tự động chuyển dạng Display format theo đúng như hệ thống, hoặc theo Custom format (format do người dùng đặt).

Bạn có thể thử trên Excel hoặc Access để thấy.

Riêng với Excel, nếu định dạng hệ thống là MM/dd/yyyy, thì khi bạn nhập vào một giá trị ngày dạng dd/MM/yyyy nhưng có dd <= 12 thì Excel xem như đó là tháng. VD: nếu ta nhập vào ngày 12/02/2010 thì Excel hiểu là tháng 12 ngày 2 năm 2010. Nếu dd > 12 thì giá trị đó được hiểu là Text chứ không phải là Date. (Bằng chứng là giá trị đó được mặc định canh trái ô).

Với Access, nếu định dạng hệ thống là MM/dd/yyyy, thì khi bạn nhập vào textbox một giá trị ngày dạng dd/MM/yyyy nhưng có dd <= 12 thì Access xem như đó là tháng. Nhưng nếu dd > 12 thì Access tự động hiểu đó là ngày. VD: nếu nhập ngày 12/02/2010 thì Access hiểu là tháng 12 ngày 2 năm 2010. Nếu nhập ngày 13/02/2010 thì Access hiểu là tháng 2 ngày 13 năm 2010.

Như vậy, tùy theo tình huống, trường hợp thì nên dùng cách nào cho hợp lý và đơn giản.
 
Ðề: Vấn đề ngày tháng trong Access

Em nhập thử theo kiểu yyyy/mm/dd thì nó cũng đúng theo ý bác. Nhưng như thế em thấy nó cũng không hay lắm.Em muốn ''Việt Hóa" nó theo kiểu cả Display format và Edit format giống nhau là : dd/mm/yyyy.
Vậy có lẽ để tự người dùng muốn để kiểu nào thì họ tự chỉnh thôi vậy.
 
Ðề: Vấn đề ngày tháng trong Access

Cho mình hỏi chút ,đoạn code trên có tác dụng trên Windows 7 không .Sao mình chạy không thấy tác dụng.
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Kỹ thuật giải trình thanh tra BHXH

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top