-
Hàm DateAdd
hoangdieuthuy82 > 28-03-23, 10:01 PM
Chào các anh/chị/em.
Mình mới dấn thân vào con đường tự học access, còn rất nhiều bỡ ngỡ.
Mình đang thực hành truy vấn trong query từ các hàm đơn giản nhất.
Với hàm DateAdd, mình đang thực hành trên file này
https://drive.google.com/file/d/13PnTEUo...share_link
Mình không biết lỗi ở đâu, nhờ các anh/chị/em chỉ dẫn -
RE: Hàm DateAdd
ongke0711 > 29-03-23, 01:38 AM
(28-03-23, 10:01 PM)hoangdieuthuy82 Đã viết: Chào các anh/chị/em.
Mình mới dấn thân vào con đường tự học access, còn rất nhiều bỡ ngỡ.
Mình đang thực hành truy vấn trong query từ các hàm đơn giản nhất.
Với hàm DateAdd, mình đang thực hành trên file này
https://drive.google.com/file/d/13PnTEUo...share_link
Mình không biết lỗi ở đâu, nhờ các anh/chị/em chỉ dẫn
Bạn phải share full quyền cái file thì mới download được nhé. -
RE: Hàm DateAdd
hoangdieuthuy82 > 29-03-23, 03:18 AM
Ôi mình ẩu quá làm mất time của mọi người. Thôi mình tả luôn chứ show cái file có vài thông tin ra xấu hổ lắm.
Table1 có trường id (autonumber) và trường HomNay (date/time)
Query ngoài trường [HomNay] mình thêm trường [NgayMai] mình gõ công thức NgayMai: DateAdd("d", 1 , [HomNay]) thì bị báo lỗi là:
"The you entered contains invalid syntax"
You may have entered operand without an operator"
Mình thử các hàm khác về ngày tháng đều được nhưng đến hàm này thì chẳng biết bị sao. -
RE: Hàm DateAdd
ongke0711 > 29-03-23, 08:01 AM
Bạn xem lại dấu phân cách trong hệ thống dùng dấu phẩy hay chấm phẩy? -
RE: Hàm DateAdd
hoangdieuthuy82 > 29-03-23, 01:38 PM
Các hàm khác mình dùng dấu "," là dấu phân cách vẫn cho ra kết quả bình thường bạn à. Mình xin gửi file kèm theo, bạn xem giúp mình với.
https://drive.google.com/file/d/1TGgujWb...share_link -
RE: Hàm DateAdd
ongke0711 > 29-03-23, 02:05 PM
(29-03-23, 01:38 PM)hoangdieuthuy82 Đã viết: Các hàm khác mình dùng dấu "," là dấu phân cách vẫn cho ra kết quả bình thường bạn à. Mình xin gửi file kèm theo, bạn xem giúp mình với.
https://drive.google.com/file/d/1TGgujWb...share_link
Trên máy tôi chạy bình thường mà.
Mã PHP:NgayMai: DateAdd("d",1,[HomNay])
-
RE: Hàm DateAdd
hoangdieuthuy82 > 29-03-23, 04:06 PM
Mình đã setup lại giống bạn và thử lại thì được rồi. Cảm ơn bạn nhiều.
Add xóa giúp mình chủ đề này để forum đỡ bị loãng nhé. Mình cảm ơn. -
RE: Hàm DateAdd
tranthanhan1962 > 29-03-23, 05:35 PM
Tôi nghĩ rằng lỗi syntax không nằm ở chỗ dấu phân cách bởi vì bạn nói rằng các hàm khác bạn sử dụng dấu "," vẫn OK. Vã lại nếu toàn bộ dấu phân cách đã dùng dấu "," thì khi đổi List separator trong format thành ";" thì access cũng sẽ tự động đổi "," thành ";" trong các function. Có thể lỗi ở đây nằm ngay từ khóa hàm "DateAdd", vì hàm này không có trong thư viện office. Bạn có thể kiểm tra bằng cách mở Object Browse rồi gõ Tìm kiếm nếu không thấy hàm này thì chắc chắn bộ cài office của bạn đã bị lỗi. bạn phải gỡ sạch office cũ, tìm bộ cài khác cài lại office sẽ không còn lỗi nữa. Trường hợp cài lại nhưng hàm này vẫn không được tích hợp vào thư viện office có khi bạn phải cần cài lại cả windows. Trường hợp một số function không được tích hợp vào thư viện office không phải hiếm khi sử dụng những bản cài đặt windows và office trôi nỗi không được kiểm chứng. Nhất là hiện nay khó tìm được bản cài chuẩn office 2003. Nếu bạn cần cài office 2003, bạn có thể hỏi xin anh em trên forum 1 bản chuẩn nhất để cài còn không thì chuyển qua office cao hơn. Phiên bản office 2019 trở lên chạy Ok với cả 2 loại tập tin access accbd và mdb của access 2003.
-
RE: Hàm DateAdd
hoangdieuthuy82 > 29-03-23, 07:25 PM
Đúng như bạn nói là lỗi không phải do List separator vì khi mình check setup number formats trong Region theo gợi ý của bạn @Ongke0711 thì list separator đã là dấu ",". Mình cẩn thận đổi lại decimal symbol sang dấu "," để cho giống hệt bạn @Ongke0711, au đó lập lại hàm DateAdd trên file access thì tự nhiên thấy được.
Mình vẫn thấy không phục vì rõ ràng là trước đó mình làm các hàm khác vẫn bình thường. Bây giờ thì mình đổi decimal symbol về dấu "." như ban đầu thì lệnh DateAdd cũng vẫn chạy được (trộm vía)
Mình đang dùng office 2016 có bản quyền, mình check Object browse thấy trong danh sách hàm có hàm DateAdd.
Nếu sau mà bị lỗi tiếp ở hàm khác chắc sẽ phải tính phương án cài lại office mất chứ mới học access mà làm cái hàm đơn giản nhất mà bị lỗi kiểu này đúng là nhụt hết cả chí.
Dù sao cũng cảm ơn các bạn đã rất nhiệt tình chỉ dẫn mình và không cho mình là ngớ ngẩn -
RE: Hàm DateAdd
tranthanhan1962 > 30-03-23, 12:08 AM
(29-03-23, 07:25 PM)hoangdieuthuy82 Đã viết: Đúng như bạn nói là lỗi không phải do List separator vì khi mình check setup number formats trong Region theo gợi ý của bạn @Ongke0711 thì list separator đã là dấu ",". Mình cẩn thận đổi lại decimal symbol sang dấu "," để cho giống hệt bạn @Ongke0711, au đó lập lại hàm DateAdd trên file access thì tự nhiên thấy được.
1/Lỗi syntax là lỗi cú pháp gồm nhiều thứ, sai tiêu chuẩn câu lệnh, dư, thiếu, sai từ khóa, thiếu thư viện hàm, lệnh, trong đó có List separator. Về phần List sseparator, nếu bạn thiết đặt đúng List separator trong format region thì khi bạn thay đổi List separator nó sẽ tự động thay đổi theo còn khi thiết đặt sai nó sẽ không thay đổi thiết đặt của bạn trừ khi bạn thay đổi format theo nó, lúc đó nó sẽ nhận đúng cú pháp. Tất nhiên, sau khi nhận đúng cú pháp nó sẽ bắt đầu thay đổi theo đúng thiết đặt.
Mình vẫn thấy không phục vì rõ ràng là trước đó mình làm các hàm khác vẫn bình thường. Bây giờ thì mình đổi decimal symbol về dấu "." như ban đầu thì lệnh DateAdd cũng vẫn chạy được (trộm vía)
Mình đang dùng office 2016 có bản quyền, mình check Object browse thấy trong danh sách hàm có hàm DateAdd.
Nếu sau mà bị lỗi tiếp ở hàm khác chắc sẽ phải tính phương án cài lại office mất chứ mới học access mà làm cái hàm đơn giản nhất mà bị lỗi kiểu này đúng là nhụt hết cả chí.
Dù sao cũng cảm ơn các bạn đã rất nhiệt tình chỉ dẫn mình và không cho mình là ngớ ngẩn
Dễ thấy nhất trong việc sai List separator là khi bạn gõ xong đoạn mã có List separatornos sẽ báo lỗi và khi bạn OK con trỏ sẽ chạy thẳng đến và quét đen ký hiệu List separator và bạn sẽ không làm gì được đến khi gõ đúng. Mới học thì bạn không nên gõ hàm bằng tay mà nên vào Built-In Functions để gọi hàm cho chắc ăn:
Ngay cả chính tôi, cũng nhiều khi phải dùng phương pháp này vì có nhiều từ khóa không thể nhớ nỗi, bạn cũng thấy khi gọi hàm các tham số và List separator cũng được access thiết đặt sẳn bạn chỉ có nhiêm vụ thay các giá trị vào rất sướng.
Còn về bản quyền của windows và office thì chỉ có key chính thức của Microsoft bán lẻ thì mới chắc chắn nhưng key này rất đắt, còn các loai key khác thì không chắc lắm nhất là mấy cái key bán với giá vài trăm ngàn trên mạng. Tôi nhớ không nhầm giá key office 2016 pro lúc mới ra có giá hơn 6.000.000. Key office 2019 pro > 9.000.000. Còn office 2021 pro (mới nhất) giá 12.099.000. Tôi cũng từng sử dụng loai key mấy trăm ngàn trên mạng nhưng sử dụng một thời gian thì bị mất activate. Còn mấy loại key cr@ck thì đừng nói làm gì và cũng đừng nghĩ rằng sau khi activate xong không bị lỗi. Buồn cười nhất là tôi thấy chuyện rao bán key office 365 vĩnh viễn với giá từ 180.000 đến 350.000. Nên nhớ hiện nay không có cái gọi microsoft office 365 mà chỉ có microsoft 365 (không có từ office trong đó) và cái microsoft 365 này không có bán key vĩnh viễn mà chỉ cho thuê từng năm.
Một điểm nữa là file bạn gửi là mdb. Chính xác là office 2016 không tạo được file mdb mà chỉ tạo được file accdb. Trường hợp bạn tải office 365 trong bộ microsoft 365 dùng key trên mạng hoặc cr@ck để activate thì nó sẽ báo là office 2016 (nhưng office 2016 này lại có tính năng và giao diện giống như ofice 2021 nên có thể tạo tập tin mdb trên access này như 2019-2021). Cũng có mấy học sinh của tôi sử dụng loại này tôi chưa kiểm chứng nhưng nghe tụi nó nói lại xài cũng OK.