سؤال

لقد كتبت بعض التعليمات البرمجية لـ VBA في مصنف Excel استرداد البيانات من قاعدة بيانات Access في نفس الدليل على سطح المكتب.أنه يعمل بشكل جيد على الجهاز و العديد من الأجهزة الأخرى بنظام التشغيل Windows XP ، ولكن عندما اختبرنا هذا على آلة فيستا ، واجهنا الخطأ التالية:

تعذر العثور على ISAM القابل للتثبيت

لقد فعلت حفنة من البحث على الانترنت ولكن لا يمكن أن يبدو للعثور على إجابة محددة.سلسلة الاتصال يبدو أن يكون على ما يرام, و كما ذكرت أنه يعمل على عدة آلات.

لا أحد لديه أي فكرة ما يمكن أن يسبب هذا ؟ بلدي سلسلة الاتصال كما يلي:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\ptdb\Program Tracking Database.mdb;

شكرا

لا يوجد حل صحيح

نصائح أخرى

ومكان علامات الاقتباس المفردة حول Extended Properties:

OleDbConnection oconn = 
    new OleDbConnection(
        @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1;';");

وحاول ذلك، فإنه يعمل حقا.

ومحاولة وضع علامات الاقتباس المفردة حول مصدر البيانات:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source='D:\ptdb\Program Tracking Database.mdb';

والمشكلة تميل إلى أن تكون المساحة البيضاء التي لا يكون لها معنى إلى محلل.

إذا كان لديك سمات أخرى (على سبيل المثال، خصائص موسعة)، قد يكون أيضا القيم على أن تكون المغلقة في علامات الاقتباس المفردة:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source='D:\ptdb\Program Tracking Database.mdb'; Extended Properties='Excel 8.0;HDR=YES;IMEX=1;';

هل يمكن جيد على قدم المساواة استخدام علامات الاقتباس المزدوجة. ومع ذلك، ربما سيكون لديك للهروب منها، وأجد أن أكثر من ألم في خوارزمية من استخدام الفردي.

هل راجعت هذه http://support.microsoft.com/kb/209805 ؟ على وجه الخصوص، إذا كان لديك Msrd3x40.dll.

وقد ترغب أيضا للتأكد من أن لديك أحدث إصدار Jet: HTTP: // الدعم. microsoft.com/kb/239114

ومجرد استخدام OLEDB جت: في سلسلة الاتصال. أنها تحل بالنسبة لي.

وعلى سبيل المثال هو التالي:

"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=E:\Database.mdb;Jet OLEDB:Database Password=b10w"

ولقد واجهت مجرد مشكلة مشابهة جدا.

ومثلك، ظهرت سلسلة ارتباطي الصحيحة - والواقع، تماما سلسلة الاتصال نفسها كان يعمل في سيناريوهات أخرى

.

وتحولت المشكلة إلى أن يكون نقص الموارد. 19 مرة من أصل 20، وأود أن رؤية "تعذر العثور على ISAM تثبيت"، ولكن مرة واحدة أو مرتين (بدون تغيير أي قانون على الإطلاق)، فإنه ينتج "نفاد الذاكرة" بدلا من ذلك.

وإعادة تمهيد الجهاز "حل" المشكلة (في الوقت الراهن ...؟). حدث ذلك باستخدام Jet الإصدار 4.0.9505.0 على نظام التشغيل Windows XP.

وأنا استخدم هذا لتحديث ملف XLSX إكسل 12

        System.Data.OleDb.OleDbConnection MyConnection;
        System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
        MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;Data Source='D:\\Programming\\Spreadsheet-Current.xlsx';Extended Properties='Excel 12.0;HDR=YES;';");
        MyConnection.Open();
        myCommand.Connection = MyConnection;
        string sql = "Update [ArticlesV2$] set [ID]='Test' where [ActualPageId]=114";// 
        myCommand.CommandText = sql;
        myCommand.ExecuteNonQuery();
        MyConnection.Close();

استخدام هذا الصدد سلسلة

string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" +
      "Data Source=" + strFileName + ";" + "Extended Properties=" + "\"" + "Excel 12.0;HDR=YES;" + "\"";

وهذه المشكلة لأن الجهاز لا يمكن العثور على وISAM الصحيح (فهرستها طريقة سائق متسلسل) سجل يحتاج الوصول.

وانها ربما لأن الجهاز ليس لديه MSACeesss المثبتة؟ وأود أن تأكد من أن لديك أحدث إصدار Jet، وإذا كان لا يزال لا يعمل، والعثور على ملف Msrd3x40.dll من أحد الأجهزة الأخرى، ونسخه في مكان ما إلى الجهاز فيستا وREGSVR32 دعوة على ذلك (في وضع المسؤول ) التي يجب أن ترتيب هذا الامر بالنسبة لك.

استخدم سلسلة الاتصال أدناه لقراءة من ملف XLSX:

<اقتباس فقرة>   

وسلسلة_أحرف_الاتصال سلسلة = "الموفر = Microsoft.ACE.OLEDB.12.0، بيانات   مصدر = "+ <> +". الموسعة   خصائص = إكسل 8.0؛ "؛

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top