Thuật toán về sửa CT = VBA.

  • Thread starter Thread starter ThuNghi
  • Ngày gửi Ngày gửi
Liên hệ QC

ThuNghi

Hãy cho rồi sẽ nhận!
Thành viên đã mất
Tham gia
16/8/06
Bài viết
3,808
Được thích
4,449
Nhờ các cao thủ giúp cho thuật tóan về sửa ct = VBA. Không phải mở sh Data ra mà sửa. Sửa từ Form or shForm
Ví dụ: Ngày 01/09/2007 ta có CT như sau:
Ngay...........SoCT...................SoCTGoc..........Mahang....Tien
01/09/2007..XBAN07/09/002...AA/07B00123456...MH01.......100
01/09/2007..XBAN07/09/002...AA/07B00123456...MH02.......200

1/Đến ngày 10/09/2007, xem lại thấy nhập thiếu 1 mặt hàng và sai 1 mặt hàng.
2/Muốn xem lại từ 01/09/2007 -> 10/09/2007 ta đã nhập những hóa đơn nào.
Các bạn giúp mình thuật tóan này nhé.
 
Nếu dùng A-Tools có công thức sau:
Mã:
=BS_SQL("SELECT NGAY, SOCT, SoCTGoc, SUM(TIEN) AS TTIEN
FROM NKC
WHERE NGAY BETWEEN #09/01/2007# AND #09/10/2007#
GROUP BY NGAY, SOCT, SoCTGoc
ORDER BY NGAY, SOCT")
Nếu dùng VBA:
Mã:
Sub DanhChungtu()
ChungCu = ""
i = Dong dau cua so NKC
Do While Not EOF(i)

If NKC.Cells(i, i_NGAY).Value >= date1 And NKC.Cells(i, i_NGAY).Value <= date2 Then
    ChungMoi = NKC.Cells(i, SOCT).Value
    If ChungMoi <> ChungCu Then
        
        'Viet chung tu vao bao cao:
        If ChungCu <> "" Then
            D = D + 1
            Baocao.Cells(D, D_SOCT).Value = ChungCu
            Baocao.Cells(D, D_NGAY).Value = NGAY
            Baocao.Cells(D, D_DIENGIAI).Value = Diengiai
            Baocao.Cells(D, D_TTIEN).Value = TTien
        End If
        
        'Nhan chung tu moi
        ChungCu = ChungMoi
        NGAY = NKC.Cells(i, i_NGAY).Value
        Diengiai = NKC.Cells(i, i_DIENGIAI).Value
        TTien = NKC.Cells(i, i_TIEN).Value
        
        GoTo END_LOOP
    End If
    
    'Cong so tien tren mot chung tu
    If ChungMoi = ChungCu And ChungCu <> "" Then
        TTien = TTien + NKC.Cells(i, i_TIEN).Value
    End If
    
End If
END_LOOP:
i = i + 1
Loop

End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Xin hỏi bạn, có nên làm 2 form nhập CT mới và form xem và sửa CT không.
Khi mở form nhập CT thì form này không có DL, nhập xong và lưu.
Còn khi mở form xem và sửa CT, sẽ hệ thống cho ta xem chứng từ đã nhập theo ngày (theo thứ tự nhập). Nhấn nút sửa, thì tóan bộ ct hiện hữu sẽ bị xóa và mở form nhập với số CT, ngày CT là của CT sẽ sửa. (lưu lại những thông số chính).
Do tôi thấy các phần mềm hay làm vậy. Vậy có nên làm vậy trên Excel?
 
Upvote 0
ThuNghi đã viết:
Xin hỏi bạn, có nên làm 2 form nhập CT mới và form xem và sửa CT không.
Khi mở form nhập CT thì form này không có DL, nhập xong và lưu.
Còn khi mở form xem và sửa CT, sẽ hệ thống cho ta xem chứng từ đã nhập theo ngày (theo thứ tự nhập). Nhấn nút sửa, thì tóan bộ ct hiện hữu sẽ bị xóa và mở form nhập với số CT, ngày CT là của CT sẽ sửa. (lưu lại những thông số chính).
Do tôi thấy các phần mềm hay làm vậy. Vậy có nên làm vậy trên Excel?

Nên làm thế bạn à, việc quản lý sẽ dễ hơn!
Việc sủa lại chứng từ logic phải rất chặt chẽ. Cùng một form nhập, khi thì nhập mới khi thì nhập sửa.

Quy trình để sửa một chứng từ:

1- Tìm số hiêu chứng từ (chọn từ một danh sách)
2- Mở chứng từ tìm được, cập nhật dữ liệu vào form "Chứng từ"
3- Đặt cờ hiệu "Sửa" cho "Chứng từ" (để khộng nhầm là nhập mới)
4- Sửa các thông tin
5- Kiểm tra các thông tin hợp lệ :Phải đảm bảo khi ghi sổ không xảy ra lỗi gì.
6- Lưu toàn bộ dữ liệu của chứng từ cũ vào một sheet "Temp" - Nháp/dự phòng
7- Xóa chứng từ cũ
8- Lưu chứng từ sửa
Nếu việc lưu không thành công: Xóa chứng từ đang ghi dở; Nhập lại dữ liệu từ sheet "Temp" (phải nhập lại vì đã xóa chứng từ ở bước 7 ).
 
Upvote 0
TuanVNUNI đã viết:
Nên làm thế bạn à, việc quản lý sẽ dễ hơn!
Việc sủa lại chứng từ logic phải rất chặt chẽ. Cùng một form nhập, khi thì nhập mới khi thì nhập sửa.

Quy trình để sửa một chứng từ:

1- Tìm số hiêu chứng từ (chọn từ một danh sách)
2- Mở chứng từ tìm được, cập nhật dữ liệu vào form "Chứng từ"
3- Đặt cờ hiệu "Sửa" cho "Chứng từ" (để khộng nhầm là nhập mới)
4- Sửa các thông tin
5- Kiểm tra các thông tin hợp lệ :Phải đảm bảo khi ghi sổ không xảy ra lỗi gì.
6- Lưu toàn bộ dữ liệu của chứng từ cũ vào một sheet "Temp" - Nháp/dự phòng
7- Xóa chứng từ cũ
8- Lưu chứng từ sửa
Nếu việc lưu không thành công: Xóa chứng từ đang ghi dở; Nhập lại dữ liệu từ sheet "Temp" (phải nhập lại vì đã xóa chứng từ ở bước 7 ).

Cảm ơn bác nhiều, làm form khổ vậy đấy. Thằng sử dụng thì sướng, thằng làm mới khổ.

Nhìn thì chỉ thấy 8 bước vậy thôi, tuy nhiên để giải quyết từng vấn đề cũng lại là một quá trình.

Thân!
 
Upvote 0
Mr Okebab đã viết:
Cảm ơn bác nhiều, làm form khổ vậy đấy. Thằng sử dụng thì sướng, thằng làm mới khổ.

Nhìn thì chỉ thấy 8 bước vậy thôi, tuy nhiên để giải quyết từng vấn đề cũng lại là một quá trình.

Thân!

Đúng vậy. Trong viết ứng dụng, thằng sử dụng càng nhàn bao nhiêu thì thằng thiết kế càng vất vả bấy nhiêu:-= . Khi viết PM Kế toán, tớ mất một nửa thời gian cho thiết kế form nhập chứng từ. Form nhập chứng từ ngoài sự tiện dụng nó còn làm nghiệp vụ về chuyên môn nữa. Khi làm tay, kế toán viết một hóa đơn không cho phép viết sai, với phần mềm thì nhập chứng từ cũng tuyệt đối không được sai và lỗi! Dữ liệu gốc của người kế toán là quan trọng nhất, nó mà làm sao thì họ chửi thằng thiết kế mất mặt +-+-+-+ .

Ví như việc xây nhà, cái móng là quan trọng, sẽ mất nhiều thời gian sức lực và chi phí nhất. Nói chung viết ứng dụng cứ phải kiên nhẫn để xây dựng nền tảng thật tốt, có được nền tảng rồi thì sau này an nhàn lắm--=-- .
 
Upvote 0
TuanVNUNI đã viết:
Đúng vậy. Trong viết ứng dụng, thằng sử dụng càng nhàn bao nhiêu thì thằng thiết kế càng vất vả bấy nhiêu:-= . Khi viết PM Kế toán, tớ mất một nửa thời gian cho thiết kế form nhập chứng từ. Form nhập chứng từ ngoài sự tiện dụng nó còn làm nghiệp vụ về chuyên môn nữa. Khi làm tay, kế toán viết một hóa đơn không cho phép viết sai, với phần mềm thì nhập chứng từ cũng tuyệt đối không được sai và lỗi! Dữ liệu gốc của người kế toán là quan trọng nhất, nó mà làm sao thì họ chửi thằng thiết kế mất mặt +-+-+-+ .

Ví như việc xây nhà, cái móng là quan trọng, sẽ mất nhiều thời gian sức lực và chi phí nhất. Nói chung viết ứng dụng cứ phải kiên nhẫn để xây dựng nền tảng thật tốt, có được nền tảng rồi thì sau này an nhàn lắm--=-- .

- Móng nhà : Cấu trúc CSDL
- Trộn xi măng, cát đá : Form nhập dữ liệu đầu vào

Đời phụ hồ sợ nhất là giai đoạn này.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom