Add-In A-Tools - Truy vấn (lọc), soạn thảo và quản trị dữ liệu Excel qua mạng

Liên hệ QC
Dear Mr.Tuân,
Tôi đã làm theo hướng dẫn.
Lỗi trên vẫn xuất hiện.
Chi tiết các thao tác, A vui lòng xem file đính kèm.

Note: các control bị lỗi bao gồm các control liên quan đến Button, List, Tree.

Tks & Rgds,
Chí Thanh

Bạn gửi ID và Pass UltraViewer mình kiểm tra trực tiếp xem thế nào?
Số đt: 0904210337
 
Chào anh Tuân!
Em có làm bảng Báo cáo quỹ lương, nay cho em hỏi, hàm BS_SQL có thể tách riêng theo từng tháng không (Như file mẩu)
Em cũng đã dùng hàm VTC để tách riêng cột tháng ra, nhưng hơi khó xem.
Rất mong được anh hướng dẫn để tạo ra được mẩu Báo cáo dễ xem nhất ạ
Link
Trân trọng cảm ơn anh!
 
Chào anh Tuân
Hiện tại em đang dùng A-Tools nhưng gặp lỗi bị giới hạn dòng (hình ảnh)

1537499151217.png
Mong anh hướng dẫn khắc phục lỗi
Cám ơn anh
 
Mình cần tư vấn kĩ hơn về A Tool thì có thể liên hệ với tác giả qua phương tiện nào ạh ?
Thanks
 
Xin Chao
Cho minh hỏi là A tools có chức năg track changes như khi share workbook của excel ko
Thanks mọi người
 
Xin Chao
Cho minh hỏi là A tools có chức năg track changes như khi share workbook của excel ko
Cảm ơn mọi người

Track Change trong A-Tools không giống như của Excel. Nó dùng để theo dõi con trỏ của máy khác trong mạng đang chọn vào ô nào trên bảng tính Excel.
 
Giới thiệu phiên bản mới Add-in A-Tools 2019. Đây là một đột phá rất tuyệt vời cho báo cáo Excel và chia sẻ Excel qua mạng
Hàm VTC tạo cột tự động để thống kê
Các phương pháp gộp dữ liệu nhiều sheet, nhiều file Excel ngắn gọn.
Các tính năng mới và sửa lỗi trong phiên bản Add-in A-Tools 2019
v9.0.0.5: 15-01-2019 (Add-in A-Tools 2019)
(*) Sửa chức năng INSERT/DELETE (Chèn/Xóa) dòng, cột, vùng khi chia sẻ qua mạng tốt hơn.
- Không yêu câu ngắt kết nối khi người dùng đang soạn thảo trong sheet có lệnh chèn/xóa.
- Kiểm soát đồng bộ dữ liệu và cấu trúc sheet tốt hơn.
- Trong tình huống lỗi chèn, xóa máy chủ có thông báo cho máy khách rõ ràng lý do trước khi ngắt kết nối.
- Việc chèn/xóa với sheet chia sẻ qua mạng người dùng bây giờ có thể dùng mà không có một hạn chế nào!
- Sửa lỗi chọn (bôi đen) cả dòng trong file có định dạng 2007 làm máy chủ cập nhật dữ liệu bị chậm. Phiên bản v9.0.0.5 đã khắc phục.

Add-in A-Tools 2019 v9.0.0.5 không yêu cầu phải nâng cấp cả máy chủ và máy khác (các phiên bản từ 7.x trở lên vẫn kết nối được).
Tuy nhiên, nếu đồng bộ cả máy chủ và máy khách cùng phiên bản v9.0.0.5 là tốt nhất!

v9.0.0.4: 11-01-2019 (Add-in A-Tools 2019)
(*) Đây là phiên bản nâng cấp tập trung vào tính năng chia sẻ Excel qua mạng và các hàm liên quan đến mạng!
(*) Các khách ahngf dùng tính năng chia sẻ mạng nên nâng cấp phiên bản 9.0.0.4 là tốt nhất!
(*) Các khách hàng đã đăng ký bản quyền Add-in A-Tools 2019 PRO nâng cấp là miễn phí!

+ Nâng cấp: cho phép chèn, xóa cột, dòng , vùng dữ liệu khi chia sẻ file Excel qua mạng. Các phiên bản cũ khuyến cáo không nên dùng.
Phiên bản mới làm rất tốt cơ chế này, tuy nhiên Bluesofts vẫn khuyến cáo hạn chế tối đa việc thay đổi cấu trúc bảng tính Excel khi đang chia sẻ nhiều người.
+ Nâng cấp: chức năng cập nhật định dạng qua mạng chạy tốt hơn.
+ Nâng cấp: hàm BS_PIC() mở được các link ảnh từ website có cơ chế mã hóa bằng SSL.
Phiên bản cũ lỗi một số trường hợp này nên khi bấm chuột vào ảnh trên sheet không lên khung hình lớn.
+ Thêm: Thêm hàm trong thư viện lập trình mạng BSNetwork.InsertOrDeleteRange() cho phép lập trình VBA để chèn, xóa dòng, cột, vùng dữ liệu trên bảng tính Excel khi chia sẻ qua mạng.
+ Thêm: Menu "Help Online" thêm hướng dẫn các chức năng mới của Add-in A-Tools 2019.
+ Sửa: lỗi cập nhật định dạng từ máy chủ, một số máy khách không cập nhật.
+ Sửa: lỗi hàm BSNetwork.RunMacroInServer() nếu gửi mảng dữ liệu có giá trị ngày, giờ lên máy chủ nếu máy chủ đó thiết lập dấu chấm, dấu phảy kiểu Việt Nam (dấu chấm ngăn cách hàng ngàn)

