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


109

ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามเชื่อมต่อกับ excel ใด ๆ ผ่าน MSSQL Server Data Import เช่นแพ็คเกจ SSIS Microsoft.ACE.OLEDB.16.0ผู้ให้บริการไม่ได้ลงทะเบียนในเครื่องภายใน ( System.Data)

ไม่ใช่เวอร์ชันเดียวกันฉันคิดว่าจำเป็นต้องมีการแก้ไขอื่น ๆ


7
ฉันไม่เห็นว่าทำไมคำถามนี้ถึงได้รับการโหวตให้ปิดว่าซ้ำกัน ... เห็นได้ชัดว่าเป็นเวอร์ชันใหม่กว่าในข้อความแสดงข้อผิดพลาดและต้องการชุดส่วนประกอบที่ใหม่กว่า! คำถามและคำตอบนี้ช่วยฉันสำหรับMicrosoft.ACE.OLEDB.16.0ปัญหาของฉัน คำถามที่ถูกชี้โดยคำขอปิดคือสำหรับMicrosoft.ACE.OLEDB.12.0และคำตอบที่อยู่ในเวอร์ชันนั้น คำถามนี้ควรเปิดสำรอง
Arvo Bowen

@ArvoBowen ไม่มีปัญหา ฉันเปิดมันอีกครั้ง แต่ทั้งสองคำถามมีทางออกเดียวกัน
ฮาดี

4
ยังไง? เป็นเวอร์ชันต่างๆที่ต้องการการดาวน์โหลดที่แตกต่างกัน มีความเกี่ยวข้องกัน แต่มีวิธีแก้ปัญหาที่แตกต่างกัน หากฉันทำตามคำตอบจากคำถามอื่นมันจะไม่สามารถแก้ปัญหาของฉันได้
Arvo Bowen

คำตอบ:


118

หมายเหตุ: ฉันใช้งาน SQL 2016 Developer 64bit, Office 2016 64bit

ฉันมีปัญหาเดียวกันและแก้ไขได้โดยดาวน์โหลดสิ่งต่อไปนี้:

  1. ดาวน์โหลดและติดตั้งสิ่งนี้: https://www.microsoft.com/en-us/download/details.aspx?id=54920

  2. ไม่ว่าคุณจะพยายามเข้าถึง / นำเข้าไฟล์ใดก็ตามตรวจสอบให้แน่ใจว่าคุณได้เลือกเป็นไฟล์ Office 2010 (แม้ว่าไฟล์นั้นอาจเป็นไฟล์ Office 2016 ก็ตาม)

มันได้ผล.

ที่มา


4
ทำงานได้อย่างสมบูรณ์แบบสำหรับฉันขอบคุณ! โหลดไฟล์ office 2016 ของฉันเป็น office 2007-2010 และทำงานได้ดี ดีกว่าลอง CSV / TSV มาก
tc_NYC

2
ขอขอบคุณที่แจ้งว่าฉันไม่ควรเลือก Office 2016 ไม่แน่ใจว่าฉันจะลองอย่างใดอย่างหนึ่ง
birdus

ลิงค์แรกเสีย
jcvegan

1
ฉันเพิ่งอัปเดตลิงก์ไปยัง URL ปัจจุบันสำหรับ Microsoft Access Database Engine 2016 Redistributable
e_i_pi

1
ต้องเรียกใช้โปรแกรมติดตั้ง (32 บิต) จากบรรทัดคำสั่งพร้อมแฟล็ก / quiet จากนั้นก็ใช้งานได้ ไม่งั้นโดนบ่น
Syntax Error

105

สำหรับใครที่ยังติดปัญหานี้หลังจากลองทำตามข้างบนแล้ว หากคุณคลิกขวาที่ฐานข้อมูลและไปที่งาน -> นำเข้านี่คือปัญหา ไปที่เมนูเริ่มของคุณและภายใต้เซิร์ฟเวอร์ sql ค้นหาตัวช่วยสร้างการส่งออกการนำเข้า x64 บิตแล้วลอง ใช้งานได้เหมือนมีเสน่ห์สำหรับฉัน แต่ฉันใช้เวลานานเกินไปกว่าจะพบ Microsoft!


