এখনও এর দ্বারা প্রভাবিত সকলের জন্য।
আমি ত্রুটি পেয়েছি ...
OLEDB error "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine."
... ওপি বর্ণিত শৈলেশ সাহু।
আমার উইন্ডোজ 64৪ বিট আছে।
আমার সমস্যা পাওয়ারশেল স্ক্রিপ্টগুলির মধ্যে, তবে ওপির পোস্টের মতোই সংযোগের স্ট্রিং ব্যবহার করছে, সুতরাং আশা করা যায় যে আমার অনুসন্ধানগুলি সি #, পাওয়ারশেল এবং "মাইক্রোসফট.এসিই.ওএলইডিবি" ড্রাইভারের উপর নির্ভর করে অন্য কোনও ভাষাতে প্রয়োগ করা যেতে পারে।
আমি এই এমএস ফোরামের নির্দেশাবলী অনুসরণ করেছি: http://goo.gl/h73RmI
আমি প্রথম ইনস্টল চেষ্টা 64bit সংস্করণ, তারপর ইনস্টল 32bit এই পাতা থেকে AccessDatabaseEngine.exe সংস্করণ
http://www.microsoft.com/en-us/download/details.aspx?id=13255
কিন্তু তবুও আনন্দ নেই।
আমি তখন পাওয়ারশেলের নীচে কোডটি চালিয়েছি (এসকিউএল পান্ডার সাইট 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
যেমন আপনি দেখতে পাচ্ছেন, আমার কাছে মাইক্রোসফ্ট.এসিই.ওএলডিবি রয়েছে। 15 .0 (পনেরো) মাইক্রোসফ্ট.এসিই.ওএলডিবি নয়। 12 .0 (বারো)
সুতরাং, আমি আমার সংযোগের স্ট্রিং 15 এ সংশোধন করেছি এবং এটি কার্যকর হয়েছে।
সুতরাং, কীভাবে সংস্করণটি নরম-কোড করা যায় তা প্রদর্শনের জন্য একটি দ্রুত পাওয়ারশেল স্নিপেট ...
$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 সংস্করণটি বেছে নিতে সংশোধন করা হয়েছে
আশা করা যায়, এটির সন্ধানকারী যে কেউ এখন ওএইলডিবি সংস্করণটি ইনস্টল করা আছে কিনা তা পরীক্ষা করে উপযুক্ত সংস্করণ নম্বরটি ব্যবহার করতে পারেন।