m.hindawi قام بنشر فبراير 22, 2005 قام بنشر فبراير 22, 2005 (معدل) السلام عليكم ورحمة االله وبركاته لدي ملف من نوع dbf 3 داتابيز 3 وهو ملف كبير جدا هل يمكنني ربط ملف اكسل به بحيث اكون قادر على انشاء استعلام من الاكسل دون الحاجة الى تحميل الملف داخل الاكسل لان الملف حجمه كبير جدا حوالي 10 ميجا بايت ويحتولى على 140000 الف صف و حوالي 6 اعمدة ما احاول فعله هو ان يقوم برنامج الاكسل بانشاء استعلام عن طريق الماكرو يعمل على نسخ صف معين من هذا الملف الى ورقة معينة في ملف الاكسل عن طريق ادخال رقم صف معين او رقم صنف معين لان الملف يحتوي اصناف مرتبة تسلسليا حسب ارقام تسلسلية وجربت كل الطرق ولم افلح ارجو المساعدة اذا كان لديكم اية اقتراحات ارجوان تبخلو بها علينا ولكم جزيل الشكر تم تعديل فبراير 22, 2005 بواسطه m.hindawi
محمد حجازي قام بنشر فبراير 22, 2005 قام بنشر فبراير 22, 2005 (معدل) السلام عليكم ... الملف صاحب اللاحقة dbf خاص بتطبيق FoxPro (على ما أظن) ، ولم يسبق لي أن استخدمت هذا النوع ، ولكن على أية حال سأشرح لك كيفية عمل ما طلبت على ملف بلاحقة mdb. أولاً تأكد من وجود مرجع ADO معرف ، ومن ثم جرب الكود التالي: Sub ADO() Dim DB As Database Dim RS As Recordset Dim SQL As String Dim Endrow As Long SQL = "ضع الاستعلام هنا" Set DB = OpenDatabase("C:\M\mah.mdb") Set RS = DB.OpenRecordset(SQL) Endrow = Sheets(1).Range("A1").CurrentRegion.Rows.Count Sheets(1).Cells(Endrow + 1, 1).CopyFromRecordset RS RS.Close DB.Close End Sub تم تعديل فبراير 24, 2005 بواسطه محمد حجازي
m.hindawi قام بنشر فبراير 24, 2005 الكاتب قام بنشر فبراير 24, 2005 الاخ الكريم محمد حجازي شكرا لك على سرعتك بالرد ولقد تعود نا منك الاستجابة السريعة للمساعدة هذا من كرم اخلاقك لقد جربت الكود ولكنني لا اعرف ماهو مرجع ado لو تفضلت بالشرح اكثر اكون ممتنا لك بالمناسبة ملفات dbf يمكن تحويلها بسهولة الى ملفات mdb عن طريق الاكسس وهي كما قلت مستخدمة من قبل برامج foxpro بالمناسبة لقد جربت الكود و لقد ظهرت الرسالة التالية compile error user defined type not defined وهي تشير الى السطر التالي في الكود Dim DB As Database اخيرا لك جزيل الشكر
محمد حجازي قام بنشر فبراير 25, 2005 قام بنشر فبراير 25, 2005 (معدل) السلام عليكم ... DAO هي مجموعة من الأساليب الخاصة بالتعامل مع مصادر البيانات الخارجية (استيراد،اضافة،حذف،تغيير،...،الخ). أما عن الخطأ الناتج عن السطر Dim DB As Database فهذا ناتج عن عدم تمكين المرجع DAO. في محرر الفيجوال ومن القائمة Tools انقر فوق References لتظهر لك نافذة ، تحت Available References أضف مكتبة الـ DAO. في المشاركة مرفق لمثال بسيط: :pp: DAO.zip تم تعديل فبراير 25, 2005 بواسطه محمد حجازي
m.hindawi قام بنشر فبراير 25, 2005 الكاتب قام بنشر فبراير 25, 2005 السلام عليكم ورحمة الله وبركاته اخي العزيز محمد شكرا لك على شرحك الكافي والمثال المرفق لكن عند تطبيق المثال على الملف الموجود لدي لم يعم بشكل صحيح لاحظت انك تستخدم الترقيم اللتلقائي في العمود الاول من المثال الذي اعطيتني اياه في الجدول المرف المسمى employee اما في الملف الموجود عندي فان التسلسل يتم وفقا لارقام متسلسلة مختلفة عن التسلسل العادي حيث ان العمود االاول يحتوي على ارقام اصناف يتكون رقمةالصنف من عشر خانات ويكون التسللسل في الخمسة الاولى اما الخمسة الاخرى فتكون مختلفة مثال لدي الرقم AJ1090A005 والرقم A0101H862G وهكذا حتى نهاية الملف المثال المرفق رائع في التعامل مع dbf المرتية تسلسليا وفق نظام التر قي م التلقائي لكنه لايعمل على نظام متسلسل وفق طريقة خاصة مثل الملف الموجود لدي اشكر لك جهودك واذا امكن تعديل المثال اكون ممتنا لك لانه لا خبرة لدي في ال dbf و شكرا لك على جهودك
m.hindawi قام بنشر فبراير 26, 2005 الكاتب قام بنشر فبراير 26, 2005 (معدل) السلام عليكم ورحمة الله وبركاته لمزيد من التفصيل سارفق ملف لتوضيح ما هو مطلوب عمله لدينا ملف اكسس باسم mh1 يختوي على جدول pm3 وهو في الاصل ملف dbf قمت بتحويله الى صيغة mdb عن طريق استيراد جدول الطلوب ان ادخل رقم الصنف pno عن طريق استعلام بالاكسل فيعطيني معلومات الصنف الموجدة بالاعمدة المقابلة ل pno الصنف الاول مثلا رقمه AJ1090A005 بياناته كاتالي PNO SC BPRICE RPRICE AJ1090A005 1 2586.96 3593 انا لا اريد استيراد الملف كاملا الى الاكسل لانه ضخم جدا وسوف يستهلك الذاكرة ولكم الشكر عفوا لم استط تحميل الملف الى الموقع لم اعرف الطريقة ساحاول لاحقا تم تعديل فبراير 26, 2005 بواسطه m.hindawi
الدكتور خضر الرجبي قام بنشر فبراير 28, 2005 قام بنشر فبراير 28, 2005 (معدل) السلام عليكم اخي محمد حجازي ، بارك الله فيك مجهود مبارك وعملك متقن 100% فقط تعديل بسيط جدا على الكود، ويعمل الاستعلام بالشكل الصحيح والمطلوب. وإن أحب الاخ m.hindawi ، البحث عن جزء من الرقم ما عليه سوى استخدام دالة Mid كما يلي: فمثلاً إن كان المستخدم سيقوم بإدخال الرقم 1090 للدلالة على السجل الذي يحتوي على الشيفرة AJ1090A005 في الحقل PNO. فإن الحل يكون هكذا SQL = "SELECT * FROM PM3 WHERE Mid(PNO,2,4) ='" & NumberRecorder & "';" ومثلا إن كان المستخدم سيقوم بإدخال الرقم 10125 التي تحتوي على الشفرات AM10125A25 و A010125M2E و BLU10125KITS فإن الحل يكون هكذا SQL = "SELECT * FROM PM3 WHERE Mid(PNO,2,5) ='" & NumberRecorder & "' or Mid(PNO,3,5) = '" & NumberRecorder & "'; " وإن كان هنالك طرق أخرى لإدخال الأرقام فيلزم من صاحب السؤال وضع كل هذه الحالات ويمكن دمجها في نفس الاستعلام مرة واحدة وبهذا يستطيع الاستفسار عن البيانات بكل الطرق التي يودها. مع الاحترام mh1.rar تم تعديل فبراير 28, 2005 بواسطه خضر الرجبي
محمد حجازي قام بنشر فبراير 28, 2005 قام بنشر فبراير 28, 2005 السلام عليكم ... شكراً أخي خضر على المساندة وبارك الله فيك. بس لاتحرمنا من شوفتك وطل علينا في منتدى الاكسل ولومرة واحدة في الأسبوع. تحياتي
الردود الموصى بها