v9.0.0.3: 06-01-2019 (Add-in A-Tools 2019)
+ Thêm: thêm khai báo thuộc tính "DEF=giá trị" trong tham số OPTIONS. Hàm BS_SQL với hàm VTC sẽ trả về "giá trị" thay cho giá trị NULL khi hàm VTC tính toán.
Ví dụ:
= BS_SQL("SELECT MA_KH, VTC(MA_VLSPHH,SUM,SLG) AS [TỔNG SLG] FROM KHO GROUP BY MA_KH", "DEF=0")
Hàm VTC sẽ tạo tự động các cột ứng với các mã khách hàng (MA_KH), cột SLG được tính tổng, cột mã khách hàng nào không có số liệu sẽ tự điền số 0.
Phiên bản cũ là NULL. Việc này có ý nghĩa nếu hàm BS_SQL với hàm VTC tạo ra bảng trung gian để làm dữ liệu nguồn, giá trị 0 đảm bảo cấu trúc cột định dạng Number.

+ Nâng cấp: Hàm BS_JOIN sẽ gộp dữ liệu từ máy chủ (qua mạng), không cần phải khai báo "SVR=YES" nếu công thức có hàm BS_JOIN đang ở trong file chia sẻ từ máy chủ.
Nguyên tắc này giống với hàm BS_SQL.

+ Nâng cấp: Hàm GROUP_CONCAT cho phép chạy qua mạng. Tức hàm BS_SQL có tham số "SVR=YES" ở tham số OPTIONS
(Phiên bản cũ lỗi nếu hàm BS_SQL lấy dữ liệu từ máy chủ).

+ Sửa: Hàm GROUP_CONCAT lỗi khi câu lệnh SQL có từ khóa ORDER BY. Phiên bản mới - v9.0.0.3 đã fix.
+ Sửa: Hàm GROUP_CONCAT lỗi khi danh sách liệt kê có độ dài > 255 ký tự. Phiên bản mới - v9.0.0.3 đã fix và cắt lại 255 ký tự nếu nó vượt quá.

v9.0.0.2: 01-01-2019 (Add-in A-Tools 2019)
+ Nâng cấp: Hàm VTC cho phép liệt kê giá trị với điều kiện như LIKE %. Ví dụ SELECT ... VTC(loai_phieu IN('N%', 'X%')... (xem tài liệu hàm VTC)
+ Nâng cấp: Hàm BS_FILES cho phép hiển thị tùy biến nhiều cột thông tin, sắp xếp, cách hiển thị file và folder,...
(xem file "Function BS_FILES list all files in a path.xls")
+ Nâng cấp: Hàm BS_JOIN cho phép gộp từ nhiều file đa năng hơn, có thể lấy từ các file trong máy chủ (gộp file qua mạng).
=BS_JOIN("SELECT ... FROM..", "Danh sách file", "SVR=YES")
SVR=YES là để báo A-Tools lấy dữ liệu trong máy chủ. Nếu không có tham số này thì lấy từ máy khách (máy đang chạy công thức)

(Xem file "C:\A-Tools\HELP & DEMOS\JOIN FILES\Function BS_JOIN append data from multi files - gộp dữ liệu từ nhiều file.xls")
+ Nâng cấp: Hàm BS_VLOOKUP, BS_FILLARRAY, BS_SORTARRAY,... cho phép khai báo HR=YES; nếu mảng giá trị có dòng đầu tiên là tiêu đề.

+ Nâng cấp: Hàm TEXT để định dạng trong FOOTER của group luôn định nghĩa dấu "," cho hàng ngàn, "dấu "." cho thập phân luôn đúng khi Excel đổi định dạng.
+ Nâng cấp: Nhập liệu nâng cao cho phép nhấn CTRL+C để copy dữ liệu trong danh sách tìm kiếm
+ Nâng cấp: Thêm các file ví dụ về hàm VTC, BS_JOIN, BS_FILES
+ Nâng cấp: Các class đối tượng lập trình: BSNetwork, BSFormulaArray, BSFormulaInfo
bổ sung một số hàm và thuộc tính hỗ trợ lập trình mạng và hàm mảng trong Excel tiện lợi hơn.

+ Thêm: Thêm thủ tục sự kiện BSFormulaArray.OnCallBackMethod() để hỗ trợ lập trình tạo mảng kết quả cho hàm trong nhưng trường hợp đặc biệt.
+ Thêm: Thêm thủ tục load tham số Options BSFormulaInfo.UpdateOptions(chuỗi options). Hỗ trợ viết hàm mảng cùng A-Tools với cách viết tham số Options giống hàm BS_SQL.
Options = "HR=YES; INSERT = YES"
BSFormulaInfo.UpdateOptions(Options)

+ Thêm: Thêm hàm API GetPropertyValue() để nhận giá trị của thuộc tính.
Options = "HR=YES; COLS = 5"
GetPropertyValue("HR") => YES
GetPropertyValue("COLS") => 5

+ Thêm: Hàm API AppendArray2D : để nối mảng 2D vào dòng cuối của mảng trước.
+ Thêm: Hàm API AppendArray2DCols : để nối mảng 2D vào cột cuối của mảng trước.
+ Thêm: Hàm API Tạo và ghi giá trị theo cấu trúc XML: ValueToXml, ValueFromXml

+ Sửa: Lỗi "The connection for viewing your linked Microsoft Excel worksheet was lost" xuất hiện trong hàm BS_JOIN của phiên bản cũ đã được sửa tại phiên bản mới - 9.0.0.2.
+ Sửa: Xóa tiêu đề cột có dấy " ' " tạo ra bởi hàm VTC.
+ Sửa: Xóa trạng thái group khi hàm BS_SQL không dùng thuộc tính group
+ Sửa: Nhập liệu nâng cao cho phép nhập giá trị trống. Phiên bản cũ bị bỏ qua.
+ Sửa: Lỗi thư viện BSNetwork khi gửi giá trị về thời gian.

v9.0.0.1: 23-12-2018 (Add-in A-Tools 2019)
+ Nâng cấp: Hàm VTC đa năng hơn:
1. Cho phép liệt kê nhiều cột tính toán ứng với một một giá trị tách làm cột.
2. Cho phép lồng hàm thống kê vào các cột tính toán.
3. Cho phép chỉ định danh sách của người dùng kết hợp hàm IN(), vì thế có thể lồng câu lệnh SQL lấy danh sách cho hàm IN().
4. Cho phép tính bù trừ với hàm SUBT(cột chứa điều kiện, 'Giá trị làm tăng', 'Giá trị làm giảm')
(Xem SoKetoanSQL.xls tại sheet "TH NXT" và file "Report with multi columns - Function VTC - Báo cáo tách cột.xls" để hiểu rõ hơn).

+ Sửa lỗi Excel 64 bit. Khi báo cáo liên kết điều kiện tới địa chỉ ô trên bảng tính, nếu thay đổi giá trị ở địa chỉ ô này sẽ bị báo lỗi,
người dùng phải đặt con trỏ vào khu vực báo cáo nhấn CTRL+SHIFT+A. Bản 9.0.0.1 fix lỗi này.

v9.0.0.0: 20-12-2018 (Add-in A-Tools 2019)
(*) Phiên bản Add-in A-Tools 2019 - v9.0 cấp lại license. Nếu bạn muốn nâng cấp từ phiên bản cũ thì liên hệ với Công ty CP Bluesofts: http://bluesofts.net

PHẦN 1: THÊM MỚI CÁCH TẠO BÁO CÁO VỚI HÀM BS_SQL
+ Thêm mới: Hàm BS_SQL cho phép tạo báo cáo phân nhóm giống như Pivot nhưng linh hoạt và cơ động theo cách của A-Tools
- Hàm BS_SQL bây giờ có tham số thứ 3 là Format
=BS_SQL SQL, [OPTIONS], [FORMAT]
Tham số FORMAT được dùng để chỉ vùng có mẫu định dạng cho các nhóm dữ liệu (FOOTER)
- Tham số OPTIONS có thêm 2 hàm
+ GROUP(danh sách vị trí cột cần nhóm)
+ FOOTER(danh sách các cột cần tổng hợp, biểu thức bô tả, tính toán mỗi nhóm dữ liệu)
Các biến hệ thống:
+ GROUPID: nhận giá trị từ 1,2... cho biết dòng footer thuộc cấp nhóm nào
+ NEWGROUP: nhận giá trị TRUE/FALSE cho biết dòng dữ liệu có thuộc dòng đầu tiên của nhóm không?
+ ROWTYPE: nhận giá trị:
0: body - dữ liệu trình bày chi tiết, cấp bé nhất
1: header - dòng tiêu đề của nhóm
2: footer - dòng tổng hợp của nhóm
3: grand total - dòng tổng hợp cuối báo cáo
+ LASTROW: cho biết dòng liền trước
+ LASTVALUE: cho biết giá trị liền trước của cột hiện thời
Trong FOOTER cho phép xây dựng công thức Excel và lồng hàm VBA trong ngoặc vuông. Tên các cột dữ liệu để trong <>
3=Số hóa đơn là: [COUNTA(<SO_CT>)]
(cột 3 sẽ hiển thị nội dung "Số hóa đơn là: 20", nếu hàm COUNTA() trả về 20)
+ SD: là thuộc tính cho phéo báo cáo nhóm hiển thị ở cấp group nào: nhận giá trị từ 1,2...
+ FM: là thuộc tính cho phép tự động định dạng hay không, nhận giá trị TRUE (ngầm định - tự động định dạng footer), FALSE là không định dạng.

- Người dùng cần xem tài liệu hướng dẫn tại tập tin "BS_SQL_Create report with grouping and footer.xls"

+ Thêm mới: Hàm BS_SQL thêm hàm bổ trợ trong từ khóa SELECT với hàm GROUP_CONCAT
- Hàm GROUP_CONCAT cho phép ghéo nối/liệt kê cá giá trị của một cột bất kỳ liên quan đến các cột thống kê.
A-Tools cho phép sử dụng nhiều hàm GROUP_CONCAT ở các cột trong từ khóa SELECT
- Hướng dẫn sử dụng tại tập tin "BS_SQL_function_GROUP_CONCAT.xls"

+ Nâng cấp: tốc độc chạy hàm BS_SQL tăng gấp 10 lần so với các phiên bản cũ

PHÂN 2: CẢI TIẾN VÀ SỬA LỖI
1. NHẬP LIỆU NÂNG CAO:
1.1. Nâng cấp: Tốc độ tìm kiếm tăng gấp 10 lần so với phiên bản trước đây - Đã nhanh nay còn nhanh hơn!
Tìm kiếm hàng triệu dòng dữ liệu nguồn tốc độ vẫn đảm bảo nhanh.
1.2. Cập nhật nguồn dữ liệu ngay khi có sự sửa đổi
1.3. Không giới hạn số cột hiển thị và nhập liệu.
1.4. Bàn phím nhập liệu nhạy hơn. Ví dụ CTRL+A bản cũ chập trờn, sau khi làm động tác gì đó có thể nhập liệu không tìm kiếm và mở lại form tìm kiếm.
1.5. Dữ liệu nhập không bị sai định dạng số, ngày tháng, các ký tự trống. Lỗi này tồn tại ở các phiên bản cũ vì bản cũ lấy giá trị theo định dạng của Excel. Bản mới lấy chính xác từ nguồn dữ liệu.
1.6. Lần đầu tạo nhập liệu nâng cao tự động căn chỉnh cột đúng theo định dạng. Những cột số tiền, số lượng tự động căn phải. Các cột format WrapText sẽ tự xuống dòng.
Nếu dữ liệu nguồn người dùng tự căn chỉnh thì A-Tools sẽ lấy định dạng của người dùng - Bỏ qua chế độ tự động.
1.7. Tìm kiếm ảnh cập nhật ảnh ngay khi tìm kiếm thành công. Bản cũ tìm kiếm xong phải nhấm chuột vào dòng trong list mới hiển thị ảnh.
1.8. Màn hình có ảnh bên phải, nhấp đúp chuột sẽ tách ra cửa sổ ảnh rộng và tùy ý căn chỉnh size, trong khi cửa sổ ảnh hiển thị không cần phải đóng vẫn chọn tiếp các mục trong danh sách.
1.9. Thêm nút "Clear All" trong màn hình thiết lập Nhập liệu nâng cao, cho phép xóa toàn bộ thiết lập trong sheet đang mở một cách sạch sẽ!
1.10. Sửa lỗi đóng danh sách tìm kiếm khi gõ chữ có dấu với Unikey bản cũ (Lỗi Unikey4.0)

2. CHIA SẺ MẠNG
2.1. Fix toàn bộ các lỗi thao tác trong quản trị máy chủ khi sử dụng Excel 2013, 2016.
2.2. Sửa thời gian khóa dữ liệu về đơn vị phút, bản cũ đơn vị là giây :)

3. HÀM và BÁO CAO
3.1. Các hàm tạo bảng chạy đúng khi dữ nguồn đưa vào chỉ 1 ô/1 giá trị.
3.2. Sửa lỗi bsfunction.Bs_SQL lỗi trong Excel 64 bit.
3.3. Hàm mảng tạo trong VBA và thư viện A-Tools chạy đúng với lệnh kiểm tra fa.GetResultInBackupList(...) vì vậy không bị treo máy khi có lệnh chèn, xóa dòng cột bên dữ liệu nguồn.
3.4. Hàm BS_PIC xem được ảnh từ địa chỉ/link (URL) trên web mà không cần phải bổ sung hai ký tự "//".
3.5. Hàm BS_PIC khi hiển thị ảnh trên mạng, bấm chuột vào ảnh màn hình lớn hiện ra vẫn xem được ảnh. Bản cũ lỗi trong trường hợp này.

4. MENU A-TOOLS VÀ BẢO MẬT
4.1. Sửa lỗi một số máy không hiển thị menu A-Tools. Đây là lỗi xung đột các bản Office cài đè lẫn lộn.
(Lỗi menu chỉ hiển thị vài nút bấm là khác và đã sửa ở phiên bản lần trước).
(*) Download
 
Xin gửi tới các thành viên phiên bản mới Add-in A-Tools v9.1.0.1: 18-03-2019 (Add-in A-Tools 2019)
(*) Các dòng phiên bản v9.x nâng cấp FREE!
+ Sửa: khắc phục lỗi "Không mở được vùng dữ liệu từ máy chủ" - "Can not open/copy file". Khách hàng nâng cấp máy chủ lên 9.1.0.1 là được.
+ Sửa: Báo cáo phân nhóm với tham số GROUP() khi các cột trong từ khóa SELECT không có giá trị số lượng/số tiền.
+ Sửa: Lỗi cập nhật dữ liệu nguồn trong Nhập liệu nâng cao trên máy chủ và máy khách khi chia sẻ mạng. Lỗi xảy ra ở phiên bản 9.1.0.0.

v9.1.0.0: 11-03-2019 (Add-in A-Tools 2019)
(*) Các dòng phiên bản v9.x nâng cấp FREE!
+ Thêm: Thêm tùy chọn "Tính toán lại công thức sau khi mở vùng" tại máy khách. Ngầm định được tắt để đảm bảo mở vùng Excel từ máy chủ có nhiều
+ Thêm: hàm BS_SQL nhanh hơn rất nhiều.
+ Thêm: Thêm mới hàm BS_Hlookup cho phép tìm kiếm theo chiều ngang (tìm theo cột), giá trị trả về là các cột mà các dòng thỏa mãn các điều kiện.
Cách dùng tương tự như hàm BS_Vlookup cũng tìm kiếm nhiều điều kiện VÀ, HOẶC nhưng ngược chiều nhau.
+ Nâng cấp: Các hàm trả về mảng động như BS_SQL, BS_VLOOKUP, BS_HLOOKUP,... co giãn hai chiều cùng với dòng và cột tổng cộng (Grand Total).
+ Nâng cấp: Hàm BS_JOIN hiển thị trạng thái % đang gộp từng file dưới thanh trạng thái.
+ Nâng cấp: Hàm BS_JOIN tốc độ gộp nhanh hơn phiên bản cũ.
+ Nâng cấp: Tốc độ máy khách mở file Excel từ máy chủ nhanh, với những file có hàm BS_SQL.
+ Nâng cấp: không cho phép chèn,xóa dòng, cột nếu phân quyền là "Chỉ đọc" nhưng vẫn cho Format nếu được cấp quyền.
Phiên bản cũ quyền xóa, chèn dòng hoặc cột dựa theo cấp quyền Format - "Định dạng".

+ Sửa: lỗi một số sheet khi cập nhật hàm MS_SQL trong cả file bởi CTRL+SHIFT+D hoặc từ menu.
+ Sửa: lỗi "Data type mistake..." của hàm BS_SQL trong một vài tình huống đặc biệt khi mở lần đầu.
+ Sửa: Nếu A-Tools đang chạy chức năng máy chủ ("Tạo máy chủ") thì hàm BS_VLOOKUP không chạy phía máy chủ.
+ Sửa: Lập trình VBA dùng hàm BS_VLOOKUP qua thư viện BSFunctions bị lỗi nếu tham số đưa vào hàm là mảng tạo bởi hàm VBA.Array().
+ Sửa: Khi tạo báo cáo phân nhóm - sử dụng GROUP(...) ở tùy chọn:
+ Lỗi không xóa format của khu vực dữ liệu chi tiết (nhóm con) khi co giãn vùng công thức.
+ Lỗi không thống kê ở cuối báo cáo -Grand Total nếu dùng công thức có hàm DATA() ở trùy chọn FOOTER(...).
+ Sửa: Lỗi chạy hàm BS_JOIN với một số file định dạng dữ liệu "đặc biệt".
+ Sửa: Trong menu "HELP ONLINE" có một số link lỗi.

v9.0.0.7: 19-02-2019 (Add-in A-Tools 2019)
+ Nâng cấp: hàm BS_SQL cho phép sử dụng thuộc tính SORT, TOP giống như trong hàm BS_VLOOKUP.
Khi dùng hàm BS_SQL sử dụng đến các hàm Excel, hàm tự tạo (UDF), hàm DATA thì cột có các hàm đó không dùng để ORDER BY được. Muốn làm được việc này phải dùng thuộc tính SORT=n (n là vị trí cột cần sắp xếp), TOP=n (chỉ lấy ra n là số dòng tiền).
+ Sửa: lỗi thuộc tính Insert trong class BSFormulaInfo.Insert (fi) với lập trình VBA

v9.0.0.6: 29-01-2019 (Add-in A-Tools 2019)
(*) Phiên bản v9.0.0.6 tập trung chủ yếu sửa lỗi hàm và các thư viện lập trình liên quan đến chạy mạng.
(*) Các dòng phiên bản v9.x nâng cấp FREE!
- Nâng cấp: cho phép bật, tắt trạng thái chọn vùng của các user đang hoạt động trên sheet/vùng.
- Nâng cấp: nếu sheet/vùng được thiết lập "Không cập nhật máy chủ" thì trạng thái chọn vùng của các user trong mạng lên sheet/vùng đó không hiển thị.
- Nâng cấp: bỏ chế độ cập nhật định dạng với loại số qua mạng .

- Sửa: lỗi chạy mạng với các hàm BS_SQL, BS_JOIN và các hàm trong thư viện lập trình BSNetwork.ExecSQL(), BSConnection.ExecSQL().
Lỗi xảy ra khi máy chủ và máy khách không cùng định dạng dấu chấm, dấu phảy trong định dạng Number của Control Panel.
Đây là lỗi chung trong các máy tính với các loại CSDL dùng đến ADO khi kết nối qua mạng, không chỉ riêng với A-Tools.
A-Tools v9.0.0.6 đã xử lý được hoàn toàn vấn đề này không cần người dùng phải đồng bộ kiểu định dạng số trong Control Panel của Windows.
(*) Nếu việc kết nối trong local - bản thân máy làm công thức thì không sao.)

- Sửa: lỗi tạo máy chủ nếu Excel chưa mở một workbook nào. Đây là trường hợp hãn hữu xảy ra với một số máy từ Excel 2013 trở lên.
- Sửa: lỗi không cho Insert/Delete nếu thực hiện lệnh tạo máy chủ. Lỗi này xảy ra từ phiên bản v9.0.0.5
(*) DOWNLOAD
 
Làm báo cáo bằng Add-in A-Tools



Trong Add-in A-Tools cho phép chúng ta lập trình VBA hay nói cách khác viết macro để chạy cùng hàm BS_SQL. Mục đích lập trình VBA cùng các sự kiện chạy BS_SQL để ta có thể thay đổi giá trị của phần tử mảng hoặc định dạng trước hoặc sau khi dữ liệu được đổ vào bảng tính.

Bạn mở file tại đường dẫn dưới đây để them cấu trúc các dạng thủ tục sự kiện
C:\A-Tools\HELP & DEMOS\A-Tools VBA Programming\BS_SQL OnEvents.txt

Đọc tại liệu "A-Tools_Query_Report_Help.pdf" trang 45. Cho phép chạy một macro trước khi cập nhật dữ liệu vào bảng tính.
Khai báo trong tham số OPTIONS của hàm BS_SQL: OnBeforeUpdate=DoBeforeUpdate
=BS_SQL(“chuỗi khai báo SQL”, “…;OnBeforeUpdate = DoBeforeUpdate)
Trong môi trường lập trình (VBE), viết thủ tục "DoBeforeUpdate" trong một module theo cấu trúc sau:

[GPECODE=vb]Sub DoBeforeUpdate(ByVal OldDataTable As Range, ByVal NewDataTable As Range, ByVal DataArray)
'Có thể đổi tên thủ tục
‘+ OldDataTable: là đối tượng quản lý vùng dữ liệu cũ (trước khi hàm BS_SQL chạy)
‘+ NewDataTable: là đối tượng quản lý vùng dữ liệu mới (sau khi hàm BS_SQL chạy)
'+ DataArray: la mảng 2 chiều. Các phần tử dòng và cột nhận giá trị từ 0
'Giá trị tại dòng 1 cột 2 của mảng là DataArray(1,2) , trên bảng tính Excel thì là giá trị của dòng 2 cột 3.
End Sub[/GPECODE]

Trong ví dụ của bạn tôi tạo một module sau đó làm các việc sau:
Dán đoạn khai báo hai hàm API của A-Tools, mục đích để thay đổi giá trị của phần tử mảng kết quả trả về.

[GPECODE=vb]Option Explicit

#If VBA7 Then
Declare PtrSafe Function GetFieldNames Lib "AddinATools.dll" (ByRef FieldNames) As Long
Declare PtrSafe Function SetDataValue Lib "AddinATools.dll" (ByVal Row As Long, ByVal Column As Long, ByVal Value As Variant) As Long
#Else
Declare Function GetFieldNames Lib "AddinATools.dll" (ByRef FieldNames) As Long
Declare Function SetDataValue Lib "AddinATools.dll" (ByVal Row As Long, ByVal Column As Long, ByVal Value As Variant) As Long
#End If[/GPECODE]

Viết macro "DoBeforeUpdate" dưới đây để thay đổi STT của bảng kết quả, STT chỉ tính khi giá trị cột "Chức vụ" khác trống.
[GPECODE=vb]Sub DoBeforeUpdate(ByVal OldDataTable As Range, ByVal NewDataTable As Range, ByVal DataArray)
'DataArray: la mang 2 chieu. Cac phan tu dong va cot nhat gia tri tu 0
'Gia tri tai dong 1 cot 2 = DataArray(1,2) , tren bang tinh thi la gia tri cua dong 2 cot 3

Const ColumnIndex = 0 'Cot STT (A)
Const ColumnCV = 6 'Cot Chuc Vu (G)
Dim Row, Index As Long

'MsgBox "OldDataTable:" & OldDataTable.Address & Chr(13) & "NewDataTable:" & NewDataTable.Address, , "OnBeforeUpdate"

For Row = LBound(DataArray, 1) To UBound(DataArray, 1)
If DataArray(Row, ColumnCV) <> "" Then
Index = Index + 1
SetDataValue Row, ColumnIndex, Index 'Ghi STT vao mang
Else
SetDataValue Row, ColumnIndex, ""
End If
Next Row

End Sub

[/GPECODE]

Công thức trong bảng tính Excel
Cũ là:
=bs_sql('In cong SP'!$A$10,"HR=NO; INSERT=YES")
Sửa thành:
=bs_sql('In cong SP'!$A$10,"HR=NO; INSERT=YES;OnBeforeUpdate=DoBeforeUpdate")

Với khả năng cho phép viết macro (VBA) chạy cùng thì Add-in A-Tools xử lý để làm báo cáo rất linh động. Đó là sự phối hợp sức mạng của 3 thứ: Add-in A-Tools + SQL + VBA.

Bạn tải file tôi làm và xem macro tôi viết sẽ hiểu ngay.

Chào anh Tuân!
Cho em hỏi, công thức đánh số thứ tự này chỉ đúng với tham số Option với HR = No, còn nếu để Yes thì công thức đánh STT bị sai, trường hợp này mình khác phục như thế nào ạ
 
Chào anh Tuân!
Cho em hỏi, công thức đánh số thứ tự này chỉ đúng với tham số Option với HR = No, còn nếu để Yes thì công thức đánh STT bị sai, trường hợp này mình khác phục như thế nào ạ

A-Tools có hàm đánh số thứ tự đúng cho các trường hợp HR=NO haowcj HR=YES. Em xem có nhầm ở chỗ nào không?
 
Cho em hỏi là, bản free nó có thể get được bao nhiêu dòng dữ liệu vậy add?

Bản Free get tối đa 200 dòng ra ngoài nhé, dữ liệu nguồn không giới hạn.
Bài đã được tự động gộp:


Vấn đề số thứ tự cảu em do em đặt tên bảng. EM phải đặt tên từ dòng tiêu đề.
 
Thầy ơi,
Thầy xem giúp công hàm của em sai ở chỗ nào mà ko chạy được với ạ. Em nghĩ là em sai ở phần điều kiện Where nhưng lại không biết sai thế nào. Mong thầy chỉ giúp. Em cảm ơn

="SELECT NGAY_PS, SO_CT, NGAY_CT, DIEN_GIAI,
IIF(TK_NO='"&C8&"',TK_CO,IIF(TK_CO=CELL(C8),TK_NO,'')) AS [TKDU],
IIF(TK_NO=CELL(C8),THANH_TIEN,0) AS [NO],
IIF(TK_CO=CELL(C8),THANH_TIEN,0) AS [CO]," &
"getMax(GetOnce(CELL(H14)-CELL(I14))+data(PrevRow,7)-data(PrevRow,8)+data(Row,5)-data(Row,6),0),
-getMin(GetOnce(CELL(H14)-CELL(I14))+data(PrevRow,7)-data(PrevRow,8)+data(Row,5)-data(Row,6),0) "&
"FROM DU_LIEU
WHERE (TK_NO=CELL(C8) OR TK_CO=CELL(C8)) AND (NGAY_PS>=CELL(NGAY_1)) AND NGAY_PS<=CELL(NGAY_2) "&IF(SCT_NKC_TEN_COT_II="","",IF(C9="",""," AND "&SCT_NKC_TEN_COT_II&"='"&C9&"'")) or IF(SCT_NKC_TEN_COT="","",IF(C9="",""," AND "&SCT_NKC_TEN_COT&"='"&C9&"'"))

Em làm dựa theo bài giảng A-Tool và file Sổ kế toán SQL của thầy ạ. Em cám ơn

217894
Bài đã được tự động gộp:

Thầy ơi,
Thầy xem giúp công hàm của em sai ở chỗ nào mà ko chạy được với ạ. Em nghĩ là em sai ở phần điều kiện Where nhưng lại không biết sai thế nào. Mong thầy chỉ giúp. Em cảm ơn

="SELECT NGAY_PS, SO_CT, NGAY_CT, DIEN_GIAI,
IIF(TK_NO='"&C8&"',TK_CO,IIF(TK_CO=CELL(C8),TK_NO,'')) AS [TKDU],
IIF(TK_NO=CELL(C8),THANH_TIEN,0) AS [NO],
IIF(TK_CO=CELL(C8),THANH_TIEN,0) AS [CO]," &
"getMax(GetOnce(CELL(H14)-CELL(I14))+data(PrevRow,7)-data(PrevRow,8)+data(Row,5)-data(Row,6),0),
-getMin(GetOnce(CELL(H14)-CELL(I14))+data(PrevRow,7)-data(PrevRow,8)+data(Row,5)-data(Row,6),0) "&
"FROM DU_LIEU
WHERE (TK_NO=CELL(C8) OR TK_CO=CELL(C8)) AND (NGAY_PS>=CELL(NGAY_1)) AND NGAY_PS<=CELL(NGAY_2) "&IF(SCT_NKC_TEN_COT_II="","",IF(C9="",""," AND "&SCT_NKC_TEN_COT_II&"='"&C9&"'")) or IF(SCT_NKC_TEN_COT="","",IF(C9="",""," AND "&SCT_NKC_TEN_COT&"='"&C9&"'"))

Em làm dựa theo bài giảng A-Tool và file Sổ kế toán SQL của thầy ạ. Em cám ơn

217894
Em gởi file đính kèm ạ.
 

File đính kèm

  • BUILDING FILE GENERAL.xlsx
    182.8 KB · Đọc: 8
