ผู้ให้บริการ '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.