ผู้ให้บริการ 'Microsoft.ACE.OLEDB.12.0' ไม่ได้ลงทะเบียนในเครื่องท้องถิ่น


442

ฉันพยายามรับข้อมูลจากไฟล์ Excel จากเหตุการณ์การคลิกปุ่ม สตริงการเชื่อมต่อของฉันคือ:

 string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\source\\SiteCore65\\Individual-Data.xls;Extended Properties=Excel 8.0;";

เมื่อฉันคลิกที่ปุ่มฉันได้รับข้อผิดพลาดดังต่อไปนี้:

ผู้ให้บริการ 'Microsoft.ACE.OLEDB.12.0' ไม่ได้ลงทะเบียนในเครื่องท้องถิ่น

ฉันไม่มีเงื่อนงำในการแก้ไขปัญหานี้ ระบบปฏิบัติการของฉันคือ Windows 7


5
เป็นเพียงความคิดเห็นสัมผัส: การใช้ OLEDB เพื่ออ่านไฟล์ Excel เป็นเทคโนโลยีโบราณช้ามากและอย่างที่คุณค้นพบจำเป็นต้องติดตั้งแพ็คเกจเพิ่มเติมด้วยตนเองบนเครื่องเป้าหมายของคุณ (ได้รับคำถามถูกถามในปี 2011) แทนที่จะใช้ ClosedXml (มีให้บริการที่ NuGet) ซึ่งใช้งานได้ทันที
Shaul Behr

3
@ShaulBehr คงจะดี แต่ ClosedXml ใช้ได้กับไฟล์. xlsx เท่านั้นไม่ใช่. xls
Jimmy

2
หากคุณกำลังนำเข้าสู่เซิร์ฟเวอร์ SQL คุณสามารถเรียกใช้แบบสอบถามนี้จาก ssms: execute master.dbo.xp_enum_oledb_providers มันจะบอกคุณว่าผู้ให้บริการคิดว่าคุณมี มันเก่าแก่ฉันฉันมีทั้ง Microsoft.ACE.OLEDB.16.0 และ Microsoft.ACE.OLEDB.12.0 แต่เมื่อฉันพยายามนำเข้าข้อมูลฉันได้รับ 'ไม่ลงทะเบียนในเครื่องท้องถิ่นของคุณ' เป็น OP สำหรับ Excel ทั้ง 16 รูปแบบไฟล์และ Excel 2007 (oledb.16.0 และ oledb.12.0 ตามลำดับ) มันสมเหตุสมผลแล้วที่จะลดความสูญเสียของคุณและยอมแพ้กับซอฟต์แวร์ของ Microsoft ณ จุดนี้
user1040323

1
@ user1040323 execute master.dbo.xp_enum_oledb_providersบอกคุณว่ามีอะไรในเซิร์ฟเวอร์ไม่ได้อยู่ในLocal Machine ของคุณ
Nathan Goings

1
ที่นี่คนที่ควรจะทำงาน; - มันคือ: ไม่ใช่เอกสารจริงๆ แต่ฉันหาวิธีติดตั้งทั้งรุ่น 32 บิตและ 64 บิต เพียงเพิ่มอาร์กิวเมนต์บรรทัดคำสั่ง "/ passive" ในคำสั่ง: "C: \ directory path \ AccessDatabaseEngine_x64.exe" / passive
TaW

คำตอบ:


533

ดีคุณต้องติดตั้ง คุณกำลังมองหา:


44
ฉันดาวน์โหลดส่วนประกอบเหล่านี้และพวกเขาใช้งานไม่ได้ฉันต้องดาวน์โหลด Microsoft Access Database Engine 2010 ที่เผยแพร่ซ้ำได้จากที่นี่: microsoft.com/en-in/download/details.aspx?id=13255ฉันแน่ใจว่านั่นเป็นเพราะฉัน ใช้ MS Office 2013 ขอบคุณที่ชี้ให้ฉันไปในทิศทางที่ถูกต้อง
Sizons

5
ฉันต้องติดตั้งเอ็นจิ้นฐานข้อมูลการเข้าถึงและไดร์เวอร์ระบบ Office 2007: ส่วนประกอบการเชื่อมต่อข้อมูลที่นี่microsoft.com/en-us/download/confirmation.aspx?id=23734เพื่อให้ทำงานได้
Chris

6
สถานการณ์ของฉันทุกอย่างทำงานได้ดีแล้วทันใดนั้นก็เริ่มได้รับข้อผิดพลาดนี้ ดังนั้นอาจเกิดอะไรขึ้นที่จะทำให้สิ่งนี้? ไม่มีการเปลี่ยนแปลงรหัส
eetawil

21
ในกรณีของฉันฉันต้องเปลี่ยนจาก "CPU ใด ๆ " เป็น x64 เพื่อให้ตรงกับสถาปัตยกรรมของฉัน
Rob Sedgwick

2
แจ็คเดอะริปเปอร์อ้างถึงวิธีการแก้ปัญหาที่ให้ไว้ในคำตอบนั้นไม่ใช่ความคิดเห็น การติดตั้ง2007 Office System Driver: Data Connectivity Componentsแก้ไขปัญหาทันที
silkfire

156

ตัวเผยแพร่ 'Microsoft Access Database Engine 2010 Redistributable รุ่น 64 บิต' ที่จะช่วยให้คุณใช้ผู้ให้บริการ 'Microsoft.ACE.OLEDB.12.0' ได้ที่นี่:
http://www.microsoft.com/en-us/ ดาวน์โหลด / details.aspx? id = 13255

หากคุณใช้การดาวน์โหลดจากคำตอบที่ยอมรับคุณจะต้องสร้าง x86 ตามที่ระบุไว้โดย @ backtestbroker.com


18
หากใช้ VS 2012 ตรวจสอบให้แน่ใจว่าได้เลือกช่องทำเครื่องหมาย "ชอบ 32 บิต" ในคุณสมบัติ >> สร้าง >> การกำหนดค่าทั่วไปของโครงการ
devstruck

3
ฉันใช้ VS 2008 (ไม่ต้องถาม) และโซลูชันนี้ใช้งานไม่ได้จนกว่าฉันจะอ่านเคล็ดลับ post_erasmus และตั้งค่า 'แพลตฟอร์มเป้าหมาย' เป็น x64 ในคุณสมบัติ >> สร้าง >> การกำหนดค่าทั่วไปของแอปพลิเคชันของฉัน จัดเรียงขอบคุณ!
ทรัพยากร

1
ลิงค์ในคำตอบนี้ช่วยให้คุณสามารถดาวน์โหลดและติดตั้งเวอร์ชัน 32 บิต แม้ว่าฉันจะมี Windows 7 64 บิตก็ตาม แต่ IIS Express ของ Visual Studio 2013 จะทำงานในโหมด 32 บิตโดยค่าเริ่มต้นและฉันมีส่วนประกอบ Office 2013 บางตัวติดตั้งไว้ใน 32 บิตแล้วดังนั้นการติดตั้ง 32 บิตจึงเป็นสิ่งที่ฉันต้องการ
Eric Barr

1
ด้วยคำตอบนี้ฉันต้องตั้ง "เปิดใช้งานแอปพลิเคชัน 32 บิต" ในกลุ่มแอพพลิเคชั่นเป็นเท็จ
iowatiger08

1
สิ่งนี้ช่วยแก้ไขปัญหาของฉันได้ แอป VS 2019 ของฉันรวบรวมโดยใช้ CPU ใด ๆ ที่ทำให้เกิดไลบรารี x64 ฉันติดตั้ง Office 2013 รุ่น 32 บิตซึ่งทำให้ฉันไม่สามารถติดตั้ง x64 Access DB Engine หลังจากติดตั้ง Office รุ่น x64 ฉันก็สามารถติดตั้งโปรแกรม x64 และตอนนี้ทุกอย่างทำงานได้ DLL นรกอาศัยอยู่บน
Mike Lowery

74

ขึ้นอยู่กับแอพ (32/64 บิต) โดยใช้การเชื่อมต่อที่คุณสามารถติดตั้งได้

สรุป:

  • สำนักงานทั้งหมดตั้งแต่ 2007-2016 มีผู้ให้บริการ "Microsoft.ACE.Oledb.12.0"
  • ขึ้นอยู่กับสถาปัตยกรรมแอปพลิเคชันของคุณเลือกเอ็นจิ้นรันไทม์ที่เหมาะสม (32/64) 6
  • ตรวจสอบผู้ให้บริการของคุณด้วยคำสั่ง powershell จากทั้งเชลล์ 32 และ 64 บิต :

    (New-Object system.data.oledb.oledbenumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION 
  • และคุณจะเห็นว่าผู้ให้บริการของคุณสามารถใช้ระบบใดได้บ้าง

เรื่องยาว: สตริงสามารถพบได้กับhttp://live.sysinternals.com/strings.exe

เช่น. บนระบบ 64 บิตที่ติดตั้งไดรเวอร์ 32 บิต

strings.exe -u -n 10 "c:\Program Files (x86)\Common Files\microsoft shared\OFFICE12\MSO.DLL" | findstr "ACE.O"
strings.exe -u -n 10 "c:\Program Files (x86)\Common Files\microsoft shared\OFFICE14\MSO.DLL" | findstr "ACE.O"
strings.exe -u -n 10 "c:\Program Files (x86)\Common Files\microsoft shared\OFFICE15\MSO.DLL" | findstr "ACE.O"

แม้ในสำนักงานที่กำลังจะมาถึง 2016

c:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX64\Microsoft Shared\OFFICE16\MSO.DLL
c:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\OFFICE16\MSO.DLL

คุณจะพบสตริง

  • Microsoft.ACE.OLEDB

  • Microsoft.ACE.OLEDB.12.0

Office 2013 ยังมาพร้อมกับ csi.dll

c:\Program Files (x86)\Common Files\microsoft shared\OFFICE15\Csi.dll
c:\Program Files\Common Files\Microsoft Shared\OFFICE15\Csi.dll

ซึ่งมี " Microsoft.ACE.OLEDB.15.0 "

และ Office 2016

c:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX64\Microsoft Shared\OFFICE16\Csi.dll
c:\Program Files\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\OFFICE16\Csi.dll

ซึ่งมีรุ่น " Microsoft.ACE.OLEDB.16.0 "


ฉันพบข้อผิดพลาดใน VS2015 โดยใช้ Nuget LinqToExcel เปิดออกเพราะฉันติดตั้ง x64 ACE ฉันต้องสร้างอย่างชัดเจนสำหรับ x64 (เครื่องมือจัดการการกำหนดค่า) แทนการกำหนดเป้าหมาย CPU ใด ๆ
subsci

Powershell แสดงว่ามีการติดตั้ง "Microsoft.ACE.Oledb.12.0" แล้ว อย่างไรก็ตามการติดตั้งแพคเกจ Access 2007 (aka 2007 Office System Driver: Data Connectivity Components ) ทำให้ฉันตื่นอยู่เสมอ อยู่ในระบบของฉันแล้ว: Office 2016 Ent, Visual Studio 2017 Ent
SushiGuy

6
สคริปต์ PowerShell ที่แจ้งรุ่นที่ติดตั้งเป็นอัจฉริยะ! ขอบคุณ @Bernhard
Rob Bowman

บิต offtopic แต่ PowerShell ง่ายสำหรับโปรแกรมควบคุม ODBC ของคุณ:Get-OdbcDriver | select Name,Platform
เบอร์นาร์ด

วิธีนี้แก้ไขปัญหาสำหรับฉันบนเครื่องเซิร์ฟเวอร์ 64 บิตโดยดาวน์โหลดรันไทม์ 32-BIT Access 2016 โดยทั่วไปเริ่มต้นด้วย 32 บิตเพื่อให้อยู่ในด้านความปลอดภัย (สิ่งเลวร้ายเกิดขึ้นเมื่อคุณพยายามเปลี่ยนสิ่งต่าง ๆ เป็น 64 บิตในโครงการ)
Eric Mutta

45

สิ่งแรกที่คุณต้องตรวจสอบคือการกำหนดค่าบิวด์ของแอปพลิเคชันของคุณ

  • ถ้าคุณมี สร้างโครงการภายใต้แพลตฟอร์ม x86ดังนั้นเพื่อแก้ไขปัญหาของคุณคุณควรติดตั้งแพ็คเกจต่อไปนี้บนเครื่องของคุณ:

    1. ในการใช้ผู้ให้บริการ 'Microsoft.ACE.OLEDB.12.0' คุณจะต้อง ติดตั้ง Microsoft Access Database Engine 2010 Redistributable ก่อนการติดตั้งนี้มีอยู่ที่: http://www.microsoft.com/download/en/details.aspx ?

      หลังจากการติดตั้งเสร็จสมบูรณ์ให้ลองเรียกใช้แอปพลิเคชันของคุณหากสามารถแก้ปัญหาได้ดีถ้าไม่ให้ทำต่อในขั้นตอนที่ 2

    2. ขั้นตอนต่อไปนี้เป็นวิธีแก้ปัญหาที่ไม่สามารถอธิบายได้ซึ่งใช้งานได้กับ Office 2010 แม้ว่าจะเป็นส่วนประกอบการเชื่อมต่อข้อมูลของ Office 2007 ฉันไม่แน่ใจว่าทำไมจึงใช้งานได้ แต่มันทำและสิ่งนี้ได้รับการพิสูจน์แล้วว่าทำงานเกือบทุกกรณี คุณต้องติดตั้งไดรเวอร์ระบบ Office 2007: ส่วนประกอบการเชื่อมต่อข้อมูลการติดตั้งนี้มีอยู่ที่: http://www.microsoft.com/download/en/confirmation.aspx?id=23734

      หลังจากการติดตั้งนี้เสร็จสมบูรณ์ให้ลองเรียกใช้แอปพลิเคชันของคุณซึ่งจะช่วยแก้ไขปัญหาได้

  • หากคุณกำลังพยายามเรียกใช้ แอปพลิเคชั่นที่สร้างขึ้นภายใต้แพลตฟอร์ม x64 หรือ AnyCPUฉันขอแนะนำให้ตรวจสอบก่อนว่ามันทำงานอย่างที่คาดไว้ภายใต้แพลตฟอร์ม x86 ในกรณีที่ไม่ได้ทำงานภายใต้แพลตฟอร์ม x86 นั้นให้ทำตามขั้นตอนในส่วนแรกและตรวจสอบว่ามันทำงานตามที่คาดไว้

    ฉันได้อ่านว่าไดรเวอร์ MS Access ซึ่งรวมถึงไดรเวอร์ฐานข้อมูล OLEDB ทำงานได้เฉพาะบนแพลตฟอร์ม x86 และไม่สามารถใช้งานร่วมกันได้ภายใต้แพลตฟอร์ม x64 หรือ AnyCPU แต่สิ่งนี้ดูเหมือนจะไม่จริง ฉันตรวจสอบว่าแอปพลิเคชันของฉันทำงานเมื่อสร้าง x86 จากนั้นฉันติดตั้ง Access Database Engine โดยใช้แฟล็กแบบพาสซีฟ

    1. ก่อนดาวน์โหลดไฟล์ในเครื่องคุณสามารถดาวน์โหลดการติดตั้งได้ที่นี่: http://www.microsoft.com/en-us/download/details.aspx?id=13255
    2. การติดตั้งโดยใช้พรอมต์คำสั่งด้วยแฟล็ก '/ passive' ในพรอมต์คำสั่งให้เรียกใช้คำสั่งต่อไปนี้: 'AccessDatabaseEngine_x64.exe / passive'

    หลังจาก 2 ขั้นตอนเหล่านี้ฉันจัดการเพื่อเรียกใช้แอปพลิเคชันของฉันหลังจากสร้างใน x64 หรือ AnyCPU build configuration ดูเหมือนว่าจะแก้ปัญหาของฉัน

หมายเหตุ: ลำดับขั้นตอนดูเหมือนว่าจะสร้างความแตกต่างดังนั้นโปรดปฏิบัติตาม


5
ฉันมีปัญหาที่ฉันเปลี่ยนจากแอพพลิเคชั่น 32 บิตเป็น 64 บิตและมันก็ไม่ได้ทำงานอีกต่อไป ส่วนที่สองของคำแนะนำของคุณทำงานได้อย่างสมบูรณ์! / Passiveธงช่วยให้การติดตั้งแม้จะมี 32bit Microsoft Office
Freddy

1
เคล็ดลับ: แตก AccessDatabaseEngine_x64.exe ไปยังโฟลเดอร์เพื่อรับ AceRedist.msi และไฟล์ Data.cab เปิด cmd AceRedist.msi /passiveพรอมต์ในโหมดผู้ดูแลระบบและดำเนินการ
Jeremy Thompson

1
ขอบคุณมาก. ตัวเลือกแรกทำงานให้ฉัน ฉันจำได้ว่าต้องเผชิญกับความยุ่งยากในการถอนการติดตั้ง Office 32 บิตและหลังจากติดตั้ง Office 64 บิตปัญหานี้ได้รับการแก้ไขก่อนหน้า แต่ส่วนประกอบออฟฟิศ 64 บิตนี้ใช้เวทมนตร์แทน
Biki

เพราะ 2 point ฉันคงที่แล้ว ขอบคุณมาก. ฉันต้องติดตั้งmicrosoft.com/download/en/confirmation.aspx?id=23734 อันนี้
SENA

33

ฉันได้รับข้อผิดพลาด / ข้อยกเว้นนี้ใน Visual Studio 2010 เมื่อฉันเปลี่ยนโครงสร้างของฉันในกล่องโต้ตอบเครื่องมือจัดการการกำหนดค่าจาก "x86" เป็น "Any CPU" ไดรเวอร์ฐานข้อมูล OLEDB นี้ฉันเข้าใจว่าทำงานได้เฉพาะใน x86 และไม่รองรับ 64 บิต การเปลี่ยนการกำหนดค่าการสร้างกลับเป็น x86 แก้ปัญหาให้ฉัน


5
OLEDB เข้ากันได้กับ x64 มันสามารถทำงานภายใต้แพลตฟอร์มใดก็ได้ไม่เพียง x86 แต่เป็น CPU ใดก็ได้เช่นกัน ดูคำตอบแบบเต็มด้านล่าง: stackoverflow.com/a/32760211/3637582
Merav Kochavi

ภายใต้การดีบักแอปพลิเคชันใน Visual Studio จะช่วยเลือก x86 แทน CPU / x64 ใด ๆ ในเครื่องมือจัดการการกำหนดค่า
iknownothing

25

ฉันติดตั้งไดรเวอร์ MS และยังไม่สามารถใช้งานได้ จากนั้นฉันก็พบโพสต์บล็อกนี้เพื่อแก้ไขปัญหา อ่านที่นั่นมิฉะนั้นจะใช้สองภาพเหล่านี้ (ลิงก์จากโพสต์นั้น) เป็นข้อมูลสรุปของ TLDR:

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


กำลังจะโพสต์สิ่งนี้เป็นผลงานของฉัน นี่เป็นปัญหาของฉัน ฉันจะเปลี่ยนการตั้งค่า IIS นี้เมื่อวานนี้เนื่องจากโครงการหนึ่งในโซลูชันของฉันรวบรวม x86 ดังนั้นฉันสมมติว่ามันจะจัดคลาสโปรแกรมทั้งหมดเป็น 32 บิต
Lee

เซิร์ฟเวอร์ของฉันใช้งาน @ 64 บิต แต่ติดตั้งคอมโพเนนต์ของ Microsoft Office ไว้ที่ 32 บิต นี่เป็นการแก้ไขปัญหาของฉัน ขอบคุณ.
MarceloBarbosa

ช่างเป็นเรื่องยากมากที่จะทำงาน :( ฉันสงสัยว่าคุณสามารถใช้สคริปต์นี้ใน PowerShell และรวมเข้ากับสคริปต์การตั้งค่าเซิร์ฟเวอร์อัตโนมัติได้ไหม
David Rogers

@DavidRogers คงเป็นไปได้ แต่ฉันไม่ใช่ผู้เชี่ยวชาญใน PS ดังนั้นอย่ามองฉันเลย! ;-)
Shaul Behr

@ShaulBehr หวังว่านี่จะให้ข้อมูลเชิงลึกแก่ผู้อื่นคำสั่งเฉพาะที่ฉันใช้คือ (ในหน้าต่าง PowerShell / cmd ที่ยกระดับ): "C: \ Windows \ System32 \ inetsrv \ ./ appcmd set apppool /apppool.name:YOURAPPPOOLNAMEHERE / enable32BitAppOnWin64: จริง "
David Rogers


15

สำหรับผู้ที่ยังคงได้รับผลกระทบจากสิ่งนี้

ฉันได้รับข้อผิดพลาด ...

OLEDB error "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine."

... ตามที่อธิบายโดย OP, Shailesh Sahu

ฉันมี 64 บิต Windows 7

ปัญหาของฉันอยู่ในPowerShellสคริปต์แต่ใช้สตริงการเชื่อมต่อคล้ายกับโพสต์ของ OP ดังนั้นหวังว่าการค้นพบของฉันสามารถนำไปใช้กับ C #, PowerShell และภาษาอื่น ๆ ที่ใช้ไดรเวอร์ "Microsoft.ACE.OLEDB"

ฉันทำตามคำแนะนำในฟอรั่ม MS นี้: http://goo.gl/h73RmI

ฉันลองติดตั้งรุ่น64 บิตก่อนจากนั้นติดตั้งAccessDatabaseEngine.exe รุ่น32 บิตจากหน้านี้ http://www.microsoft.com/en-us/download/details.aspx?id=13255

แต่ก็ยังไม่มีความสุข

จากนั้นฉันก็รันโค้ดด้านล่างในPowerShell (จากไซต์ของ SQL Panda http://goo.gl/A3Hu96 )

(New-Object system.data.oledb.oledbenumerator).GetElements() | select SOURCES_NAME, SOURCES_DESCRIPTION 

... ที่ให้ผลลัพธ์นี้กับฉัน (ฉันได้ลบแหล่งข้อมูลอื่นเพื่อความกะทัดรัด) ...

SOURCES_NAME              SOURCES_DESCRIPTION                                                                       
------------              -------------------                                                                       
Microsoft.ACE.OLEDB.15.0  Microsoft Office 15.0 Access Database Engine OLE DB Provider

อย่างที่คุณเห็นฉันมี Microsoft.ACE.OLEDB 15 .0 (สิบห้า) ไม่ใช่ Microsoft.ACE.OLEDB 12 .0 (สิบสอง)

ดังนั้นฉันจึงแก้ไขสตริงการเชื่อมต่อของฉันเป็น 15 และใช้งานได้

ดังนั้นตัวอย่างข้อมูล PowerShell อย่างรวดเร็วเพื่อสาธิตวิธีการอ่อนรหัสเวอร์ชัน ...

$AceVersion = ((New-Object System.Data.OleDb.OleDbEnumerator).GetElements() | Where-Object { $_.SOURCES_NAME -like "Microsoft.ACE.OLEDB*" } | Sort-Object SOURCES_NAME -Descending | Select-Object -First 1 SOURCES_NAME).SOURCES_NAME

$connString = "Provider=$AceVersion;Data Source=`"$filepath`";Extended Properties=`"Excel 12.0 Xml;HDR=NO`";"

แก้ไขเพื่อเลือก ACE เวอร์ชันล่าสุดหากมีมากกว่าหนึ่ง

หวังว่าทุกคนที่ค้นพบสิ่งนี้สามารถตรวจสอบเพื่อดูว่ามีการติดตั้งรุ่น OLEDB ใดและใช้หมายเลขรุ่นที่เหมาะสม


สวัสดีฉันพยายามอ่านแผ่นงาน Excel ด้วย PowerShell ไฟล์ Excel ที่เก็บในไลบรารีเอกสาร SharePoint และไม่มีการติดตั้ง Excel บนเซิร์ฟเวอร์ ฉันมี windows server 2008 R2 ฉันติดตั้ง Office System Driver แล้ว: คอมโพเนนต์การเชื่อมต่อข้อมูล แต่เมื่อฉันเรียกใช้แบบสอบถามของคุณจะไม่เห็น Microsoft.ACE.OLEDB คุณมีความคิดเกี่ยวกับสิ่งนั้นหรือไม่? และข้อเสนอแนะใด ๆ ขอบคุณล่วงหน้า.
doganak

3
ฉันพบคำตอบ ฉันขอให้ผู้ดูแลระบบของเราติดตั้ง MS Access Database Engine เขาติดตั้งรุ่น x86 เมื่อฉันเรียกใช้แบบสอบถามใน PowerShell x86 อีกครั้งฉันเห็น ACE.OLEDB
doganak

รหัส PowerShell ที่ยอดเยี่ยม ฉันมีรุ่น 32 บิต (ซึ่งไม่ปรากฏในรายการ PowerShell) ซึ่งทำให้ฉันไม่สามารถติดตั้งรุ่น 64 บิตได้ เมื่อฉันลบรุ่น 32 บิตฉันสามารถติดตั้งรุ่น 64 บิตโดยไม่มีข้อความ "คุณมีส่วนประกอบ Office 32 บิต ... " เวอร์ชัน 64 บิตปรากฏขึ้นในรายการ PowerShell และแอปของฉันเริ่มทำงานได้
Doppelganger

13

แม้ว่าจะได้รับคำตอบมากมาย แต่ปัญหาที่ฉันพบยังไม่ได้กล่าวถึง

  • สถานการณ์สมมติของฉัน:ติดตั้งแอปพลิเคชัน 64 บิต, Win10-64, Office 2007 32- บิต
  • การติดตั้งAccessDatabaseEngine.exeของตัวติดตั้ง 32- บิต ที่ดาวน์โหลดมาจาก MS รายงานความสำเร็จ แต่ไม่ได้รับการติดตั้งตรวจสอบด้วย Powershell Script ของการโพสต์ด้านบนที่นี่

  • การติดตั้งAccessDatabaseEngine_X64.exe ของโปรแกรมติดตั้ง 64 บิตรายงานข้อผิดพลาดที่น่าตกใจ:

ป้อนคำอธิบายรูปภาพที่นี่

วิธีแก้ปัญหาที่ง่ายมากพบได้ที่นี่ในเว็บไซต์ Autodesk เพียงเพิ่มพารามิเตอร์ / แฝงให้กับสตริงคำสั่งเช่นนี้:

AccessDatabaseEngine_X64.exe / พาสซีฟ

การติดตั้งสำเร็จไดรเวอร์ OleDb ทำงานได้

ไฟล์ Excel ที่ฉันกำลังประมวลผลด้วย OleDb เป็นประเภท xlsx ที่ผลิตด้วย EPPlus 4.5 และแก้ไขด้วย Excel 2007


1
ฉันสามารถติดตั้ง AccessDatabaseEngine_X64.exe ด้วยวิธีปกติ แต่ฉันใช้พารามิเตอร์แบบพาสซีฟเพื่อติดตั้ง equilavent 32 บิต (AccessDataBaseEngine.exe) จากนั้นในที่สุดฉันก็สามารถเชื่อมต่อกับฐานข้อมูล Access จาก Visual Studio 2019 ได้
VolkanOzcan

10

คุณต้องเปลี่ยนแพลตฟอร์มโซลูชันจาก "ใด ๆ CPU" เป็น "x86" หรือ "x64" ขึ้นอยู่กับการติดตั้งสำนักงาน

ขั้นตอนด้านล่าง:

  1. คลิกขวาที่ไฟล์โซลูชันในโซลูชัน Explorer: ป้อนคำอธิบายรูปภาพที่นี่

    1. คลิกที่เครื่องมือจัดการการกำหนดค่า
    2. คลิกที่แพลตฟอร์มที่ใช้งานแบบเลื่อนลงหาก x86 มีอยู่แล้วจากนั้นเลือกที่อื่นคลิกที่ใหม่ ป้อนคำอธิบายรูปภาพที่นี่

    3. เลือก x86 หรือ x64 จากดรอปดาวน์แพลตฟอร์มใหม่: ป้อนคำอธิบายรูปภาพที่นี่

รวบรวมและเรียกใช้แอปพลิเคชันของคุณ


6

หาก "AccessDatabaseEngine" ที่ติดตั้งยังคงไม่สามารถช่วยได้ด้านล่างเป็นวิธีแก้ปัญหา:

คุณต้องเปลี่ยนแพลตฟอร์มโซลูชันที่ใช้งานอยู่จาก "Any CPU" เป็น "x86"

ผู้ให้บริการ OLEDB ไม่ได้ลงทะเบียนกับ Local Machine

จาก CodeProject.com


คุณสามารถเรียกใช้ได้ภายใต้แพลตฟอร์มใด ๆ ไม่ใช่เฉพาะ 'x86' แต่เป็น 'CPU ใดก็ได้' เป็น 'x64' ดูคำตอบแบบเต็มด้านล่าง: stackoverflow.com/a/32760211/3637582
Merav Kochavi

6

ฉันสามารถแก้ไขปัญหานี้โดยทำตามขั้นตอนในบทความนี้: http://www.mikesdotnetting.com/article/280/solved-the-microsoft-ace-oledb-12-0-provider-is-not-registered- on-the-ท้องถิ่นเครื่อง

จุดสำคัญสำหรับฉันคือ:

เมื่อทำการดีบั๊กด้วย IIS

โดยค่าเริ่มต้น Visual Studio ใช้รุ่น 32 บิต คุณสามารถเปลี่ยนแปลงสิ่งนี้ได้จากภายใน Visual Studio โดยไปที่เครื่องมือ»ตัวเลือก»โครงการและโซลูชัน»โครงการบนเว็บ»ทั่วไปและเลือก

"ใช้ IIS Express เวอร์ชัน 64 บิตสำหรับเว็บไซต์และโครงการ"

หลังจากตรวจสอบตัวเลือกนั้นจากนั้นตั้งค่าเป้าหมายแพลตฟอร์มของโครงการของฉันกลับเป็น "CPU ใด ๆ " (ฉันได้ตั้งค่าเป็น x86 ที่ไหนสักแห่งในกระบวนการแก้ไขปัญหา) ฉันก็สามารถเอาชนะข้อผิดพลาด


1
ขอบคุณคำตอบอื่น ๆ ส่วนใหญ่จะลดลงเหลือ 32 บิต แต่สิ่งนี้จะช่วยให้คุณก้าวไปข้างหน้าเป็น 64 บิต
illinoistim

ขอบคุณมากนี่คือสิ่งที่ฉันกำลังมองหา
Manoj Kalluri

6

ถ้าคุณกำลังดีบักโครงการเว็บตรวจสอบให้แน่ใจว่าIIS Expressกำลังทำงานใน 32 หรือ 64 บิตขึ้นอยู่กับการตั้งค่าโครงการของคุณ

ไปที่

เครื่องมือ> ตัวเลือก> โครงการและโซลูชัน> โครงการบนเว็บ

และจากนั้นตรวจสอบ (หรือยกเลิกการเลือก) 'ใช้ IIS Express เวอร์ชัน 64 บิต ... '


1
ว้าวหลายชั่วโมงลองโซลูชั่นอื่น ๆ เพียงแก้ไขของคุณ! ขอบคุณ
Hernaldo Gonzalez

5

ขั้นแรกให้ตรวจสอบว่า microsoft.ace.oledb.12.0 รุ่นใดติดตั้งอยู่ในระบบของคุณ

เช็คอินพา ธ ด้านล่าง C: \ Program Files \ Common Files \ Microsoft Files \ Common Shared \ OFFICE14 \ ACEOLEDB.DLL --64 บิตถูกติดตั้ง

เช็คอินพา ธ ด้านล่าง C: \ Program Files \ Microsoft Shared \ OFFICE14 \ ACEOLEDB.DLL (x86) Files \ Microsoft ได้รับการติดตั้ง - x86 บิต

หาก (x86) ได้รับการติดตั้งให้ใช้ตัวจัดการการกำหนดค่าเปลี่ยนแพลตฟอร์มโซลูชันเป็น x86 สำหรับ x64 เปลี่ยนเป็น x64

หากไม่พร้อมใช้งานให้ติดตั้งโดยใช้ลิงก์ด้านล่าง

https://www.microsoft.com/en-us/download/details.aspx?id=23734


3

syp_dino,

วิธีแก้ปัญหาสำหรับฉันตามที่คุณแนะนำสำหรับผู้ให้บริการ "Microsoft.ACE.OLEDB.12.0" ไม่ได้ลงทะเบียนในเครื่องท้องถิ่น "ข้อผิดพลาดคือการเปลี่ยนแพลตฟอร์มโซลูชันที่ใช้งานอยู่จาก" Any CPU "เป็น" x86 "

เมื่อฉันทำตามขั้นตอนเหล่านั้นสร้างโซลูชันขึ้นมาใหม่คว้า EXE และวางไว้บนเครือข่ายทุกอย่างทำงานได้อย่างราบรื่นบนเครื่อง Windows 7 64 บิต


คุณสามารถรันภายใต้แพลตฟอร์มใดก็ได้ไม่เพียง x86 แต่เป็น CPU ใดก็ได้เช่นกัน ดูคำตอบของฉันด้านล่าง: stackoverflow.com/a/32760211/3637582
Merav Kochavi

3

ฉันมีปัญหานี้เมื่อพยายามนำเข้าข้อมูลจากไฟล์ excel (xlsx) ไปยัง SQL Server DB โดยใช้ SSMS 2014

ควบคุมระบบ Office 2007: ส่วนประกอบเชื่อมต่อข้อมูลการติดตั้งได้เคล็ดลับสำหรับฉัน


... และหากยังไม่ได้ผลให้ลองเลือก "Excel Version" อื่นจากรายการดรอปดาวน์ของหน้าจอ "select data source" stackoverflow.com/a/56171883/283895
tgolisch

@Taran Link ใช้งานไม่ได้
evry1falls

ดูเหมือนว่าไฟล์ แต่ฉันไม่สามารถยืนยันdownload.cnet.com/…
Taran

3

ฉันประสบปัญหาเดียวกันนี้ ไปที่คุณสมบัติโซลูชันและเปลี่ยน CPU ใด ๆ เป็น x86 ฉันคิดว่ามันจะทำงานได้


3

ทำ 2 ขั้นตอนนี้: 1. ในเมนูนี้: โครงการ -> คุณสมบัติโครงการของคุณ ... -> สร้าง: ไม่เลือก "ชอบ 32- บิต" 2. ใน connectionString: เขียน cuotes ก่อนและหลังคุณสมบัติเพิ่มเติมเช่นนี้: คุณสมบัติเพิ่มเติม = ' Excel 12.0 Xml; HDR = ใช่

                var fileName = string.Format("{0}", openFileDialog1.FileName);
            //var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);
            var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties='Excel 12.0 Xml;HDR=YES'", fileName);
            var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString);
            var ds = new DataSet();

            adapter.Fill(ds, TableNmae);

            DataTable data = ds.Tables[TableNmae];
            dg1.DataSource = data;

การยกเลิกการเลือก "ชอบ 32 บิต" ดูเหมือนจะใช้ได้สำหรับฉันในขณะที่ติดตั้ง Microsoft Access Database Engine 2010 Redistributable
ไอทีค้างชำระ

ฉันไม่เลือก "Prefer 32-Bit" และมันก็ทำงานแล้ว !!!
user1584253

3

การกำหนดค่าเหล่านี้ทำงานในเดือนมกราคมปี 2020 สำหรับการสร้างเครื่องใหม่ของฉัน:

(1 - x64 เท่านั้น) Windows 10 x64, Office 365 x64, AccessDatabaseEngine_x64 2016 ติดตั้งด้วย / อาร์กิวเมนต์แฝง VStudio สร้างการตั้งค่าการสร้างการตั้งค่าเป็น x64 อย่างชัดเจนด้วยสตริงการเชื่อมต่อต่อไปนี้: Provider = Microsoft.ACE.OLEDB.16.0; แหล่งข้อมูล = D: ... \ MyDatabase.accdb

(2 - x64 หรือ x32) Windows 10 x64, Office 365 x64, AccessDatabaseEngine_x64 2016 ติดตั้งพร้อมกับ / passive argument, PLUS AccessDatabaseEngine 2010 (32 บิต) ติดตั้งด้วย / passive argument, VStudio สร้างการตั้งค่าการตั้งค่าเป็น AnyCPU ด้วยสตริงการเชื่อมต่อต่อไปนี้ Microsoft.ACE.OLEDB.16.0; แหล่งข้อมูล = D: ... \ MyDatabase.accdb

(3 - x32 เท่านั้น) Windows 10 x64, Office 365 x32, AccessDatabaseEngine 2010 (32 บิต) ติดตั้งด้วย / อาร์กิวเมนต์แฝง VStudio สร้างการตั้งค่าการสร้างเป็น x86 ด้วยสตริงการเชื่อมต่อต่อไปนี้: Provider = Microsoft.ACE.OLEDB.12.0; แหล่งข้อมูล = D: ... \ MyDatabase.accdb

ข้อผิดพลาด

การใช้ผู้ให้บริการ ACE.OLEDB.12.0 x64 ในสายอักขระการเชื่อมต่อล้มเหลวโดยมีเพียง AccessDatabaseEngine_x64 2016 ติดตั้งตามที่กล่าวไว้ใน (1)

การใช้ AnyCPU ในการตั้งค่าการสร้างสตูดิโอภาพล้มเหลวใน (1) จำเป็นต้องมีการตั้งค่า x64 อาจเป็นเพราะ AnyCPU หมายความว่า Vstudio ต้องเห็นผู้ให้บริการ x32 ACE.OLEDB.nn.0 ในเวลารวบรวม

ACE.OLEDB.12.0 2016 x32 / passive engine จะไม่ติดตั้งเมื่อเห็นแอพพลิเคชัน x64 รอบตัว (ACE.OLEDB.12.0 2010 x32 / ตัวติดตั้งแบบพาสซีฟทำงานได้)

สรุป

ในการใช้การตั้งค่าการสร้าง x64 คุณจำเป็นต้องมีเอ็นจิ้นฐานข้อมูล2016 x64 และACE.OLEDB.16.0ผู้ให้บริการสตริงการเชื่อมต่อและการตั้งค่า x64ชัดเจนเพื่อทำงานกับ Office 365 ในเดือนมกราคมปี 2020 การใช้ตัวเลือก / passive ทำให้การติดตั้งง่ายขึ้น ให้เครดิตกับใครก็ตามที่โพสต์เคล็ดลับนั้น

ในการใช้ AnyCPU ฉันต้องมีทั้งเครื่องยนต์ ACE.OLEDB.12.0 2010 x32 และเครื่องยนต์ ACE.OLEDB.16.0 x64 ที่ติดตั้ง ด้วยวิธีนี้ Vstudio สามารถเห็นทั้งเครื่องยนต์ x32 และ x64 ในเวลารวบรวม "AnyCPU" ฉันสามารถเปลี่ยนสตริงการเชื่อมต่อของผู้ให้บริการเป็น ACE.OLEDB.12.0 สำหรับการดำเนินการ x32 หรือ ACE.OLEDB.16.0 สำหรับการดำเนินการ x64 ทั้งสองทำงานได้ดี

ในการใช้การตั้งค่าการสร้าง x86 คุณต้องมีเครื่องมือฐานข้อมูล2010 x32 และผู้ให้บริการสตริงการเชื่อมต่อACE.OLEDB.12.0และการตั้งค่าการสร้าง x86 ที่ชัดเจนเพื่อให้ทำงานกับ Office 365 x32 ในเดือนมกราคมปี 2020


2

ฉันมีปัญหาที่คล้ายกันเมื่อเรากำลังอ่านไฟล์ Excel

ประวัติความเป็นมาของปัญหา:

เราเพิ่งโอนย้ายแอปพลิเคชันของเราจาก 32 บิตเป็น 64 บิตเนื่องจากข้อกำหนดด้านหน่วยความจำ สำหรับสิ่งที่เราย้าย windows 7 ของเราจาก 32 บิตเป็น 64 บิต แต่ถึงกระนั้นเรายังติดตั้ง office 32 บิตบนเครื่องของเรา

เนื่องจากสิ่งนี้เรามีปัญหานี้ขณะนำเข้าข้อมูล Excel ไปยังแอปพลิเคชัน

สารละลาย,

ฉันดาวน์โหลดhttp://www.microsoft.com/en-us/download/details.aspx?id=13255รุ่น 64 บิตและติดตั้งด้วยอาร์กิวเมนต์เป็น

AccessDatabaseEngine_x64.exe / passive

หากไม่มีรหัสใด ๆ ให้เปลี่ยนปัญหาของฉันได้รับการแก้ไข

บันทึก:

ในระบบปฏิบัติการ 64 บิตและสำนักงาน 64 บิตฟังก์ชั่นการทำงานของฉันทำงานได้ดีโดยไม่มีการแก้ไขนี้ การแก้ไขนี้จำเป็นเฉพาะในขณะที่แอปพลิเคชันของเราทำงานแบบ 64 บิตบนระบบปฏิบัติการ 64 บิตซึ่งมีสำนักงาน 32 บิตติดตั้งอยู่


แต่ Microsoft ไม่เห็นด้วยกับวิธีนี้ ลูกค้าของฉันสองสามคนสังเกตเห็นความผิดเพี้ยนในโปรแกรม Office อื่นเนื่องจากการแก้ไขนี้
ราหุล Techie


1

ฉันทำตามคำแนะนำที่กำหนดโดยผู้อื่น ติดตั้งโปรแกรมปรับปรุงนี้การติดตั้งโปรแกรมปรับปรุงนั้นรวมถึง Microsoft Access Database Engine 2010

ปัญหาของฉันคือฉันใช้ไลบรารีเดียวกัน (linq2sql) ใน 2 ไซต์บนเครื่องของฉัน 1 งานและ 1 ไม่

ในที่สุดฉันก็พบว่าฉันต้อง "เปิดใช้งานแอปพลิเคชัน 32 บิต" ในการตั้งค่าขั้นสูงของแอพพลิเคชั่นสำหรับไซต์ที่ไม่ทำงานของฉัน

ตอนนี้ทุกอย่างทำงานได้ดี


1

ยังสามารถลองขั้นตอนเหล่านี้

ใน SQL Server 1. เปิดฐานข้อมูลหนึ่ง 2.Clic ในตัวเลือก 'Server Obtect' 3.Clic ใน 'เซิร์ฟเวอร์ที่เชื่อมโยง' 4.Clic ใน 'ผู้ให้บริการ' 5.Cric Rigth ใน 'Microsoft.ACE.OLEDB.12.0' 6. ตรวจสอบตัวเลือกทั้งหมดและปิด


1

อย่าลืมติดตั้งAccessDatabaseEngineบนเซิร์ฟเวอร์สำหรับเว็บแอปพลิเคชัน


1

ฉันมีปัญหาเดียวกัน แต่ในกรณีนี้ผู้ให้บริการ microsoft-ace-oledb-12-0ได้ถูกติดตั้งแล้วในเครื่องของฉันและทำงานได้ดีสำหรับแอปพลิเคชันอื่นที่พัฒนาขึ้น

ความแตกต่างระหว่างแอปพลิเคชันเหล่านั้นกับแอปที่ฉันมีปัญหาคือแอปพลิเคชันเก่าทำงานบน " Local IIS " ในขณะที่แอปพลิเคชันที่มีข้อผิดพลาดอยู่ใน " IIS Express (เรียกใช้จาก Visual Studio") ดังนั้นสิ่งที่ฉันทำคือ -

  1. คลิกขวาที่ชื่อโครงการ
  2. ไปที่คุณสมบัติ
  3. ไปที่ Web Tab ทางด้านขวา
  4. ภายใต้เซิร์ฟเวอร์เลือก Local IIS แล้วคลิกที่ปุ่มสร้างไดเรกทอรีเสมือน
  5. เรียกใช้แอปพลิเคชันอีกครั้งและใช้งานได้

1

ฉันมีMicrosoft Access Database Engine 2010 Redistributableแล้วติดตั้งบนเครื่องของฉัน แต่ยังคงได้รับMicrosoft ACE OLEDB Providerข้อผิดพลาด

จากนั้นฉันจำได้ว่าฉันเพิ่งอัพเกรดเป็น Office 2016 เมื่อเร็ว ๆ นี้ดังนั้นฉันควรลองติดตั้งMicrosoft Access Database Engine 2010 Redistributableใหม่ และนั่นช่วยแก้ไขปัญหาบนเครื่องของฉัน

ดังนั้นหากคุณอัปเกรดเป็น MS Office รุ่นอื่นหรือแม้กระทั่งซ่อมแซม / ติดตั้ง MS Office ของคุณใหม่ให้ลองติดตั้งMicrosoft Access Database Engine 2010 Redistributable อีกครั้งก่อนที่จะเสียเวลาในการค้นหาการแก้ไขอื่น ๆ โชคดี!


1

1. ) ตรวจสอบสตริงการเชื่อมต่อของคุณด้วยConnectionStrings.com ConnectionStrings.com

2. ) ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งเอ็นจิ้นฐานข้อมูลที่ถูกต้อง นี่เป็นเอ็นจิ้นฐานข้อมูลสองตัวที่ช่วยฉัน

Microsoft Access Database Engine 2010 สามารถแจกจ่ายต่อได้

โปรแกรมควบคุมระบบ Office 2007: คอมโพเนนต์การเชื่อมต่อข้อมูล

3. ) อาจมีปัญหากับแพลตฟอร์มเป้าหมายการสร้างของคุณเป็น "CPU ใด ๆ " ก็อาจต้องมี "X86" (คุณสมบัติสร้างเป้าหมายแพลตฟอร์ม)


คุณสามารถเรียกใช้ได้ภายใต้แพลตฟอร์มใด ๆ ไม่ใช่เฉพาะ 'x86' แต่เป็น 'CPU ใดก็ได้' เป็น 'x64' ดูคำตอบแบบเต็มด้านล่าง: stackoverflow.com/a/32760211/3637582
Merav Kochavi

ตกลงดีฉันไม่คิดว่าเป็นกรณีสำหรับฉัน ... ดังนั้นจึงยังมีมูลค่าการกล่าวถึงว่าแพลตฟอร์มสร้างเป้าหมายของใครบางคนอาจเป็นส่วนหนึ่งของปัญหา
u8it

1

หากคุณได้รับข้อผิดพลาดนี้เมื่อพยายามใช้ ACE จากแอปพลิเคชัน ASP.NET สาเหตุที่เป็นไปได้มากที่สุดคือคุณได้ติดตั้งเวอร์ชัน 32 บิตหนึ่งในนั้น โดยค่าเริ่มต้น IIS บนระบบปฏิบัติการ 64 บิตจะเรียกใช้แอปพลิเคชันในกระบวนการของผู้ปฏิบัติงาน 64 บิต กระบวนการ 64 บิตไม่สามารถโหลด DLL 32- บิตได้ เมื่อมีการโทรถึงผู้ให้บริการ ACE กระบวนการ 64 บิตจะพยายามค้นหา DLL 64- บิต หากไม่มีอยู่คุณจะได้รับข้อความแสดงข้อผิดพลาดที่นำคุณมาที่นี่