Lần chỉnh sửa cuối:
Xin kính chào Anh chị em và Bluesofts. Cảm ơn Bluesosfts rất nhiều vì add in atool thực sự tiện dụng và hiệu quả.
Có vấn đề ngày muốn nhờ BLS giúp ạ. Em có một bảng tổng hợp phân tích dữ liệu gồm nhiều sheet, dữ liệu ở các sheet có liên quan đến nhau bằng các hàm EX và hàm BS-SQL. ( so sánh, tìm kiếm, xuất dữ liệu). Khi em sử dụng chức năng kết nối qua mạng LAN để nhiều người cùng nhập dữ liệu thì add in atool không cho chia sẻ file này vì lý do file này " Chứa các công thức mảng được liên kết với các cửa sổ làm việc khác" ----theo google dịch a.
Em làm việc trong QĐ do vậy không tiện attach file đó lên, mong BLS chỉ cách khắc phục. Em cảm ơn ạ
 
Xin kính chào Anh chị em và Bluesofts. Cảm ơn Bluesosfts rất nhiều vì add in atool thực sự tiện dụng và hiệu quả.
Có vấn đề ngày muốn nhờ BLS giúp ạ. Em có một bảng tổng hợp phân tích dữ liệu gồm nhiều sheet, dữ liệu ở các sheet có liên quan đến nhau bằng các hàm EX và hàm BS-SQL. ( so sánh, tìm kiếm, xuất dữ liệu). Khi em sử dụng chức năng kết nối qua mạng LAN để nhiều người cùng nhập dữ liệu thì add in atool không cho chia sẻ file này vì lý do file này " Chứa các công thức mảng được liên kết với các cửa sổ làm việc khác" ----theo google dịch a.
Em làm việc trong QĐ do vậy không tiện attach file đó lên, mong BLS chỉ cách khắc phục. Em cảm ơn ạ

Em mở file này ra, vào menu “Data”-> Edit Link, kiểm tra các file lên kết, nếu không tồn tại thì giữ bỏ hoặc phải xác minh lại đường dẫn nhé. Atools khi chia sẻ file qua mạng nó kiểm tra liên kết phải thực sự tồn tại.
 
Em mở file này ra, vào menu “Data”-> Edit Link, kiểm tra các file lên kết, nếu không tồn tại thì giữ bỏ hoặc phải xác minh lại đường dẫn nhé. Atools khi chia sẻ file qua mạng nó kiểm tra liên kết phải thực sự tồn tại.
cảm ơn anh, em đã hiểu nguyên nhân, đã khắc phục được rồi ạ
 
Hi Mr Tuân
Anh cho mình hỏi mình muốn lấy các dòng ở Cột STT có Chữ và Số và không lấy dòng trắng thì Điều kiện khai báo như thế nào ?
STTMA_HHTEN_SAN_PHAMĐVTKHOI_LUONGDON_GIATHANH_TIEN
AH000ATIVI Acái
1​
1000​
1000​
1H0001TIVI 1cái
2​
2000​
4000​
2H0002TIVI 2cái
3​
3000​
9000​
H0002TIVI cái
3​
3000​
9000​
H0002TIVI cái
3​
3000​
9000​
H0002TIVI cái
3​
3000​
9000​
3H0003TIVI 3cái
4​
4000​
16000​
4H0004TIVI 4cái
5​
5000​
25000​
5H0005TIVI 5cái
6​
6000​
36000​
6H0006TIVI 6cái
7​
7000​
49000​
7H0007TIVI 7cái
8​
8000​
64000​
8H0008TIVI 8cái
9​
9000​
81000​
9H0009TIVI 9cái
10​
10000​
100000​
10H00010TIVI 10cái
11​
11000​
121000​
 
Hi Mr Tuân
Anh cho mình hỏi mình muốn lấy các dòng ở Cột STT có Chữ và Số và không lấy dòng trắng thì Điều kiện khai báo như thế nào ?
STTMA_HHTEN_SAN_PHAMĐVTKHOI_LUONGDON_GIATHANH_TIEN
AH000ATIVI Acái
1​
1000​
1000​
1H0001TIVI 1cái
2​
2000​
4000​
2H0002TIVI 2cái
3​
3000​
9000​
H0002TIVIcái
3​
3000​
9000​
H0002TIVIcái
3​
3000​
9000​
H0002TIVIcái
3​
3000​
9000​
3H0003TIVI 3cái
4​
4000​
16000​
4H0004TIVI 4cái
5​
5000​
25000​
5H0005TIVI 5cái
6​
6000​
36000​
6H0006TIVI 6cái
7​
7000​
49000​
7H0007TIVI 7cái
8​
8000​
64000​
8H0008TIVI 8cái
9​
9000​
81000​
9H0009TIVI 9cái
10​
10000​
100000​
10H00010TIVI 10cái
11​
11000​
121000​

Bạn làm như sau.
Giả thiết bảng đặt tên là data
=bs_sql(“SELECT * FROM data WHERE stt IS NOT NULL”)
 
Xin gửi tới các bạn phiên bản mới Add-in A-Tools v9.1.1.1 (ngày 01-07-2019)

atools9111.png

(Chi tiết lịch sử nâng nâng cấp các phiên bản tại đây)​

v9.1.1.1: 01-07-2019 (Add-in A-Tools 2019)
+ Nâng cấp (*): Máy chủ khi chia sẻ Excel qua mạng cho phép để chế độ SLEEP, các user trong mạng vẫn mở và đồng bộ dữ liệu cho nhau.
(Máy chủ để SLEEP nhưng phải được cắm điện - không chạy PIN). Việc này giúp máy chủ tiết kiện điện, các link kiện ngoại vi làm việc ít hơn.

+ Sửa: Máy khách khi mở vùng máy chủ không để lại màn mình trống. Tình huống này xảy ra với phiên bản cũ trên Excel 2013 trở đi,
do A-Tools tự đóng file trắng đang mở.