3
หากต้องการให้ Excel พร้อมใช้งานจาก DTSWizard เวอร์ชัน 64 บิตให้ติดตั้ง 2016 Access Database Engine ที่แจกจ่ายต่อได้: microsoft.com/en-us/download/details.aspx?id=54920 ที่มา: sqlblog.com/blogs/john_paul_cook/archive/ 2017/06/11 / … ฉันทดสอบด้วยตัวเองและได้ผล โปรดทราบว่า SSDT เป็นแอปพลิเคชัน 32 บิตดังนั้นหากคุณเรียกใช้วิซาร์ดการนำเข้า / ส่งออกจากนั้นจะเป็นเวอร์ชัน 32 บิตของตัวช่วยสร้าง ยังคงเป็นเช่นนี้แม้ใน Visual Studio 2017 และ SQL Server 2017
otravers

1
ขอบคุณสำหรับคำตอบมีประโยชน์มาก ฉันมี Office (2016) 64 บิตและ SQL 64 บิตและตัวเชื่อมต่อที่เกี่ยวข้อง Microsoft.ACE.OLEDB.16.0 อย่างไรก็ตามฉันได้รับข้อความ "ผู้ให้บริการ 'Microsoft.ACE.OLEDB.16.0' ไม่ได้ลงทะเบียนในเครื่องท้องถิ่น" สิ่งนี้ไม่สมเหตุสมผล หลังจากเปิดตัวช่วยสร้างการนำเข้า 64 บิตโดยตรงฉันไม่มีปัญหาในการนำเข้าไฟล์ excel ความประทับใจของฉันคือโดยค่าเริ่มต้นเส้นทางการนำเข้างาน -> ไปที่วิซาร์ด 32 บิตและทำให้รายการ 64 บิตไม่แน่ใจ ขอบคุณพอล
กาแฟ

@otravers ฉันดาวน์โหลดและติดตั้ง 2016 Access Database Engine แจกจ่ายต่อได้ แต่ก็ไม่ได้ช่วยอะไร จากนั้นก็โดนฉันนั่นคือสำหรับ Access ไม่ใช่ Excel
Rod

2
@Rod แม้จะมีชื่อ แต่ฉันรับรองว่าจะแก้ปัญหาเฉพาะนี้ด้วย Excel และ DTSWizard
otravers

1
ฉันไม่มีตัวช่วยสร้างการนำเข้า / ส่งออกเวอร์ชัน x64
PeterX

22

วิธีแก้ปัญหาอย่างรวดเร็วฉันเพิ่งบันทึกเวิร์กบุ๊กเป็นไฟล์ Excel 97-2003 .xls ฉันสามารถนำเข้าด้วยรูปแบบนั้นโดยไม่มีข้อผิดพลาด


ไม่ได้ผลสำหรับฉัน ได้รับ "ข้อผิดพลาดที่ไม่คาดคิดจากโปรแกรมควบคุมฐานข้อมูลภายนอก (1) (Microsoft JET Database Engine)"
Rod

2
ต้องใช้เวลาสองสามครั้ง แต่ในที่สุดฉันก็พบว่านี่เป็นวิธีแก้ปัญหาที่เร็วที่สุดสำหรับฉัน
ClubbieTim

1
วิธีนี้ใช้ได้เฉพาะเมื่อคุณมีแถวที่จะนำเข้าน้อยกว่า 64K
Cougar9000

โปรดระวังว่าสเปรดชีตของคุณมีแถวไม่เกิน 65,536 แถวมิฉะนั้นคุณอาจสูญเสียข้อมูลในการแปลงนี้
Fiach Reid

9

อีกทางเลือกหนึ่งที่เหมาะกับฉันคือเพียงแค่แปลงเป็นไฟล์ CSV


2
สำหรับปัญหาที่ดีวิธีแก้ปัญหาที่ยอดเยี่ยมขอบคุณ @PeterX
ElMatador

1
@PeterX บันทึกวันของฉัน
Mohammad Heydari

1
ทำงานอย่างมีเสน่ห์! ฉันแค่ต้องเลือกไฟล์แบบแบนแทนที่จะเป็น ms excel 2016 เมื่อฉันอัปโหลด csv
kiradotee

7

หากคุณมี OS (64 บิต) และ SSMS (64 บิต) และติดตั้งAccessDatabaseEngine (64 บิต)แล้วและคุณยังคงได้รับข้อผิดพลาดให้ลองใช้วิธีแก้ไขปัญหาต่อไปนี้:

1: เปิดตัวช่วยสร้างการนำเข้าและส่งออกเซิร์ฟเวอร์ sql โดยตรง

หากคุณสามารถเชื่อมต่อโดยใช้ตัวช่วยสร้างการนำเข้าและส่งออกเซิร์ฟเวอร์ sql โดยตรงแสดงว่าการนำเข้าจาก SSMS เป็นปัญหาก็เหมือนกับการเปิดใช้งาน 32 บิตหากคุณนำเข้าข้อมูลจาก SSMS

แทนที่จะติดตั้งAccessDatabaseEngine (64 บิต)ให้ลองใช้AccessDatabaseEngine (32 บิต)เมื่อติดตั้ง Windows จะหยุดคุณไม่ให้ดำเนินการติดตั้งต่อไปหากคุณติดตั้งแอปอื่นอยู่แล้วให้ทำตามขั้นตอนต่อไปนี้ นี่คือจากMICROSOFT การติดตั้งที่เงียบ

หากติดตั้ง Office 365 ไว้แล้วการตรวจจับแบบเคียงข้างกันจะป้องกันไม่ให้การติดตั้งดำเนินการต่อ ทำการติดตั้งคอมโพเนนต์เหล่านี้ / เงียบแทนจากบรรทัดคำสั่ง ในการดำเนินการดังกล่าวให้ดาวน์โหลด AccessDatabaseEngine.exe หรือ AccessDatabaeEngine_x64.exe ที่ต้องการไปยังพีซีของคุณเปิดพรอมต์คำสั่งการดูแลระบบและระบุเส้นทางการติดตั้งและเปลี่ยน Ex: C: \ Files \ AccessDatabaseEngine.exe / quiet

หรือตรวจสอบในข้อมูลเพิ่มเนื้อหาจากลิงค์ข้างล่างนี้ ,

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


1
ว้าวนี่เป็นเรื่องที่น่าหงุดหงิด ปรากฎว่าตัวติดตั้ง SSMS 18.5 เป็น 64 บิต แต่ตัวแอปพลิเคชันนั้นเป็น 32 บิต ฉันยังคงติดตั้งส่วนประกอบสำนักงาน AccessDatabaseEngine 64 บิตโดยมีข้อผิดพลาดเดียวกัน ดูที่ตัวจัดการงานเห็น SSMS เป็น 32 บิต ... จากนั้นฉันใช้วิธีของคุณ: C: \ Files \ AccessDatabaseEngine.exe / เงียบเพราะฉันติดตั้ง Office 2016 64 บิต ได้ผล !! ติดตั้งเอ็นจิ้นฐานข้อมูล 32 บิตพร้อมกับสำนักงาน 64 บิตเรียบร้อยแล้ว
rjkunde

5

ACE.oledb.16.0 ไม่ทำงานในระบบปฏิบัติการ 64 บิต

ดาวน์โหลดโปรแกรมแก้ไขจาก https://www.microsoft.com/en-us/download/details.aspx?id=13255


8
ไม่ได้ผลฉันพยายามยังคงได้รับข้อผิดพลาดเดิม
Suhail Abdul Rehman Chougule

1
ใช้งานได้กับการนำเข้า Microsoft Excel 2007-2010 บน SQL Server Import and Export Wizard
Junior Mayhé

1

คุณต้องใช้ตอนนี้XLSX -Driver ใหม่จาก Access-Redist (32/64-Bit) โปรแกรมควบคุม XLS ปัจจุบันเสียหายตั้งแต่การปรับปรุงสะสมล่าสุด


0

ทำตามขั้นตอนเหล่านี้:

  1. ไป [ที่นี่] [1] ดาวน์โหลดMicrosoft Access Database Engine 2016 Redistributableและติดตั้ง
  2. ปิด SQL Server Management Studio
  3. ไปที่เมนูเริ่ม -> Microsoft SQL Server 2017 -> การนำเข้าและส่งออกข้อมูล SQL Server 2017 (64 บิต)
  4. เปิดแอปพลิเคชันและลองนำเข้าข้อมูลโดยใช้ตัวเลือก "Excel 2016" ก็น่าจะใช้ได้ดี
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.