ในกรณีนี้คุณมีสองตัวเลือก ก่อนอื่นคุณสามารถติดตั้ง 2010 รุ่น 64 บิต หากคุณติดตั้งรุ่น 2007 32 บิตคุณสามารถติดตั้งรุ่น 2010 64 บิตข้างๆ หากคุณติดตั้ง 2010 รุ่น 32 บิตคุณจะต้องถอนการติดตั้งแล้วดาวน์โหลดและติดตั้งรุ่น 64 บิต 64 แทน คุณไม่สามารถติดตั้งผู้ให้บริการ 2010 รุ่น 32- และ 64- บิตในเวลาเดียวกัน หากคุณกำลังทำการติดตั้งบนเครื่องพัฒนาของคุณคุณอาจถูก จำกัด ด้วยบิตของการติดตั้ง Office ที่มีอยู่

ตัวเลือกที่สองคือเปลี่ยนพูลแอปพลิเคชันใน IIS เพื่อเปิดใช้งานแอปพลิเคชัน 32 บิต หากคุณใช้ IIS เวอร์ชันเต็มคุณสามารถใช้เครื่องมือการจัดการเพื่อทำสิ่งนี้ (แผงควบคุม»เครื่องมือการดูแล»เครื่องมือจัดการบริการข้อมูลทางอินเทอร์เน็ต (IIS)

เพื่อความเข้าใจเพิ่มเติมโปรดอ้างอิงลิงค์ด้านล่าง


1

ฉันได้รับข้อผิดพลาดนี้เมื่อนำเข้าข้อมูลจากไฟล์ Excel ไปยัง MS-SQL ผู้ให้บริการติดตั้งแล้ว (64- บิต) และสิ่งนี้ทำให้ฉันประหลาดใจว่าทำไมมันไม่ทำงาน ดังนั้นสิ่งที่ฉันทำคือค้นหาแอปพลิเคชั่นนำเข้า / ส่งออกที่ใช้ที่นี่เช่น. EXE และฉันพบมันที่

C: \ Program Server \ 130 \ DTS \ Binn \ DTSWizard.exe SQL Server \ 130 \ DTSWizard.exe

จากนั้นฉันก็รัน. exe โดยตรงเพื่อดำเนินการนำเข้าข้อมูล และมันก็ใช้งานได้!


หืมมฉันมีรุ่นไม่กี่รุ่นที่นั่น SSMS ต้องใช้งานผิด
SteveCav

1

สิ่งนี้ใช้ได้สำหรับฉันในตอนนี้

  1. เยี่ยมชมหน้านี้จากนั้นดาวน์โหลดแพ็คเกจที่เหมาะสมสำหรับคอมพิวเตอร์ของคุณ (AccessDatabaseEngine.exe หรือ AccessDatabaseEngine_X64.exe)
  2. ติดตั้งที่
  3. Enjoye ... รหัสของคุณทำงานตอนนี้ ...

แต่สำหรับแพ็คเกจแอปพลิเคชันของคุณคุณสามารถใช้โซลูชันต่อไปนี้:

  1. ไปที่ "C: \ Program Files (x86) \ Common Files \ microsoft shared" หรือ "C: \ Program Files \ Common Files \ Microsoft Shared" และวางไดเรกทอรี "OFFICE14" ไว้ในตำแหน่งเดียวกันของไฟล์แพ็คเกจของคุณ

หรือ

  1. แนบสองโครงการ (ในรายการ 1) ในแพ็คเกจการติดตั้งของคุณ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.