2010-03-24 39 views
12

Tôi gặp sự cố với VBScript khi kết nối với Cơ sở dữ liệu MDB truy cập. Nền tảng của tôi là Vista64, nhưng phần lớn các tài nguyên trên mạng dành cho ASP/IIS7.VBScript & Access MDB - 800A0E7A - "Không thể tìm thấy nhà cung cấp. Có thể không được cài đặt đúng cách"

Rất đơn giản, tôi không thể kết nối. Tôi nhận được lỗi sau: 800A0E7A - "Nhà cung cấp không thể tìm thấy Nó có thể không được cài đặt đúng cách"

Mã của tôi là:

Set conn = CreateObject("ADODB.Connection") 
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\database.MDB" 
conn.Open strConnect 

Cho đến nay tôi đã chạy% WINDIR% \ System32 \ odbcad32.exe để cố gắng cấu hình trình điều khiển ở chế độ 32 bit, nhưng nó đã không thực hiện các trick. Bất kỳ đề xuất nào cũng sẽ được đánh giá rất cao

Cũng giống như một bổ sung, tôi đang cố gắng để có được tập lệnh .vbs này để chạy bằng cách nhấp đúp và để nó hoạt động. Mã này không được nhúng vào một ngôn ngữ/tập lệnh khác.

+1

C: \ WINDOWS \ system32 \ msjetoledb40.dll có trên máy của bạn không? Ngoài ra, hãy thử tạo một tệp có tên là test.udl và khởi chạy nó. Nhà cung cấp Microsoft.Jet.OLEDB.4.0 có xuất hiện trong danh sách nhà cung cấp không? – dudeNumber4

+0

C: \ WINDOWS \ system32 \ msjetoledb40.dll không có trên máy và Microsoft.Jet.OLEDB.4.0 không xuất hiện trong danh sách Nhà cung cấp – Perma

+0

Sau đó, có vẻ như bạn cần phải cài đặt MDAC: http: // www familyid = 6C050FE3-C795-4B7D-B037-185D0506396C & displaylang = vi Tôi không biết tại sao bạn sẽ cần phải làm điều đó vì nó đã là một phần của hệ điều hành trong nhiều năm, nhưng nó không làm tổn thương bất cứ điều gì ... – dudeNumber4

Trả lời

15

chạy script với SysWOW64 phiên bản
C: \ Windows \ SysWOW64 \ wscript.exe hoặc cscript
thay vì phiên bản 64bit mặc định từ C: \ Windows \ System32

+0

+1 - Đã xảy ra sự cố tương tự và vấn đề này đã giải quyết cho tôi. – JNK

0

Kiểm tra này ra

EDIT: Cảnh báo, liên kết bên dưới sẽ chuyển thẳng tới phần tải xuống của Trình điều khiển Hệ thống Office 2007: Thành phần Dữ liệu Kết nối.

http://www.microsoft.com/download/en/confirmation.aspx?id=23734

cài đặt nó, đọc các hướng dẫn và tất cả mọi thứ đã làm việc như một nét duyên dáng.

6

Trên Microsoft TechNet Configuring IIS to Run 32-bit Applications on 64-bit Windows (IIS 6.0):

Để kích hoạt IIS để chạy các ứng dụng 32-bit trên Windows 64-bit:

  1. Mở một dấu nhắc lệnh và điều hướng đến SystemDrive% \ thư mục Inetpub \ AdminScripts% .
  2. Gõ lệnh sau:

    cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 "true" 
    
  3. Nhấn ENTER.

Ngoài ra, thông qua Internet Information Services (IIS) Manager:

  1. Pools Access Application
  2. Nhấp chuột phải vào "ASP.NET v4.0 Classic"
  3. Chọn "Set Application Pool Mặc định ... "
  4. Dưới Thay đổi chung" Bật ứng dụng 32 bit "từ" False "thành" True "
  5. Nhấp vào OK

Nếu bạn muốn chạy cả ứng dụng 32 bit và 64 bit, có nhiều blog khác nhau để làm điều đó, chẳng hạn như blog của Rakki MuthukumarIIS7 - Running 32-bit and 64-bit ASP.NET versions at the same time on different worker processes.

3

Ngoài ra, thông qua Internet Information Services (IIS) Manager:

Pools Access Application Nhấp chuột phải vào "ASP.NET v4.0 Classic" Chọn "Set Application Pool Defaults ..." Dưới sự thay đổi chung "Bật ứng dụng 32 bit" từ "False" thành "True" Nhấp vào OK

Khi tôi thay đổi cài đặt này, nó hoạt động. cảm ơn các bạn .. :)

2

Chỉ cần sử dụng

strConnect = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source ="

nếu bạn đã tất cả các trình điều khiển cần thiết

0

Tôi đã sử dụng tính năng này làm việc cho tôi mà không có bất kỳ lỗi nào:

sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & myPath & ";HDR=Yes';" 
Set con = CreateObject("ADODB.Connection") 
Set rs = CreateObject("ADODB.Recordset") 

con.Open sconnect 
sSQLQry = "SELECT * FROM [" & tableName & "];" 
Set rs = con.Execute(sSQLQry) 
Các vấn đề liên quan