Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Mã Số Hóa Đơn Tăng Dần theo Ngày - Tháng - Năm
#1
Xin chào Diễn đàn!
Tôi có một vướng mắt về Mã số Hóa Đơn trong Access như sau:
- Ví dụ: MaHD, Ngay, DienGiai,...
Tôi muốn, khi nhấn nút "Ghi", thì MaHD sẽ tự điền : 20171101HD0001, phát sinh thêm thì sẽ là: 20171101HD0002, 20171101HD0003, 20171101HD0004, v.v... đối với các hóa đơn phát sinh trong ngày 01/11/2017. Nếu ngày 09/11/2017 sẽ là: 20171109HD0001, 20171109HD0002, 20171109HD0003,...
Nghĩa là: trong một ngày có nhiều phiếu nhập, thì phiếu nhập đó tự đánh số từ 1 - 2 - 3,....; qua ngày hôm sau, thì tính lại từ đầu.
Nếu được, thì cho tôi xin code: "qua ngày tính lại từ đầu", "qua tháng tính lại từ đầu", "qua năm tính lại từ đầu".

Xin chân thành cảm ơn!
Chữ ký của pherotao "Hạnh phúc ở đâu... biết tìm đâu,
Hồng trần là thế giới muôn màu,
Hội đủ nhân duyên... thời sinh quả,
Kết thúc... cũng là lúc bắt đầu".
Những người đã cảm ơn
#2
Bạn không chịu search trước khi hỏi
http://thuthuataccess.com/forum/thread-9993.html
http://thuthuataccess.com/forum/thread-127.html
http://thuthuataccess.com/forum/thread-9777.html
... và còn nhiều nữa. big green
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


ღღღღღTài sản của cpucloi (View All Items) ღღღღღ
Những người đã cảm ơn
#3
(02-11-17, 04:50 PM)cpucloi Đã viết: Bạn không chịu search trước khi hỏi
http://thuthuataccess.com/forum/thread-9993.html
http://thuthuataccess.com/forum/thread-127.html
http://thuthuataccess.com/forum/thread-9777.html
... và còn nhiều nữa. big green

Cám ơn bạn đã quan tâm trả lời. Nhưng ý tôi là:
1. Tôi có 3 trường, gồm: 'Mã HĐ', 'Ngày', 'Diễn Giải'. Tôi muốn Mã HĐ tự động điền như sau:
- Phát sinh Nhập ngày 01/11/2017, có tất cả 4 phiếu, thì 'Mã HĐ' là:
N20171101HH0001, N20171101HH0002, N20171101HH0003, N20171101HH0004;
- Phát sinh Nhập ngày 05/11/2017, có tất cả 2 phiếu, thì 'Mã HĐ' là:
N20171105HH0001; N20171105HH0002;
- Phát sinh Nhập ngày 14/11/2017, có tất cả 3 phiếu, thì 'Mã HĐ' là:
N20171114HH0001, N20171114HH0002, N20171114HH0003;
v.v....
Tức là, qua ngày mới thì 'Mã HĐ' sẽ tính lại từ đầu. Nhưng vì lí do nào đó, đã qua ngày 18/11/2017, tôi mới nhập thêm 02 hóa đơn Nhập vào ngày 05/11/2017. Vì vậy, sẽ phát sinh thêm 02 hóa đơn với mã là: N20171105HH003, N20171105HH004.
2. Ở trên Form, 'Mã HĐ' sẽ để trống (để code tự điền), 'Ngày' mặc định là Date(), nhưng cũng có thể nhập tay khi mình muốn nhaaph ngày khác (ngày cũ hơn).

Xin chân thành cảm ơn!
Chữ ký của pherotao "Hạnh phúc ở đâu... biết tìm đâu,
Hồng trần là thế giới muôn màu,
Hội đủ nhân duyên... thời sinh quả,
Kết thúc... cũng là lúc bắt đầu".
Những người đã cảm ơn
#4
Không ai giúp mình hết................. huhuhu............................
Chữ ký của pherotao "Hạnh phúc ở đâu... biết tìm đâu,
Hồng trần là thế giới muôn màu,
Hội đủ nhân duyên... thời sinh quả,
Kết thúc... cũng là lúc bắt đầu".
Những người đã cảm ơn
#5
(04-11-17, 11:13 PM)pherotao Đã viết: Không ai giúp mình hết................. huhuhu............................

