Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Cách tạo truy vấn ra toàn bộ các ngày trong khoảng thời gian
#1
Các bác cho em hỏi một chút ạ.

Em có trường hợp này: Không có table, chỉ có form, trên form có 2 ngày [txtNgayDau] và [txtNgayCuoi]
Làm sao để tạo được một Query liệt kê ra toàn bộ các ngày nằm giữa [txtNgayDau] và [txtNgayCuoi] ạ?

Em đã tính đến trường hợp làm luôn 1 table liệt kê tất cả các ngày trong khoảng 50 năm (cho chắc) và sau đó dùng between trong query, nhưng làm thế có vẻ ngố quá nên muốn các bác tư vấn cách khác big green.
Chữ ký của toancvp Nếu tất cả đường đời đều trơn láng    
Có thể nào ta nhận ra ta Bat
Reply
Những người đã cảm ơn
#2
(08-09-16, 02:41 PM)toancvp Đã viết: Các bác cho em hỏi một chút ạ.

Em có trường hợp này: Không có table, chỉ có form, trên form có 2 ngày [txtNgayDau] và [txtNgayCuoi]
Làm sao để tạo được một Query liệt kê ra toàn bộ các ngày nằm giữa [txtNgayDau] và [txtNgayCuoi] ạ?

Em đã tính đến trường hợp làm luôn 1 table liệt kê tất cả các ngày trong khoảng 50 năm (cho chắc) và sau đó dùng between trong query, nhưng làm thế có vẻ ngố quá nên muốn các bác tư vấn cách khác big green.

1/ Query là bộ hỏi truy suất từ table, nhưng bạn nói "Không có table, chỉ có form" thì truy suất giống gì  007 ???. Xây dựng cơ sở dữ liệu luôn luôn bắt đầu bằng table và các quan hệ. Không có table sẽ không có cơ sở dữ liệu. (tất nhiên có những ứng dụng không có table, nhưng đó là việc mượn access để làm chuyện khác  007 )
2/ Chỉ cần vài ba record cũng tạm đủ để xử lý query cho công việc chứ không cần 50 năm đâu bạn. Function Operators [between] là function chính thức của VBA cho phép tìm trong khoảng. Không ai bị xem là ngố khi xử dụng chính xác công thức cả.
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn maidinhdan , toancvp
#3
cái này bạn có thể dùng vòng lặp for cũng được. nhưng mình chưa hiểu bạn làm cái gì mà ko có table?
Chữ ký của zinzin8x zinzin8x,gia nhập Thủ Thuật Access từ 19-01 -16.
Reply
Những người đã cảm ơn toancvp
#4
Access có nhiều hàm xử lý ngày tháng rất hay, bạn chỉ cần phối hợp dùng nó là đuợc rồi cần gì tạo 50 nắm. Bài toán đằng sau câu hỏi của bạn là gì?  Đưa toàn bộ lên mọi người đóng góp giải pháp cho.
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 toancvp
#5
Ôi em bận quá, không rep các bác ngay được ạ.

Bài toán của em chính xác chỉ đơn giản như vậy thôi ạ,
Em đang cần tạo query để truy xuất toàn bộ các ngày nằm giữa 1 khoảng nào đó do người dùng điền vào. Còn các thông tin khác sẽ lấy từ form. Cuối cùng là dùng để append query đó vào một table khác.

@ bác tranthanhan1962 ơi, ý em không phải là ngố khi dùng công thức, ý em là cách em nghĩ phải làm cái table liệt kê toàn bộ ngày của 50 năm, như thế thì trông ngố quá.

Em đang rất cần cách mà các bác nói, là chỉ cần vài 3 record thôi cũng được ấy ạ, mà nếu có được cách ko cần cả tạo table nữa thì lại càng thích big green,

Em đã thử đọc mấy bài bằng tiếng Anh, mặc dù chưa hiểu lắm, nhưng thử copy vào SQL view thì Access ko đồng ý, hình như đại khái ý của Access là phải dùng SELECT, WHERE, ... mới đúng, còn cái code em đưa vào không được. Ví dụ như declare chẳng hạn, Access cũng ko chấp nhận.

Các bác chỉ hướng cho em với, làm thế nào để không phải tạo cái table 50 năm ấy, trông thế buồn cười chết.
Chữ ký của toancvp Nếu tất cả đường đời đều trơn láng    
Có thể nào ta nhận ra ta Bat
Reply
Những người đã cảm ơn
#6
Cái bạn nói là giải pháp của bạn chứ không phải bài toán (vấn đề) cần xử lý.
Bạn đưa ra giải pháp là: dùng query truy xuất tất cả các ngày do người dùng nhập vào... sau đó Append...
Bài toán có thể là (ví dụ): tôi muốn liệt kê tất cả các giao dịch mua bán trong khoảng thời gian từ A đến B hoặc...v.v..
Nếu biết bài toán của bạn có thể người khác sẽ đề xuất cách làm khác, không phải dùng query truy xuất từng ngày....

Nếu bạn muốn table 50 năm, tôi cho bạn 1 cái table Master Date 45 năm (1975 - 2020) với tất cả các field liên quan đến ngày tháng để xử lý. File này không cũng chiếm hết 2.4M rồi đấy.
[Hình: MasterDates.png]

link: http://www.mediafire.com/download/dxaayn...rDates.mdb
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 maidinhdan , toancvp
#7
Bác ơi, chính xác là người dùng cần 1 form để nhập hàng loạt như vậy bác ạ, họ muốn chỉ nhập ngày đầu và ngày cuối thôi, thay vì nhập 10 ngày liên tiếp nội dung giống nhau. Bài toán của em cũng chỉ có vậy, tạo thêm 1 form khác rồi append vào cái table dữ liệu,
Chữ ký của toancvp Nếu tất cả đường đời đều trơn láng    
Có thể nào ta nhận ra ta Bat
Reply
Những người đã cảm ơn
#8
(09-09-16, 11:40 PM)toancvp Đã viết: Bác ơi, chính xác là người dùng cần 1 form để nhập hàng loạt như vậy bác ạ, họ muốn chỉ nhập ngày đầu và ngày cuối thôi, thay vì nhập 10 ngày liên tiếp nội dung giống nhau. Bài toán của em cũng chỉ có vậy, tạo thêm 1 form khác rồi append vào cái table dữ liệu,

Nếu vậy bạn viết code Append thẳng vô table luôn.
Vd: nhập nội dung giống nhau vào các Textbox1, Textbox2, Textbox3, NgayBD, NgayKT
------------------------
Dim rs As DAO.Recordset
Dim ngayxl As Date

Set rs = CurrentDb.OpenRecordSet ("Table cần Append", dbOpenDynaset)
ngayxl=Me.NgayBD
Do Until ngayxl=Me.NgayKT
   rs.Addnew
   rs!Ngay = ngayxl
   rs!Field1 = Me.Textbox1
   rs!Field2 = Me.Textbox2
   rs!Field3 = Me.Textbox3
   rs.Update
   ngayxl = ngayxl + 1
Loop

----------------------
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 toancvp , maidinhdan
#9
Em chưa biết cách viết code VBA can thiệp thẳng vào table nên phải làm thế bác ạ, em cám ơn bác nhiều nhé big green,
Chữ ký của toancvp Nếu tất cả đường đời đều trơn láng    
Có thể nào ta nhận ra ta Bat
Reply
Những người đã cảm ơn
#10
Code ongke0711 viết trên form mà
Chữ ký của cpucloi Tôi chỉ biết mỗi một điều là những điều tôi biết được còn quá ít 021
Gmail: cgiahuy13@gmail.com


ღღღღღTài sản của cpucloi (View All Items) ღღღღღ
Reply
Những người đã cảm ơn toancvp


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Lọc Hợp đồng theo điều kiện ngày tháng vuthaiha90 7 289 28-11-16, 05:31 PM
Bài mới nhất: vuthaiha90
  [Hỏi] cách lọc nhân viên làm việc ở 2 phòng ban? hoanghai902 1 55 27-11-16, 04:49 PM
Bài mới nhất: Noname
  [Hỏi] cách lọc giá trị trên 2 trường khác nhau? hoanghai902 1 68 18-11-16, 09:27 AM
Bài mới nhất: vulhu06
  [Hỏi] Tính số ngày công tác trangdv.pchg 25 579 13-11-16, 01:20 PM
Bài mới nhất: ongke0711
  [Hỏi] Sự khác nhau của Like và "=" trong các hàm D toancvp 6 202 10-11-16, 12:01 AM
Bài mới nhất: toancvp

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ơ