+ Sửa: nút "Đóng" vùng/sheet phía máy khách sẽ yêu cầu máy chủ sẽ tự động đóng file Excel có vùng đang chia sẻ đó. Nếu:
- Máy chủ đặt chế độ "Chỉ mở CSDL nếu mách khách yêu cầu"
- Không còn máy khách nào mở file Excel này nữa.

+ Sửa: việc đồng bộ dữ liệu và trạng thái vùng chọn của các user khi đang mở cùng một sheet tốt hơn với Office 2016, Office 365.
+ Sửa: chức năng Nhập liệu nâng cao chạy tốt hơn trên Excel 64-bit khi máy khách kết nối sheet excel ở máy chủ.
+ Sửa: lỗi Excel 64-bit thỉnh thoảng tự đóng khi mở file.
+ Sửa: máy khách bị ngắt kết nối nếu đang mở Validation List để chọn giá trị, có một user khác trong mạng Chat đến.

+ Sửa: Hàm BS_SQL với báo cáo phân nhóm. Giá trị của cột phân nhóm được giữ nguyên kiểu giá trị khi nó được ghi vào dòng cộng nhóm (Footer)
Việc này giúp bạn format hoặc dùng các hàm của Excel tính toán trên các cột phân nhóm linh động hơn.
Phiên bản cũ luôn đưa về dạng TEXT dù kiểu giá trị là số hoặc ngày tháng. Chỉ ghi ở dòng Footer còn dòng chi tiết vẫn đúng kiểu giá trị.

+ Thêm: Các thuộc tính DefaultValue(DEF), PicIsLink(LINK), RATIO, CellIsUnlocked được thêm vào các class thư viện lập trình VBA: BSFormulaInfo, BSUserRange.

v9.1.1.0: 20-06-2019 (Add-in A-Tools 2019)
+ Sửa: thuộc tính DEF=value không ổn định ở các phiên bản trước (lúc chạy lúc không).
+ Nâng cấp: Tập tin hướng dẫn sử dụng hàm VTC "Report with multi columns - Function VTC - Báo cáo tách cột.xls" chi tiết hơn.

v9.1.0.9: 12-06-2019 (Add-in A-Tools 2019)
+ Nâng cấp: Thiết lập vùng, sheet chia sẻ mạng từ máy chủ, cho phép tùy chọn khóa các ô trong sheet hay không (Locked).
Ngầm định: "Không khóa ô". Tức sheet được chia sẻ có protect nhưng vẫn cho nhập liệu.
Nếu bỏ chọn "Không khóa ô" thì sheet được protect và giữu những thiết lập "Locked", "Hidden" của người dùng.

+ Nâng cấp: Màn hình quản trị máy chủ, máy khách tự động hiển thị thông báo và link xem video hướng dẫn khi Excel mất Theme.
+ Sửa: Chức năng Nhập liệu nâng cao cập nhật dánh sách tìm kiếm tốt hơn khi mở nhiều file Excel có thiết lập tính năng này.

v9.1.0.8: 01-06-2019 (Add-in A-Tools 2019)
+ Nâng cấp: Tự khôi phục Theme. Khi người dùng nhận thấy giao diện cửa sổ của A-Tools không được bóng mượt có nghĩa là đã bị mất Theme.
Cách khắc phục: bạn chạy Excel dạng "Run Administrator" sau đó tắt Excel rồi mở lại là được.
+ Sửa: Trong Excel 2010, 2007 lỗi hiển thị màn hình tìm kiếm của :Nhập liệu nâng cao" khi mở file khác.

+ Sửa: Màn hình danh sách tìm kiếm trong "Nhập liệu nâng cao" tự hiển thị nếu người dùng vô tình thu nhỏ quá giới hạn không nhìn thấy.
+ Nâng cấp: Màn hình tạo DBKEY hiển thị hằng số (trị số) loại CSDL trong mục "DBType:". Hằng số này phục vụ cho khai báo thuộc tính loại CSDL.
+ Nâng cấp: Chức năng SQL Builder chạy tốt hơn các phiên bản cũ. Tạo công thức tạo có thêm thuộc tính DBTYPE=n (n: là hằng số loại CSDL).
Nếu CSDL là Excel thì khai báo DBTYPE được bỏ qua.
(*) Khi một file Excel chia sẻ qua mạng nếu bản thân nó kết nối tới một CSDL bên ngoài không phải loại Excel thì bắt buộc phải khai báo DBTYPE trong tham số Options của các hàm CSDL như BS_SQL.
Việc khai báo sẽ giúp máy khách nhận dạng dữ liệu ngày tháng trên sheet Excel chính xác hơn. Ví dụ:
=BS_SQL("SELECT ... FROM..." , "DBKEY=YourDbkey; DBTYPE=5;")
(5 ở đây là hằng số loại CSDL SQL Server)

+ Sửa: Thuộc tính DBTYPE không nhận đúng giá trị phía máy khách, nếu file Excel này được kết nối từ máy chủ. Phiên bản cũ nếu không nối mạng thì chạy đúng.

+ Sửa: Hàm BS_PIC được sửa như sau:
- Tự động xóa ảnh nếu đường dẫn file hoặc URL đưa vào tham số hàm là rỗng. Phiên bản ảnh vẫn bị giữ nguyên dù tham số rỗng.
- Kết quả trả về của hàm là giá trị rỗng nếu hàm chạy thành công. Phiên bản cũ luôn hiện giá trị #N/A.

DOWNLOAD
 
anh ơi cho em hỏi chút ah.
Em đang sử dụng Add-in a Tools bản mới nhất ngày 1.7. Dữ liệu của em phải xử lý đến hơn 100.000 dòng tuy nhiên khi em dùng BS_SQL("select * from [data$]") với dữ liệu < 65k dòng thì chạy ra data, lớn hơn 65K dòng thì báo VALUE, vậy có cách nào sửa lỗi này ko ah?
Các file của em xử lý thường rất lớn (từ trên 100k dòng trở lên) - em cảm ơn nhiều ah
 
Web KT
Back
Top Bottom