Bạn cpuloi đã gợi ý bạn 3 cái link trên đã đầy đủ các kiểu tạo STT tăng dần rồi sao bạn không bắt tay vô làm thử mà ngồi đó than thở? 
- Tự làm trước, chỗ nào không chạy thì post lên mọi người hướng dẫn tiếp.
- Về phần muốn nhập lại hóa đơn các ngày trước đó thì trong các hàm tạo STT ở mấy link trên, bạn thay thế hàm Date() trong đó thành cái textbox chứa ngày mà bạn gõ tay vào là được rồi.
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) ღღღღღ
Những người đã cảm ơn maidinhdan
#6
Bạn cpuloi đã gợi ý bạn 3 cái link trên đã đầy đủ các kiểu tạo STT tăng dần rồi sao bạn không bắt tay vô làm thử mà ngồi đó than thở? 
- Tự làm trước, chỗ nào không chạy thì post lên mọi người hướng dẫn tiếp.
- Về phần muốn nhập lại hóa đơn các ngày trước đó thì trong các hàm tạo STT ở mấy link trên, bạn thay thế hàm Date() trong đó thành cái textbox chứa ngày mà bạn gõ tay vào là được rồi.
[/quote]

Không được bạn ơi. Mình đã thử đủ kiểu. Như mình đã nói: Số Hóa Đơn phải tăng dần theo ngày.
Ví dụ:
- Tháng 10, có PHIẾU NHẬP phát sinh:
   + ngày 03, có 05 phiếu: 'N 2017 10 03 001', 'N 2017 10 03 002', 'N 2017 10 03 003', 'N 2017 10 03 004', 'N 2017 10 03 005';
   + ngày 13 có 03 phiếu: 'N 2017 10 13 001', 'N 2017 10 13 002', 'N 2017 10 13 003';
   + ngày 30 có 1 phiếu: 'N 2017 10 30 001'.
- Tháng 11, có PHIẾU NHẬP phát sinh:
   + ngày 09, có 03 phiếu: 'N 2017 11 09 001', 'N 2017 11 09 002'; 'N 2017 11 09 003';
   + ngày 28, có 04 phiếu: 'N 2017 11 28 001', 'N 2017 11 28 002', 'N 2017 11 28 003', 'N 2017 11 28 004'
   v.v....
Trong quá trình kiểm tra, thấy rằng:
- tháng 10, có thêm 3 phiếu mà chưa nhập lên máy: lần lượt: 01 phiếu ngày 14/10/2017; 02 phiếu ngày 18/10/2017;
- tháng 11, vào ngày 09/11/2017, có phiếu 'N 2017 11 09 002' phải sửa lại nhập cho 30/10/2017. Vì vậy mong muốn là: 'N 2017 11 09 002' sẽ thành 'N 2017 10 30 002' (lúc đầu 30/10 chỉ có 1 phiếu, giờ tăng lên 2 phiếu); còn 09/11 từ 03 giảm còn 2: 'N 2017 11 09 003' sẽ tự điều chỉnh thành 'N 2017 11 09 002';

Trong quá trình làm Form, mình có thêm các nút: Thêm - Sửa - Ghi - Không để phục vụ nhập liệu.


Xin mọi người giúp mình với! Xin cảm ơn!
Chữ ký của pherotao "Hạnh phúc ở đâu... biết tìm đâu,
Hồng trần là thế giới muôn màu,
Hội đủ nhân duyên... thời sinh quả,
Kết thúc... cũng là lúc bắt đầu".
Những người đã cảm ơn
#7
Bạn đưa cái dữ liệu mẫu và những gì bạn đã làm lên đây, mọi người xem sửa cho nhanh.
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) ღღღღღ
Những người đã cảm ơn
#8
Bạn nghiên cứu UnBround form nhé
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


ღღღღღTài sản của cpucloi (View All Items) ღღღღღ
Những người đã cảm ơn
#9
(07-11-17, 07:35 PM)ongke0711 Đã viết: Bạn đưa cái dữ liệu mẫu và những gì bạn đã làm lên đây, mọi người xem sửa cho nhanh.

STT theo Ngày
STT theo Tháng
Chữ ký của pherotao "Hạnh phúc ở đâu... biết tìm đâu,
Hồng trần là thế giới muôn màu,
Hội đủ nhân duyên... thời sinh quả,
Kết thúc... cũng là lúc bắt đầu".
Những người đã cảm ơn
#10
(07-11-17, 05:11 PM)pherotao Đã viết:    v.v....
Trong quá trình kiểm tra, thấy rằng:
- tháng 10, có thêm 3 phiếu mà chưa nhập lên máy: lần lượt: 01 phiếu ngày 14/10/2017; 02 phiếu ngày 18/10/2017;
- tháng 11, vào ngày 09/11/2017, có phiếu 'N 2017 11 09 002' phải sửa lại nhập cho 30/10/2017. Vì vậy mong muốn là: 'N 2017 11 09 002' sẽ thành 'N 2017 10 30 002' (lúc đầu 30/10 chỉ có 1 phiếu, giờ tăng lên 2 phiếu); còn 09/11 từ 03 giảm còn 2: 'N 2017 11 09 003' sẽ tự điều chỉnh thành 'N 2017 11 09 002';

Trong quá trình làm Form, mình có thêm các nút: Thêm - Sửa - Ghi - Không để phục vụ nhập liệu.

Vấn đề thay đổi lại mã số HĐ này của bạn đơn giản nhưng một vấn đề quan trong hơn nữa bạn phải nghĩ đến khi thực hiện việc “Sửa” mã HĐ của nghiệp vụ này là nó có ảnh hưởng đến dữ liệu báo cáo kế toán của bạn không? tính đúng đắn của qui trình, nguyên tắc nhập liệu dữ liệu quan trọng như hóa đơn nhập xuất này. 
Bạn cần tính đến:
- Mã HD này sẽ làm khóa ngoại cho các table khác liên quan. khi sửa đổi nó cũng sẽ ảnh hưởng. Nếu bạn đã thiết lập Relationship cho Mã HD này với các table khác là  “Cascading update…” thì ok.
- Mã HD tạo tự động dùng để định danh (primary key) một dòng (1 record) để phân biệt các dòng khác và thường là không cho sửa đổi mà bây giờ bạn lại muốn sửa đổi hàng loạt các Primary Key [mã HD] như hóa đơn tháng 11 trong ví dụ của bạn. Như vậy không đảm bảo tính toàn vẹn dữ liệu. Vd: Tháng 11 bạn đã làm nghiệp vụ thanh toán cho nhà cung cấp các Mã HD đó rồi, in chứng từ, lưu trữ kế toán v.v.. Sau đó tự nhiên phát sinh sửa mã HD hàng loạt vậy mấy chứng từ đã xử lý rồi sai thông tin hết…Do vậy nếu Mã HD đã có phát sinh liên quan đến dữ liệu, nghiệp vụ khác, bạn sửa nó sẽ ảnh hưởng đến tính nhất quán của dữ liệu. Thường thì Kế toán không cho nghiệp vụ nhập ngược trở về tháng trước sau khi đã khóa sổ. Tốt nhất cho trường hợp sửa mã HD về tháng khác thì chỉ cập nhật nó thôi, các Mã HD đã tồn tại của tháng đó rồi, không được thay đổi.
- Một vấn đề bạn phải tính tới nữa khi code cho việc sửa Mã HD này - code cho nút [Sửa]: Phải xét xem có sửa Field  [tháng] không, nếu có thì chạy code cập nhật lại mã HD, nếu không thì chỉ cập nhật thông thường.

Code tạo số tt tăng dần trong demo của bạn cũng hay là nó tự tìm nhưng số nào chưa có (có thể là nhỏ hơn số tt đã cấphiện tại) để cấp lại. Thay vì dùng vòng lặp while... trong Recordset thì dùng Dlookup sẽ nhanh hơn.

Mã PHP:
' tim xem soCT nay da co hay chua'
[/font]
   k 1
   Do Until k 
0
       vsoct 
Right("000" i3)
       k Len(Nz(DLookup("SoChungTu""tblxuatnhap""[NgayCT]=#" Format(Me.txtngayct"mm/dd/yyyy") & "# AND SoChungTu ='" vsoct "'"), ""))
       i 1
   Loop

   vrs
.Close
   Set vdata 
Nothing

[font=Tahoma]   SoChungTu vsoct 
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) ღღღღღ
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
  [Hỏi] Click vào button mở form mới ngay dưới button đó mrsiro 1 159 22-09-18, 12:04 PM
Bài mới nhất: lmthu
  [Help] Kết quả tính toán theo dòng record tương ứng tvn_hut 5 554 02-06-18, 03:24 PM
Bài mới nhất: tvn_hut
  Xuất dữ liệu từ Access ra Excel theo điều kiện Minh Tiên 13 1,158 25-05-18, 07:06 PM
Bài mới nhất: ongke0711
  [Hỏi] Mã Số Nhân Viên Tự Động Tăng pherotao 9 1,004 24-12-17, 02:00 AM
Bài mới nhất: pherotao
Rainbow [Hàm] Tách file và đặt tên theo ý muốn teutamteu 3 497 18-12-17, 10:49 PM
Bài mới nhất: maidinhdan

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ơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line