.
السلام عليكم ورحمة الله وبركاته
لدي مشكله في استيراد بيانات من ورقة إكسل إلى قاعدة بيانات أكسس عن طريق الكود في الـ VB.Net
طبعاً البرنامج صغير وهو عباره عن سجلات للموظفين
ويتكون الجدول من 4 أعمده ( رقم الموظف (رقم) - إسمه (نص) - المرتبه (نص) - الإدارة(نص) )
عملت الاستيراد من إكسل بحيث يبحث المستخدم عن ملف الإكسل في جهازه ويقوم باستيراده إلى
جدول مؤقت (DataTable) يتم إنشاؤه في وقت التشغيل
وبعد التأكد من عدم وجود تكرار (من قبل المستخدم ) تتم إضافتها إلى قاعدة البيانات
المشكله :
مشكلتي بعد الاستيراد أن أحد الأعمده (وهو العمود الخاص بالمرتبه ) في ورقة الإكسل
في بعض الأحيان يكون أرقام ( 8 أو 7 أو 6 .. )
وفي احيان أخرى يكون حروف ( عامل أو سائق ... )
المشكله انه بعد الاستيراد يتم تحديد نوع العمود حسب الأكثر ؟؟
بمعنى انه إذا كانت الأرقام أكثر من الحروف في العمود يتم تحديد نوع الحقل (Double)
أما إذا كان النص أكثر يكون (string)
وإذا تساوت يكون (Double)
طبعاً لايتم استيراد القيم النصيه في حال كان نوع الحقل (Double) <<< تكون = NULL
وأنا أريد أن يكون نوع الحقل (string) سواء كانت الأرقام أكثر أو لا
بحثت هنا ولم أجد شيئاً للأسف
وبحثت في موقع مايكروسوفت و في المنتديات الأجنبيه ووجدت حل بتغيير أحد المفاتيح في ملف الريجستري وهو :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel\ImportMixedTypes
وجعل قيمته = Text
ولكن دون فائده
أتمنى من لديه طريقه يسعفنا بارك الله فيكم
.