Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Code tạo sổ phát sinh
#21
1/ Sory nếu có gì mạo phạm vì không biết bạn là "dân kế toán"
Trích dẫn:Có thể do mình ko phải là dân KToán, chưa hiểu về việc bút toán nên số liệu hơi lôm côm

2/ Bài của bạn có hướng giải quyết (theo yêu cầu của bạn nhé còn theo yêu cầu của kế toán không biết có đúng không nữa). Trong table DinhKhoan thêm một trường Xuly, type Yes/No. Thuật toán như sau :
- Cho vòng lặp i duyệt từ 1 đến 12 (theo tháng)
- Cho bien STT = 1
- Duyệt table tblDanhmuctaikhoan từ đầu đến cuối, đặt SoHieu = SHTK đang xét
- Duyệt recordset lấy từ table DinhKhoan có Month(Ngaychungtu) = i, TKNo = SoHieu, Xuly = False, Order by theo TKNo và TKCo. Nếu recordset có RecordCount > 0 thì ghi dữ liệu tìm thấy vào SoPhatsinh
có SCTGS = STT. Sau khi ghi xong Edit trường Xuly về True(để không duyêt lại nữa). Khi Recordcount > 0 thì cho STT tăng lên 1, ngược lại giữ nguyên
- Tương tự cho TKCo
- Kết thúc vòng lặp
- Cuối cùng Edit trường Xuly về False

Toàn bộ code trong modul như sau :

Mã PHP:
Option Compare Database
Option Explicit

Sub LapSo
()
    
Dim PSN As RecordsetPSC As Recordset
    Dim SO 
As Recordset
    Dim TK 
As Recordset
    Dim SoHieu  
As String
    Set SO 
CurrentDb.OpenRecordset("SoPhatSinh"dbOpenTable)
    If 
SO.RecordCount 0 Then
        DoCmd
.SetWarnings False
        DoCmd
.RunSQL "Delete * From Sophatsinh"
        
DoCmd.SetWarnings True
    End 
If
    
Set TK CurrentDb.OpenRecordset("tblDanhmuctaikhoan"dbOpenTable)
    
Dim STT As IntegerSTT 1
    Dim i 
As Integer
    
For 1 To 12
        TK
.MoveFirst
        
Do Until TK.EOF
            SoHieu 
TK!SoHieuTK
            Set PSN 
CurrentDb.OpenRecordset("Select * From Dinhkhoan Where Month(Ngaychungtu) =" " And TKNo = '" SoHieu "'" " And XuLy = False Order By TKNo, TKCo")
            If 
PSN.RecordCount 0 Then
                PSN
.MoveFirst
                
Do Until PSN.EOF
                    STT 
STT
                    SO
.AddNew
                    SO
!SCTGS STT
                    SO
!Ngay DateSerial(Year(PSN!Ngaychungtu), Month(PSN!Ngaychungtu) + 11) - 1
                    SO
!DienGiai PSN!DienGiai
                    SO
!TKNo SoHieu
                    SO
!TKCo PSN!TKCo
                    SO
!Tien PSN!Tien
                    SO
.Update
                    PSN
.Edit
                    PSN
!Xuly True
                    PSN
.Update
                    PSN
.MoveNext
                Loop
            End 
If
            If 
PSN.RecordCount 0 Then
                STT 
STT 1
            
Else
                
STT STT
            End 
If
            
Set PSC CurrentDb.OpenRecordset("Select * From Dinhkhoan Where Month(Ngaychungtu) =" " And TKCo = '" SoHieu "'" " And Xuly = False Order By TKNo, TKCo")
            If 
PSC.RecordCount 0 Then
                PSC
.MoveFirst
                
Do Until PSC.EOF
                    STT 
STT
                    SO
.AddNew
                    SO
!SCTGS STT
                    SO
!Ngay DateSerial(Year(PSC!Ngaychungtu), Month(PSC!Ngaychungtu) + 11) - 1
                    SO
!DienGiai PSC!DienGiai
                    SO
!TKCo SoHieu
                    SO
!TKNo PSC!TKNo
                    SO
!Tien PSC!Tien
                    SO
.Update
                    PSC
.Edit
                    PSC
!Xuly True
                    PSC
.Update
                    PSC
.MoveNext
                Loop
            End 
If
            If 
PSC.RecordCount 0 Then
                STT 
STT 1
            
Else
                
STT STT
            End 
If
            
TK.MoveNext
        Loop
    Next
    Call Update
    PSN
.ClosePSC.CloseSO.CloseTK.Close
End Sub

Sub Update
()
    
Dim rs As Recordset
    Set rs 
CurrentDb.OpenRecordset("Dinhkhoan"dbOpenTable)
    If 
rs.RecordCount 0 Then
        rs
.MoveFirst
        
Do Until rs.EOF
            
If rs!Xuly True Then
                rs
.Edit
                rs
!Xuly False
                rs
.Update
            End 
If
            
rs.MoveNext
        Loop
    End 
If
    
rs.Close
End Sub 

Bạn sử dụng file cũ nhé (File ở bài #1)
Thân mến

P/S : Gửi cho bạn file đã chỉnh sửa


File đính kèm
.zip   Data_Sophatsinh.zip (Kích cỡ: 51.18 KB / Tải về: 16)
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Minh Tiên
#22
Cảm ơn Xuân Thanh rất nhiều !
Chúc bạn luôn khỏe, thành công, hạnh phúc !
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
Reply
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
  [Help] Dòng chữ chạy trên form báo đến ngày sinh nhật tronghieu9792 1 121 20-10-16, 09:30 AM
Bài mới nhất: lamvankhanh
  [Lỗi] Lỗi code event! toancvp 18 1,034 07-07-16, 01:36 AM
Bài mới nhất: maidinhdan
  [Hỏi] Gõ dấu tiếng Việt trong code cannguyen 2 133 25-05-16, 02:41 PM
Bài mới nhất: cpucloi
  GIẢI THÍCH CÁC LỆNH KHI VIẾT CODE huynhbahoc 3 2,941 26-03-16, 09:19 PM
Bài mới nhất: phuc_thanhtien
  Hướng Dẫn Phát thuốc bảo hiểm y tế bằng file access thanhtruong 1 192 09-03-16, 11:47 AM
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ơ