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

رسالة تظهر لي: القاعدة مغلقة يجب فتحها

مغلق
بدأه amermoh_moh في 27 فبراير 2005 · 4 رد · 502 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

في البداية شكرا لكل اعضاء الفريق وزواره....

انا يا اخوان عندي مشكله عجيبه

حيث اقوم بتصميم برنامج (مبيعات ومشتريات ومستودع......)

واستخدم الكود في قاعدة البيانات

وفي برنامج الاكسس استخدم خمسة جداول

حيث اني استخدم جميع الجداول على نفس الفورم

ومثل ما انتو عارفين انا استخدم البحث

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

مثال

con.close

rs.open " select * from tabel1 whre no_m='&' text1.text'&'"

set datagrid1.datasource=rs

طبعا هذا الكود يكون داخل التكست شينج عشان يعرض حسب ما اكتب

طبعا بعد كتابة المطلوب في التكست يقوم بعرض النتائج في الداتا قريد

المشكله ليست هنا المشكله انه عندما اريد عرض البيانات جميعها بعد ما استخدم البحث

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

شو عملت انا قمت بادخال الكود التالي في زر امر وكتبت الكابش عليه "عرض جميع البيانات"

con.open

rs.open

datagrid1.datasource =rs

بس اضغط على زر الامر بشتغل عادي

وبس اروح على البحث في التكست بقول القاعدة مفتوحه يجب اغلاقها

انا اسف جدا على طريق الشرح ولكن ارجو منكم ان تكونو قد فهمتم مني ولو شي بسيط

انا اطمع بمساعدتكم ولو بامثله بسيطه وشكرا لكم

#2

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

يا سلام بس بس

طلبك سهل وبسيط بس أنت أهدأ كده وخد الأمور ببساطة

الفكرة أنك تفتح الاتصال لما تحتاجة وتقفلة بعد ما تخلص علشان ما تهدرش موارد الجهاز على الفاضى

ممكن أنك تفتح الاتصال فى أول ما تحمل البرنامج سواء من Sub Main مثلا أو Form_Load المهم قبل ما تحتاج للبيانات وأكيد أنك عارف أين تعلن عن المتغير الخاص بالاتصال Cn علشان يشوفه كل البرنامج

وبعدين ما تقفلهوش غير لما ينتهى البرنامج

وبعد كده كل ما تحتاج استعلام تعمل إيه؟

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

توهتك؟ أسهل عليك الموضوع بالمثال ده

'''**** Select Statement ***
 SqlStr = "Select * From FIXEDFIELD Order By ENO asc;"
'''*** Make Sure RecordSet is not open and open it ***
   If Not Rs1.State = adStateOpen Then
      Rs1.Open (SqlStr), Cn, adOpenStatic, adLockOptimistic
   End If
 Rs1.MoveFirst
''''*** Search for the Record ***
 Rs1.Find "ENO=" & En, , adSearchForward
 If Not Rs1.EOF Then
''*** Put the Data in the Combo and Label
   cmbName.Text = "" & Rs1!EName
   lblAname.Caption = "" & Rs1!AName
 End If  
'''*** Close the RecordSet to free the Resources 
'''*** and to be able to open again with another Query
If Not Rs1.State = adStateClosed Then Rs1.Close

معلش ده مثال على الماشى بس وضعت لك فيه شرح بسيط يفسر لك معنى الكلام اللى قلته لك

طبعا ممكن الأخوة ينصحوك بأفضل من كده - لكن الكود ده شغال معى 100% وحل لى المشاكل اللى أشرت ليها

نسيت أذكر أنى مستخدم ADO

وربنا ييسر لك كل صعب

تم تعديل هذه المشاركة بواسطة abulyaman في 27 فبراير 2005 في 13:45

عن عبدالله بن عمر رضي الله عنهما أن رسول الله صلى الله عليه وسلم قال :

( أحب الناس إلى الله أنفعهم ، وأحب الأعمال إلى الله عز وجل سرور تدخله على مسلم ، أو تكشف عنه كربة ، أو تقضي عنه دينا ، أو تطرد عنه جوعا ، ولأن أمشي مع أخي المسلم في حاجة أحب إليّ من أن اعتكف في المسجد شهرا ، ومن كف غضبه ستر الله عورته ، ومن كظم غيظا ، ولو شاء أن يمضيه أمضاه ، ملأ الله قلبه رضا يوم القيامة ، ومن مشى مع أخيه المسلم في حاجته حتى يثبتها له ، أثبت الله تعالى قدمه يوم تزل الأقدام ، وإن سوء الخلق ليفسد العمل كما يفسد الخل العسل )

رواه الطبراني في الكبير

#3

شكرا جزيل الشكر الك يا اخ abulyaman بس عندي استفسار بسيط

هو انك بتستخدم ado مش الكود على كل حال انا شوفت في الكود الكاتبه انتا (SqlStr = "Select * From FIXEDFIELD Order By ENO asc;") واتوقع انه في شيء خطء يعني rs.open مش sqlsrt لانه يعطيني عليها خطأ..

وانا بسراح ما ستوعبت شو حكيت بس مشكور لتجاوبك معي واتوقع من كلامك انك كنت تعاني نفس المشكله

#4
اقتباس
وانا بسراح ما ستوعبت شو حكيت

لو تحدد لى الجزء الذى لم تفهمه يمكن أوضحه أكثر، ممكن؟

ببساطة سبب مشكلتك فى العرض اللى بينته أنت فى طلبك أنه يعطيك رسالة تقول أن الريكورد سيت مفتوح، صح؟

وأنا بقول لك الحل أنك بعد ما تخلص من الريكورد سيت تقفله فى نفس الحدث

يعنى تسلسل الكود يكون:

1- افتح

2- نفذ

3-إغلق

أما جملة الـ SQL واستدعائها للريكورد سيت فلها طرق كثيرة منها الطريقة التى ذكرتها لك

لو تضع المثال بعد ما عدلته أنت هنا يمكن أعيده لك بصورة تناسبك

وربنا ييسر لك كل أمر عسير ويزيدك من علمه الواسع ويزيدك من فضله الواسع

عن عبدالله بن عمر رضي الله عنهما أن رسول الله صلى الله عليه وسلم قال :

( أحب الناس إلى الله أنفعهم ، وأحب الأعمال إلى الله عز وجل سرور تدخله على مسلم ، أو تكشف عنه كربة ، أو تقضي عنه دينا ، أو تطرد عنه جوعا ، ولأن أمشي مع أخي المسلم في حاجة أحب إليّ من أن اعتكف في المسجد شهرا ، ومن كف غضبه ستر الله عورته ، ومن كظم غيظا ، ولو شاء أن يمضيه أمضاه ، ملأ الله قلبه رضا يوم القيامة ، ومن مشى مع أخيه المسلم في حاجته حتى يثبتها له ، أثبت الله تعالى قدمه يوم تزل الأقدام ، وإن سوء الخلق ليفسد العمل كما يفسد الخل العسل )

رواه الطبراني في الكبير

#5

شكرا لك اخي abulyaman حقيقه انا استفدت من مثالك كثير وانا اطمع في المزيد واذا عندك اي شيء جديد ابعثا لي واكون شاكر الك كثير

شكرااااااااااااااااااااااا

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…