الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تعديل كود مستند علي استعلام معقد

مغلق
بدأه ماجدجلال في 29 أغسطس 2007 · 9 رد · 786 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة ,,,,

كل عام وانتم بالف خير وبركة ,

اخواني الاعزاء , لدي مشكلة معقدة جدا بالنسبة لي , وهي التعديل علي كود ليناسب طبيعة برنامجي . ولاني ليست لدي اي خبرة في الاكواد و البرمجة فقد حاولت التعديل قدر استطاعتي وعندما وصلت الي طريق مسدود طرحت المشكلة وكلي رجاء منكم المساعدة كما عوتمني دوما ,,,

المشكلة : في النموذج في الملف المرفق من المفترض عند وقوف المؤشر عند الاسم الاول وكتابة اي حرف ان تتغير البيانات في مربع القائمة في اسفل النموذج . فمثلا عند كتابة حرف ( م ) تظهر فقط السجلات التي تبدا بالحرف م وهاكذا مع بقية مربعات النصوص والاسماء ,

المشكلة انة عند تركيز الاسم الاول وكتابة اي حرق تختفي بيانات مربع القائمة كليا ( سوي كان الاسم ضمن السجلات او لا ) حتي رؤؤس الاعمدة تختفي ,

ارجو منكم المساعدة حيث انني و الله العظيم لم استطع حلها وحاولت بكل ما استطع ولم انجح ,,,, وجزاكم الله كل خير .

hotel.zip

#2

أخي الكريم

أرجو أن يكون هذا ما تطلبه

تحياتي لك

Continuation.rar

#3

ماشاء الله تبارك الله ,

نعم استاذي الكريم هذا هو المطلوب . بارك الله فيك وزادك من علمة وفضلة , اللهم امين ,

يظهر لي انني احتاج الي سنين عديدة حتي استطيع الالمام بابسط الامور البرمجية للاكسيس,,,

استاذي الكريم : لدي ملاحظة بسيطة . اما تلاحظ ان مربع القائمة معكوس من ناحية اظهار البيانات حيث يظهر اسم الجد علي يمين القائمة بينما هو في يسار الاستعلام مصدر مربع القائمة وكذلك هو الحال بنسبة للاسم الاول . ولقد لاحظت في مثال هنا في المنتدي ان مربع القائمة يظهر البيانات في امكانها كما هي في مصدر سجلاتة . اي ان العنصر الذي في اليمين يظهر في اليمين و الذي في اليسار يظهر في اليسار ,

ولست ادري هل هذا الخطاء فقط عندي بسبب نسخة الاكسيس ( اوفيس 2000) .

شكرا جزيلا لك وبارك الله فيك ,

#4

أخي الكريم

شكرا لك

فقط قم بتحويل عرض النموذج وكذلك القائمة من اليمين إلى اليسار

خصائص النموذج - تنسيق - اتجاه = من اليمين لليسار

تحياتي لك

#5

السلام عليكم ورحمة الله ,

شكرا جزيل لك استاذي الكريم , وجزاك الله كل خير ,

بيما ان المشكلة الاساسية تم حلها و الحمد لله ورغبا في التعليم لذا ارجو منكم كرما وجودا شرح الكود السابق و الذي وضعتة في الملف المرفق في اعلي المشاركة ( تحت عنوان hotel ) لانني بصراحة اطمع في التعليم و الاستفادة من هذا الموقع واحلم بذلك اليوم الذي استطيع بمفردي كتابة كود كبير , ولقد استطع بمجهود متواضع جدا ان افهم واغير بعض خصائص الكود السابق ليناسب برنامجي , لذا ساشرح الذي اعرفة وارجو منكم مساعدتي واكمال الشرح وتصحيح الخطاء حتي اتعلم وافهم , ودعواتي لكم بظهر الغيب دوما , طبعا المشكلة تم حلها بطريقة ثانية بواسطة الاستاذ Access XP وهذا لا يمنع ان افهم الكود الذي ارقفتة ,,

والكود هو

Private Sub OnChange()
  Dim SQLtxt As String
  Dim WhereTxt As String
  Dim NewVal As String
  Dim C As Byte
  SQLtxt = "Select nimate.* FROM nimate"
  For C = 1 To 4
	With Me("name" & C)
	  If ActiveControl.Name = .Name Then NewVal = Nz(.Text, "") Else NewVal = Nz(.Value, "")
	  If NewVal <> "" Then
		WhereTxt = WhereTxt & IIf(WhereTxt = "", " ", " And ") & _
							  .Name & " Like '" & NewVal & "*'"
	  End If
	  NewVal = ""
	End With
  Next C

  SQLtxt = SQLtxt & IIf(WhereTxt = "", ";", " Where " & WhereTxt & ";")
  Me.nolist2.RowSource = SQLtxt
End Sub

والذي استطعت فهمة من الكود هو :

Dim SQLtxt As String
  Dim WhereTxt As String
  Dim NewVal As String
  Dim C As Byte

هنا تم الاعلان عن اربع متغيرات

SQLtxt = "Select nimate.* FROM nimate"

هنا نخبر الكود بان البحث سيكون في الجدول inmate

For C = 1 To 4
	With Me("name" & C

)

هذة بداية حلقة ونستفيد منها في البحث في الاربع مربعات والتي تختص بالاسماء ولذا فان الكود الاسم نحتوي علي قسمين جزء ثابت وهو name وجزء كتغير وهو الارقام من 1 حتي اربعة والذي يرمز الي الاسم 1 ثم الاسم2 الي الاسم4

If ActiveControl.Name = .Name Then

هنا استخدم الدالة الشرطية if للتاكد من اذا كان اسم الحقل الذي يتم فية الكتابة هو نفس اسم الحقل المراد البحث فية فاذا تحقق الشرط ,,,,,,,,,,,,

الي هنا يقف فهمي والباقي كان صعب علي ان افهمة لذا طرحت المشكلة و الحمد لله وجدت الحل بكود اخري ,

طبعا الكود الذي وضعة الاستاذ Access XP كان سهل جدا ويمكن التعديل علية والاضاف ولكن هذا من باب التعليم فقط .

ارجو منكم شرح بقية الكود حتي افهم واتعلم ولكم جزيل الشكرا و الامتنان والدعاء في الشهر الفاضل ,

تم تعديل هذه المشاركة بواسطة ماجدجلال في 30 أغسطس 2007 في 20:11

#6

الاستاذ Access XP وبقية الاعضاء .

اثناء تجربتة الملف المرفق للاستاذ Access XP وجدت خطاء انة لا يوجد ترابط بين الاسماء الاربعة وان البحث في مربع القائمة يتم بفصل كل اسم علي حدة

مثال : اذا كتبت في الاسم الاول ( محمد ) يظهر سجل واحد وهو الذي بة الاسم الاول محمد وهذا طبيعي ولكن اذا انتقلت الي اسم الاب وكتبت حرف ( أ ) تتغير القائمة ويظهر سجلين ( طبعا هنا تم اضافة سجل جديد الاسم الاول فية كاظم ) وهذا خطاء لانة من المفترض ان الاسم الاول فقط محمد ,,,

ارجو المساعدة ولكم جزيل الشكر ,,,

بارك الله فيكم جمعيا ووفقكم , اللهم امين ,

#7

أخي الكريم / ماجد جلال

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

تحياتي لك

Continuation.rar

#8

شكرا لك استاذي وجزاك الله كل خير وزادك من علمة وفضلة اللهم امين ,

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

وفكرت في انة ربما كان المتغير newval يستند علي وحدة نمطية ولكني لم اجدها ,

لذا ارجو منك ان تشرحي لي الكود ولو بطريقة موجزة حتي افهم ارجوك وجزاك الله كل خير ,,,

وبارك الله فيك وفي علمك ,

تم تعديل هذه المشاركة بواسطة ماجدجلال في 1 سبتمبر 2007 في 10:02

#9

أخي الكريم

شكرا لك

بالنسبة للتعديل فقد كان فقط في وضع مسافة في آخر هذه الجملة "

SQLtxt = "Select nimate.* FROM nimate"

أما بالنسبة ل newval فهو متغير يعني القيمة الجديدة ولا علاقة له بأي وحدة نمطية

أى أنه عند وجود المؤشرة في حقل الاسم الأول تكون قيمة newval هى الاسم الأول

ويصبح شرط الاستعلام بما يشابه حقل الاسم الأول .

و بمجرد انتقالك الى حقل اسم الأب تصبح قيمة newval هى اسم الأب

ويصبح شرط الاستعلام بما يشابه حقل الاسم الأول واسم الأب

وهكذا

أرجو أن يكون ذلك واضحا لأنني لست ماهرا في الشرح

تحياتي لك

#10

الله يجزيك الف خير ويبارك فيك ,

الان اتضحت الصورة , وتم بحمد الله حل المشكلة فلك كل الجزء والدعاء ,

هذا الموضوع مغلق.

مواضيع مشابهة