بسم الله الرحمن الرحيم
أكتب هذا الموضوع رداً على سؤال العضو العزيرز النهر الخالد، الذي لا أدري هل سيصله الرد أم لا؟ ولا أدري أيضاً لماذا أغلق الإخوة الأفاضل مشرفوا المنتدى موضوعه رغم أنه استجاب لطلبي وأوضح كل النقاط الغامضة في سؤاله. أرجو من الإخوة المشرفين توسيع صدورهم لي وجزاهم الله خيراً
أولاً: الاتصال بقاعدة البيانات:
هناك خطأ شائع يقع فيه بعض المبرمجين، عند إنشاء الاتصال بقاعدة البيانات، وهو أنهمك ينشئون الاتصال عن طريق أداة البيانات من خلال ضبط خصائص الأداة في وقت التصميم.
قد يكون هذا مناسباً عزيزي المبرمج، إذا كنت أنت الذي ستستخدم البرنامج على جهازك، ولكن بما أنك مبرمج، فمن الطبيعي أن برنامجك سيستخدمه غيرك، وينتقل من جهازك إلى أجهزة الآخرين، مع اختلاف المسارات التي سيوضع فيها البرنامج، لذا عليك أن تجعل اتصالك بقاعدة البيانات ديناميكياً.
وسيقتصر كلامنا هنا على أداة البيانات Data access control والتي يتم عن طريقها الاتصال بقاعدة البيانات عن طريق كائن الوصول للبيانات Data Access Object والذي يطلق عليه اختصاراً DAO.
والطريق السليمة لتعيين قاعدة بيانات إلى الأداة هي طريقة التعيين بواسطة الكود كما في المثال التالي
Private Sub Form_Load() Dim P As String P = App.Path If Right(P, 1) <> "\" Then P = P + "\" Data1.DatabaseName = P & "DB1.MDB" End Sub
مع ملاحظة أن قاعدة البيانات سوف يتم نسخها إلى مسار البرنامج، وفي حالة وضعها في مسار آخر يجب تعديل الكود إلى المسار الجديد.
أما بالنسبة للصور، فهناك الصور المضمنة، وهي التي نقوم بتعيينها إلى أداة الصورة من خلال نافذة الخصائص في وقت التصميم، وهذه لا مشكلة فيها.
أما الصور المحملة وقت التنفيذ، فهي تحتاج إلى كود كما في المثال السابق، مع الاختلاف كما في المثال التالي:
Pictuer1.Picture = P & "Picture1.Bmp"
وبالنسبة لملفات الصوت، إذا كنت تستخدم أداة الوسائط المتعددة MMControl فيمكنك استخدام الكود التالي:
MMControl1.FileName = P & "File1.Wav"
أسأل الله تعالى أن يجعلنا عوناً لإخواننا
وشكر الله لكم حسن متابعتكم
