Trang 1 của 5 123 ... CuốiCuối
Kết quả 1 đến 10 của 42

Chủ đề: ADO: Kết nối Excel Database cho công việc kế toán

  1. #1
    khamnamkhoa Guest
    Để thuận tiện hơn cho việc triển khai các báo cáo nâng cao, anh ptm0412 có thể thêm vào cấu trúc data của file trên phần liên quan đến quản lý kho (Số lượng, đơn giá, mã hàng Đơn vị tính, mã kho) để có thể in các báo cáo kho (Tổng hợp nhập xuất tồn kho, thẻ kho, sổ chi tiết vật tư, v.v...); bổ sung các thông số lập Cash flow ngay trên DATA được không!?

    Về Code:
    Trong code của anh có đoạn này:

    Mã nguồn PHP:
    With Sheets("Data") Set myRng = .Range("Data") End With  
    Thực tế đối với bài này, đoạn code này không cần thiết. Tuy nhiên các bạn đừng vì thế mà bỏ nó đi, vì chúng ta sẽ cần đoạn này và các đoạn tương tự như vậy trong những báo cáo khác sắp tới.

    Các biến khai báo cần tường minh và các thao tác cần ghi chú cụ thể để những người mới tiếp cận ADO họ có thể hiểu được một cách cụ thể nhất!

  2. #2
    thuthuy1991 Guest
    Dear Sealand:

    Sẽ làm theo góp ý của bạn, về Mo() và Dong()

    Dear Kiệt:

    Trong dữ liệu gốc thì Dữ liệu nhập hàng ngày gồm có 2 table, 1 Master (Chứng từ) và 1 Child (Chi tiết), có đầy đủ cả phần Nhập xuất kho. Tuy nhiên để đơn giản tôi đã dùng query tách ra thành 2 hệ, 1 là kế toán hạch toán tài khoản, và 1 là Nhập xuất kho. Như vậy dễ dàng xử lý hơn.

  3. #3
    ấy zà món này (cũ người nhưng mới ta) nghe có vẻ hấp dẫn đây nhưng chưa biết tiếp cận nó như thế nào ?

    Tôi thấy trong bài viết là ADODC nhưng câu lệnh trong code lại là Set cnEx = New ADODB.Connection ?

    ADO… là gì ? ví dụ: ADO… là một kiểu kết nối…. nếu được biết sơ qua về nó thì thật là thú vị, còn không biết thì cũng chẳng sao (sẽ tìm hiểu sau).

    Các bước để thực hiện ADO ?
    Vd: Khai báo biến; khai báo file nguồn; truy xuất dữ liệu…

    Các câu lệnh trong từng phần (câu lệnh nào là bắt buộc và câu lệnh nào người dùng có thể gán vào). Trong code ví dụ nên có phần chú thích (dịch nôm càng kỹ càng tốt).

    Rất mong được sự giúp đỡ của các bạn. Thanks!

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Trung Chinh
    ADO… là gì ? ví dụ: ADO… là một kiểu kết nối…. nếu được biết sơ qua về nó thì thật là thú vị, còn không biết thì cũng chẳng sao (sẽ tìm hiểu sau).

    Các bước để thực hiện ADO ?
    Vd: Khai báo biến; khai báo file nguồn; truy xuất dữ liệu…

    Các câu lệnh trong từng phần (câu lệnh nào là bắt buộc và câu lệnh nào người dùng có thể gán vào). Trong code ví dụ nên có phần chú thích (dịch nôm càng kỹ càng tốt).
    ADO = ActiveX Data Object

    Trong bài đầu của anh ptm0412 có link dẫn đến bài này
    http://www.giaiphapexcel.com/forum/s...9&postcount=60
    Anh down file PDF về nghiên cứu thử xem. Kẹt cái là bằng tiếng anh mà em chưa có thời gian dịch. Nhưng em nghĩ đọc loáng thoáng hiểu ý chắc được mà anh ha!

    Tham khảo thêm tại đây nhé anh
    http://www.giaiphapexcel.com/forum/s...ad.php?p=82680

    Bên cạnh đó, em xin được mạn phép đính thêm file ADO căn bản (Bằng tiếng Việt) để mọi người đọc và tiếp cận một cách nhanh nhất (nguồn: http://www.vovisoft.com)

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    To Trung Chinh: Sao bạn không dọc tài liệu của anh Duyêt nhà ta ấy. Nó đây này và ở đây nữa này (Và còn vô vàn bài của các cao thủ của GPE)

    Bạn đừng nghĩ cái gì là cũ, cái gì là mới mà cái nào dùng được là ta dùng phải không? Cái định lý Pitago đã ai bỏ nó đi đâu? Nói thât, cái mà người ta khen mà áp dụng vào trường hợp của chúng ta là hơi mệt. Với điều kiện tay trái như chúng ta thì thật khó tiếp cận và sử dụng. Nó đòi hỏi phải có trình độ lập trình cao mới chủ động được. Đây mới mấy thứ OldMode này mà nghe chừng còn khó quá.
    Rất có thể mình hơi bảo thủ, thông cảm nha.

  6. #6
    ngoctran89 Guest
    Trích dẫn Gửi bởi ptm0412
    Dùng ADO kết nối dữ liệu trong Excel cho Kế toán.

    I. Bảng kê hóa đơn mua vào (khấu trừ)
    Tiếp theo, các bạn hãy thử tạo bảng kê hóa đơn bán ra.
    Tôi kết hợp ý của anh Sealand và dùng thuật tóan code của Bác Mỹ tạo thử 1 file BanRa. nhớ insert thêm 1 sh đặt là BanRa.
    Dùng code sau:
    Khai báo các thông số, biến...

    Mã nguồn PHP:
    Option Explicit Dim Recex As Object, Cnex As Object Dim FName As String Dim ConnectionString As String, mySql As String Dim i As Long, iMonth As Byte, endR As Long Sub KetNoi() FName = ThisWorkbook.Path & "\" & ThisWorkbook.Name Set Cnex = New ADODB.Connection 'Khai bao cau ket noi' ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ FName & ";Persist Security Info=False; Extended Properties=Excel 8.0;" Cnex.Open ConnectionString Set Recex = New ADODB.Recordset End Sub  
    Mã nguồn PHP:
    Sub BoKetNoi() Recex.Close Set Recex = Nothing Cnex.Close Set Cnex = Nothing End Sub  
    Và code

    Mã nguồn PHP:
    Sub BanRa() With Application .ScreenUpdating = False: .Calculation = xlCalculationManual End With KetNoi 'Khai bao thang can trich xuat' With Sheets("Banra") iMonth = .[e2] End With '----------------------------------------' 'Khai bao mySql' mySql = "SELECT 1 as STT, hoadon, ngaygoc, Serie, TenKH, Msthue, diengiai," & Chr(10) mySql = mySql & "sum(IIf(tkco like '511%', [stien], 0)) AS sttruocthue, VATRate/100 As ThueSuat, sum(IIf(tkco like '333%', [stien] ,0)) AS thue " & Chr(10) mySql = mySql & "FROM [data$]" & Chr(10) mySql = mySql & "GROUP BY hoadon, ngaygoc, Serie, TenKH, diengiai, Msthue, VATRate, HD, loaict, LoaiHD" & Chr(10) mySql = mySql & "HAVING (HD=True) AND (loaict='BH') AND (LoaiHD='KT') and (month(ngaygoc)=" & iMonth & ") order by ngaygoc" Recex.Open mySql, Cnex, adOpenKeyset, adLockOptimistic 'Copy vao Sheets("Banra")' With Sheets("Banra") .Rows("4:65000").ClearContents .[a4].CopyFromRecordset Recex endR = .Cells(65000, 2).End(xlUp).Row 'tao soTT' With .Range(.Cells(4, 1), .Cells(endR, 1)) .FormulaR1C1 = "=ROW()-3" .Value = .Value End With 'Dong total' .Range("H" & endR + 1).FormulaR1C1 = "=SUM(R4C:R[-1]C)" .Range("J" & endR + 1).FormulaR1C1 = "=SUM(R4C:R[-1]C)" End With BoKetNoi With Application .ScreenUpdating = True: .Calculation = xlCalculationAutomatic End With MsgBox "OK" End Sub  
    Nhờ các bác xem và góp ý. Thấy cách này trích lọc khá nhanh mà chưa nắm hết lý thuyết.
    Xin cám ơn!
    Bây giờ các bác cùng nhau làm thêm bảng cân đối số phát sinh từ ngày -> ngày.

  7. #7
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Thu Nghi à,
    1/Hôm nay học mót được của Thu Nghi cách đánh số TT khá hay không dùng For.
    2/Riêng phần Ketnoi Thu Nghi dùng lệnh Application.Version để kiểm tra Version , từ đó tùy biến cho Off.2003 và Off.2007 (kèm theo đổi đuôi .xls ). Như vậy, tính tương thích sẽ cao hơn.
    3/Lần sau Thu Nghi gửi cả ví dụ đi, đến giờ mình ráp code vào file của Ptm0412 vẫn chưa chạy.

  8. #8
    hathuan Guest

    Bây giờ các bác cùng nhau làm thêm bảng cân đối số phát sinh từ ngày -> ngày.
    ThuNghi à, khoan làm Cân đối PS đã, cái đó nghĩ thì đơn giản nhưng không dễ xơi, phải làm sao cho có số dư TK vào ngày đầu, coi như số dư đầu kỳ mới, rồi mới tính ra số dư cuối kỳ vào ngày cuối.

    Trước mắt làm những cái đơn giản trước như:
    - Sổ quỹ tiền mặt
    - Sổ quỹ Ngân hàng
    - Sổ cái chi tiết
    - Sổ cái tổng hợp
    - ...

  9. #9
    nguyennam19 Guest

    ADO: Kết nối Excel Database cho công việc kế toán

    Dùng ADO kết nối dữ liệu trong Excel cho Kế toán.

    I. Bảng kê hóa đơn mua vào (khấu trừ)

    Tiếp nối chủ đề của Sealand Kết nối giữa các file Excel bằng ADODC. , hôm nay ta thử xem ADO có thể làm những gì cho công việc kế toán, từ 1 CSDL ban đầu?

    Trước tiên ta cần 1 bộ CSDL, tôi xin dùng tạm 1 CSDL tương đối hoàn chỉnh, gồm có:
    _ Các bảng mã: Mã TK kế toán, mã Khách hàng, mã vật tư hàng hóa, mã chi phí, mã loại chứng từ
    - Các bảng số dư đầu kỳ 0/01/2008: Số dư công nợ, số dư Tài khoản, số dư vật tư hàng hóa
    - Bảng dữ liệu phát sinh, bao gồm tất cả phát sinh trong năm.

    Với CSDL như trên, tôi đã làm cơ bản tất cả những biểu mẫu sổ sách cơ bản của kế toán, bằng công thức cũng được, bằng Access cũng được.

    Bây giờ bằng công cụ ADO, với sự giới thiệu của Sealand, ta đã thấy tốc độ thần kỳ của việc tạo lập các loại báo cáo như thế nào. Hôm nay tôi xin làm trước mẫu bảng kê hóa đơn mua vào từng tháng (Bảng kê thuế GTGT đầu vào) bằng ADO.
    Trong file, các bạn chọn tháng trong ô E2, rồi nhấn nút, và chớp mắt 1 cái! Thậm chí bạn không kịp chớp mắt đâu!

    Chúng ta sẽ thảo luận và thực hiện tiếp những mẫu biểu khác, dần dần từng cái một.

    Tiếp theo, các bạn hãy thử tạo bảng kê hóa đơn bán ra.

  10. #10
    bangpho Guest
    Trong khi thực hiện từng mẫu biểu báo cáo, tôi sẽ liệt kê những lưu ý cần thiết khi sử dụng ADO.

    Lưu ý cho bài 1:

    1. Một số trường (field) chỉ dùng làm điều kiện, có thể không cần hiển thị, thì không nằm trong cú pháp SQL phần Select.
    2. Tất cả các fields không tính toán, đều phải liệt kê hết trong Group By, kể cả các fields không hiển thị.
    3. Mặc định Query kết xuât ra sẽ sort theo field đầu tiên, muốn sort theo field/ nhiều fileds thì liệt kê lần lượt trong phần Order By
    4. Khi tính toán trong SQL của Excel, nếu 1 trường group by nào có các records dữ liệu trống, thì các records đó không được Group như ý muốn. Nếu nguyên 1 trường trống, thì cũng như không Group gì cả, và field tính toán không tính toán gì cả.

    Thí dụ:

    Mã nguồn PHP:
    SELECT 1 as STT, hoadon, ngaygoc, Serie, TenKH, Msthue, diengiai, _ sum(IIf(tkno<>'133', [stien], 0)) AS sttruocthue, VATRate/100 As ThueSuat, _ sum(IIf(tkno='133', [stien] ,0)) AS thue FROM [data$] GROUP BY hoadon, ngaygoc, Serie, TenKH, diengiai, Msthue, VATRate, HD, loaict, LoaiHD HAVING (HD=True) AND (loaict<>'BH') AND (LoaiHD='KT') and (month(ngaygoc)=8) _ ORDER BY ngaygoc  

Trang 1 của 5 123 ... CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •