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

مشكلة مع الريكوردست

مغلق
بدأه ha98 في 16 أغسطس 2003 · 9 رد · 921 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لما جيت اكتب هذا الجزء من الكود

Function NRest(NB As Long) As Integer

Dim NC As Integer

Dim nr As Integer

Dim tborrows As Recordset

Dim TBooks As Recordset

Set TBooks = CurrentDb.OpenRecordset("books")

TBooks.Index = "primarykey"

TBooks.Seek "=", NB

NC = TBooks![Ncopies]

Set tborrows = CurrentDb.OpenRecordset("borrows", dbopendynaset)

nr = 0

tborrows.findFirst "[bookid]=" & NB

Do Until tborrows.nomatch

nr = nr + 1

tborrows.FindNext "[bookid]=" & NB

Loop

NRest = NC - nr

End Function

طلعت لي هذه المشكلة وهي أن findFirst ليس عضوا من اعضاء الtborrows

الذي هو كائن ريكورد سيت فما المشكلة ياترا

ساعدوني شكرا لكم

#2

أخي الكريم:

إن FindFirst هي طريقة تطبق على الكائن Recordset من النوع Dynaset و النوع Snapshot ولكن السؤال ما لذي حدث أي ما المشكلة التي جعلتك تقول أنها ليست كذلك.

#3

هذا الذي حصل لك يكون صحيحا إذا كنت تستخدم Access2000/2002 لأن كائنات البيانات الافتراضي فيهما هو ActiveX Data Objects ADO ، ولهذا فإن الغرض FindFirst ليس من ضمن هذه الكائنات وأيضا NoMatch بل هما ضمن كائنات البيانات من نوع Data Access Objects DAO وعليه يجب عليك أن تستخدم الكائن FIND للبحث، والكائن EOF للتأكد من إرجاع البيانات

ـــ إذا أرت أن تستخدم هذا الكود فأشر إلى مرجع DAO 3.6 في قائمة المراجع لأن هذه المكتبة ليست إفتراضية ( أصبحت دقة قديمة )

#4

عزيزي المزيني

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

tborrows.findFirst "[bookid]=" & NB

وعندما اكتب tborrows وأضع النقطة بعدها لاأجد من ضمن الخصائص والطرق الخاصة بالكائن tborrows الخاصية findFirst ولا الخاصية nomatch

فماهي المشكلة ياترا علما بأن الاكسس الذي عملت به هذا الكود اكسس اكس بي علما بأني اشرت في قائمة الريفرنسيس الى عدة مراجع منها dao

تحياتي

#5

أن يتوقف التنفيذ عند هذه الجملة tborrows.findFirst "[bookid]=" & NB فهذا قد يعني وجود مشكلة في السطر الذي توقف عنده التنفيذ.

إذا كان نوع الحقل bookid رقم وهذا ما يتضح من اسم المتغير ونوعه فجرب السطر التالي

tborrows.FindFirst "[bookid]=" & NB & ""

أما إذا كان نوعه نص فجرب السطر التالي

tborrows.FindFirst "[bookid]='" & NB & "'"

أما قولك :

وعندما اكتب tborrows وأضع النقطة بعدها لاأجد من ضمن الخصائص والطرق الخاصة بالكائن tborrows الخاصية findFirst ولا الخاصية nomatch

فليس شرطاً أن كل خاصية أو طريقة تظهر لك فقد تكون الخاصية أو الطريقة متوفرة ولا تظهر ضمن القائمة.

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

#6

شكرا لك عزيزي المزيني و شكرا لك Gaham

انحلت المشكلة بمجرد أن حذفت جميع مراجع الأدو وتركت مرجع الداو

ممتن لكما

#7

هل بإمكانك كتابة الكود بعد التعديل؟ من فضلك

#8

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

بمجرد أن يصلح جهازي سوف أرفق الملف

تحياتي

#9

لا بأس كان هدفي التأكد من نسق الكود فقط.

إذا أردت استخدام كل من الكائنين في نفس الكود فإنه يتعين عليك تخصيص متغير لكل واحد منهما بالطريقة التالية ( بعد أن تشير إلى مرجعهما في قائمة المراجع)

متغير لكائن السجل ADODB

Dim rstADO As ADODB.RecordSet

متغير لكائن السجل DAO

Dim rstDAO As DAO.RecordSet

ومن ثم يمكنك استخدام مناهج كل واحد منهما كما تريد.

وهذا هو الأفضل حتى ولو كنت تستخدم أحد الكائنين.

ملاحظة

إذا كانت قاعدة البيانات محولة من Access79 فإن الكائن الافتراضي حينئذٍ هو DAO وليس ADO

أرجو أن تفيد هذه المعلومة

#10

أخي العزيز عندي مشكلة في الجهاز أكاد أجن بسببها

لا أستطيع الدخول على الايميل ولا المشاركة ماني بعارف ايش الحل

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

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