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

Seek Command

مغلق
بدأه awaisa في 17 فبراير 2003 · 15 رد · 1,151 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بعد التحية ارجو التكرم بمساعدتي في تحويل الكود التالي الى access xp

  Dim db As Database, _

        T As Table, _

        y As String, _

        U As Double, _

        E As Boolean, _

        i As Boolean, _

        r As Boolean, _

        m As Boolean, _

        C As Boolean

        

    Set db = CurrentDb()

    Set T = db.OpenTable("users file")

    T.Index = "User"

    T.Seek "=", [usr]

    If T.NoMatch Then

     MsgBox "Not a Valid Account Name or Password"

     [usr].SetFocus

     End

     Else

        y = T![Passwd]

        U = T![User]

        E = T![entry]

        i = T![Inquiry]

        r = T![Report]

        C = T![Codes]

        m = T![Manag]

    End If
#2

أخي الكريم

السلام عليكم

الكود السابق خطأ ولا أدري هل هو يعمل لديك بشكل صحيح في غير أكسس إكس بي

على كل الكود يجب أن يكون بالشكل التالي

Dim db As Database, _

        T As Recordset, _

        y As String, _

        U As Double, _

        E As Boolean, _

        I As Boolean, _

        r As Boolean, _

        m As Boolean, _

        C As Boolean

        

    Set db = CurrentDb()

    Set T = db.OpenRecordset("users file")

    T.Index = "User"

    T.Seek "=", [usr]

    If T.NoMatch Then

     MsgBox "Not a Valid Account Name or Password"

     [usr].SetFocus

     End

     Else

        y = T![Passwd]

        U = T![user]

        E = T![entry]

        I = T![Inquiry]

        r = T![Report]

        C = T![Codes]

        m = T![Manag]

    End If

تحياتي

أخوك / أبو هاجر

#3

سلمت يمناك اخي ابو هاجر، حقيقة انك ذخر لهذا المنتدى .

انا استخدم الكود السابق في اكسيس 97 و عند استخدامه مع اكسيس xp لم يعمل الا عند تحويل الى DAO2.5

#4

ممكن لو سمحت شرح خطوات الكود السابق

#5

أخي الحبيب أبوهاجر إن سمحت لي فإن لي ملاحظتان حول ما ورد أعلاه:

الأولى: أنني لا أرى أي اختلاف بين الكود الذي كتبه الأخ awaisa وبين الكود الذي كتبته

أما الثانية: فقد لاحظت في كلا المقطعين البناء التالي وهو بناء خاطىء حسب علمي رغم أنه يعمل:

IF ……..THEN

……

……

END

……

……

ELSE

……

……

END IF

فهل من توضيح أخي.

#6

أخي الكريم المزيني

السلام عليكم

بالنسبة للملاحظة الأولى فالاختلاف الرئيسي في تعريف المتغير T وهل هو Table أم Recordset حيث إن خاصية index المستخدمة في الكود السابق هي من خصائص recordset وليس table

أما الملاحظة الثانية فيجب أن نفرق بين End if وبين End فالإولى تقوم بإنهاء عبارة If في حين أن الثانية تقوم بإنهاء الـ Sub أو الـ function

تحياتي

#7

أخي أبو هاجر أشكرك جزيل الشكر وحول الملاحظتين السابقتين :

الأولى: أنني لم ألاحظ الفرق رغم أنني دققة النظر كثيراً واستعرضت قطعتي الكود بجانب بعضهم البعض ومع ذلك لم أرى الفرق إلا بعد أن نبهتني إليه وهذا من ضعف البشر وقلة حيلتهم أسأل الله ألا يكلنا إلى أنفسنا طرفة عين.

أما الثانية: فالفرق عزيزي بين( End Function وEnd Sub) وبين End If واضح لكن ما أعنيه في التركيبية المذكورة أعلاه أن الـ END التي تلي IFلم يسبقها Sub ولا Function هذا من جانب ومن جانب آخر فكيف ننهي الإجراء أو الدالة قبل إنهاء جملة الـIF

إما إذا كنت تعني End لوحدها فأرجوا توضيح ذلك.

#8

أخي الكريم

السلام عليكم

أنت تعرف أن الكود السابق يجب أن يكون جزءاً من إجراء حدث أو دالة وإلا فكيف يتم تنفيذه

أما إنهاء الإجراء قبل إنهاء عبارة If فهو أمر شائع وصحيح حتى لا يستمر الكود دون فائدة

تحياتي

#9

:(:(ليش يا اخوان هذا التجاهل

#10

أيضاً لم تفهم ما أقصد بالضبط أخي أبو هاجر. ولاداعي للإطالة في موضوع كهذا.

أعتذر للجميع.

#11

أخي الكريم المزيني

السلام عليكم

أنا بالفعل أعني End لوحدها فهي تستعمل لوحدها لإنهاء الإجراء أو الدالة فهي تقوم بنفس دور end sub أو end function

الأخ nash

لا أظن أن هناك أي تجاهل فالشرح يطلب ممن كتب الكود واستخدمه ، فإن قدم الشرح فذلك نور على نور وهو فضل منه وتبرع وإن لم يقدمه فيكفي أنه قدم الكود و "ما على المحسنين من سبيل والله غفور رحيم"

تحياتي

#12

اولا الشكر و التحية للجميع و اعتذاري الشديد للتاخر في الرد لانشغالي بظروف خاصة و اخي ابو هاجر استاذنا جميعا و قد كفى و أوفا جعلها في ميزان اعماله.

اخي الكود السابق استخدمه للبحث عن شيء محدد داخل حقل و من ثم المطابقة للنتائج فعلى سبيل المثال اذا كان لدينا جدول الاصناف و جدول الحركات فإنه بالامكان استخدام ذلك الكود في خاصية بعد التحديث لللحقل حيث يقوم بالبحث داخل جدول الاصناف عن القيمة المطابقة للحقل و يجلب بقية الحقول لتعبئتها اليا في الحقول الفارغة و ذلك لتلافي اعادة الادخال و كذلك فقد استخدمته في الكود السابق للتأكد من كلمة السر لمستخدم و من ثم تحديد الصلاحيات فإذا وجد ان قيمة الحقل i=no معنى ذلك انني سأمنع ذلك المستخدم من الدخول الى قسم الاستعلامات .......

وهو يعمل مع اكسيس 97 ولكن مع xp يعترض على

Dim db As Database برسالة user defined type not found و اتمنى ان اجد حلها عند اخي ابو هاجر

#13

أخي الكريم awaisa

السلام عليكم

أضف المكون Microsoft DAO 3.6 Object Library إلى قائمة المراجع في الوحدة النمطية حيث إن المتغير من نوع Database يحتاج إلى هذا المكون

تحياتي

#14

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

login.zip

#15

أخي الكريم

السلام عليكم

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

افتح الوحدة النمطية ثم أدوات >> مراجع >> ثم قدم المرجع السابق Microsoft DAO 3.6 Object Library بحيث يكون قبل المرجع Microsoft Activex Data Object وهو مرجع ADO

سبب المشكلة أن المتغير RecordSet يتم تعريفه كمتغير ADO ليس متغير DAO والخاصية NoMatch ليست من خصائص الكائن RecordSet في ADO

آمل أن تكون الصورة واضحة ولم أرفق المثال لعدم الحاجة لذلك

تحياتي

أخوك / أبو هاجر

#16

عاجز عن الشكر يا اخي ابو هاجر

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

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