vba_gpe
Thành viên thường trực




- Tham gia
- 15/12/10
- Bài viết
- 296
- Được thích
- 44
- Nghề nghiệp
- Thất nghiệp
Chào anh chị trong diễn đàn
Hiện em đang tập tành viết 1 ứng dụng Addin cho Excel trên VB.net
Em dùng truy vấn SQL để kết nối dữ liệu từ file Excel để đưa vào Table trong .Net
Máy em đang dùng:
- Win 64 bit
- Office 32 bit. (office 2016)
Sau khi buil cài đặt và kiểm tra tính năng này trên các máy thì cụ thể như sau:
Câu truy vấn Excel xls.
Câu truy vấn ".xlsx"
Kết quả:
+ Trên máy có Office 32 bit, không phân biệt windows (32, 64 bit) câu truy vấn đều hoạt động tốt.
+ Trên máy có Office 64 bit, thì câu truy vấn bị lỗi: "Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine"
Em thử tìm trên các trang mạng thì có hướng xử lý như sau:
1. Cài Microsoft Accesss data Engineer: Em thử cài trên máy 64 bit cả 2 phiên bản đều không ăn thua.
2. Đổi như sau vẫn lỗi:
Từ
thành
3. Đổi Target CPU trên máy tính trước khi build: Từ Any CPU về x86 thì câu truy vấn hoạt động được trên cả office 32 bit và 64 bit office. (Em test thử 1 ứng dụng độc lập).
Nhưng, khi đổi targetCPU như thế đối với dự án VSTO này chỉ hoạt động trên office 32, còn trên office 64 bit là bị lỗi lúc kích hoạt addin luôn.
Có cách nào:
- Vẫn chọn phương án build theo Target CPU: Any CPU, dùng câu lệnh SQL nào để xài được trên cả 64 bit office và 32 bit office (Chia làm 2 câu lệnh phân theo office của máy hiện tại).
Em cảm ơn mọi người rất nhiều.
Hiện em đang tập tành viết 1 ứng dụng Addin cho Excel trên VB.net
Em dùng truy vấn SQL để kết nối dữ liệu từ file Excel để đưa vào Table trong .Net
Máy em đang dùng:
- Win 64 bit
- Office 32 bit. (office 2016)
Sau khi buil cài đặt và kiểm tra tính năng này trên các máy thì cụ thể như sau:
Câu truy vấn Excel xls.
Mã:
If fileExtension = ".xls" Then conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Import_FileName & ";" & "Extended Properties='Excel 8.0;HDR=YES;'"
Mã:
If fileExtension = ".xlsx" Then conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Import_FileName & ";" & "Extended Properties='Excel 12.0 Xml;HDR=YES;'"
+ Trên máy có Office 32 bit, không phân biệt windows (32, 64 bit) câu truy vấn đều hoạt động tốt.
+ Trên máy có Office 64 bit, thì câu truy vấn bị lỗi: "Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine"
Em thử tìm trên các trang mạng thì có hướng xử lý như sau:
1. Cài Microsoft Accesss data Engineer: Em thử cài trên máy 64 bit cả 2 phiên bản đều không ăn thua.
2. Đổi như sau vẫn lỗi:
Từ
Mã:
Microsoft.Jet.OLEDB.4.0
Mã:
Provider=Microsoft.ACE.OLEDB.12.0
Nhưng, khi đổi targetCPU như thế đối với dự án VSTO này chỉ hoạt động trên office 32, còn trên office 64 bit là bị lỗi lúc kích hoạt addin luôn.
Có cách nào:
- Vẫn chọn phương án build theo Target CPU: Any CPU, dùng câu lệnh SQL nào để xài được trên cả 64 bit office và 32 bit office (Chia làm 2 câu lệnh phân theo office của máy hiện tại).
Em cảm ơn mọi người rất nhiều.
Lần chỉnh sửa cuối: