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

ان زر البحث هذا لا يقوم بعمله على اتم وجه! ما الحل ؟

بدأه shadi77 في 11 يناير 2009 · 9 رد · 750 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا

تواجهني مشكلة وهي عند اضافة بيان الى قاعدة بيانات داتا وعند الاتجاه مباشرة الي جزء بحث لا يقوم باظهار النتيجة او لا يجدها وعند اعادة تشغيل البرنامج والبحث تظهر النتيجة !!

فالمشكلة هي عدم قدرة زر البحث من اظهار النتائج لبيانات تم اضافتها الا بعد اعادة تشغيل البرنامج !! على العلم اني قمت بادراج الريفرش والابديت عند زر الاضافة !!

ارجو افادتي بسبب المشكلة وحلها لو سمحتم

وشكرا

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

#2

حاول تعيد الاتصال بقاعدة البيانات مرة اخرى بعد الحفظ

00
 

فاضى 

 

00

#3
wael abed كتب:
حاول تعيد الاتصال بقاعدة البيانات مرة اخرى بعد الحفظ

يا ريت اخوي توضح اكثر

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

#4

ياريت إرفاق جزء من البرنامج لفهم ما هو المطلوب

و ايضا للمساعده فى حل المشكلة

Mimo

040.gif

#5

اخى الكريم

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

او حتى التوضيح بأستخدام الصور

اليك هذا

اذا كنت تعانى من ان المشكلة فى عدم ظور البيانات قى combobox مثلا فبأمكانك ان تضع كود استيراد البيانات من الداتا بيز فى حدث متكرر

مثل GotFocus هذا يصلح فى حالة استخدامك لـ اداة ComboBox واستيراد البيانات بالكود او اى اداة مشابة لها

اذا كنت تعرض البيانات فى DataGrid او DbGrid مثلا

اذا كنت تستخدم الداتا كنترول او الادو دلا سى مثلا فيجب عليك عمل Refresh للاداة

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

او تقوم بفتحها من خلال حدث Form load وذلك يصلح فقط فى حالة انك قمت بعمل البحث فى فورم مستقلة وبعديدة عن مان ادخال البيانات وايضا لا يجوز للمستخدم فتح فورم التسجيل و فورم البحث فى وقت واحد حتى تضمن تحديث البيانات مع كل عملية Form Load

وهناك اداوت كصير لا يمكن ان اقوم بشرحها كلها

ولذلك هذا نداء الى كل من يطرح استفسار فى هذا الصرح التعليمى

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

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

ارجوك ان تتقبل كلامى بسعة صدر

واتمنى عند مارجعة الموضوع فى القريب ان اجد منك توضيح ان كان المعلومات وافية

او انك تقوم بتوضيح المطلوب

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

اخوك Amr soft

واعذرنى ان كان هناك خطاء فى الكتابة لان الكيبورد لدى انجليزى فقط

فلك ان تتخيل حجم التركيز المعاناة

#6

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

ولم اصل إلى أي تفسير منطقي ... ولم أبحث صراحتا

ولكني توصلت لحل مبدئي .. الا وهو إعطاء أمر آخر لا قيمة لنتيجته بعد آخر أمر قمت بتنفيذه داخل نفس الجدول

خاصة وان آخر أمر فقط هو الذي لا يظهر فور إستدعائه

ثم إغلاق كائن الـ Recordset نفسه وإعادة فتحه من جديد .. وأقصد بالإغلاق تنفيذ هذا الأمر

Set MYRecordset = Nothing

اعترف ان الحل غير منطقي .. ولكن من الممكن إستخدامه بشكل مبدئي حتى لا تتعطل

اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#7

عزيزى mrx_ta7ady

هناك سبب منطقى لهذا على حد علمى والله اعلى واعلم

اذا كنت تستخدم مكتبة Dao فأن هذة المكتبة الى حد ما تعتبر بطيئة لان عملية تحديث البيانات تأخد تقريبا من 1 ثانية الى 5 ثوان لكى تقوم بأكتشلف التعديلات فى الجدول

فمثلا جرب هذا الامر مرة بـ Ado ومرة بـ Dao

cn.Execute "delete * from Table"

db.Execute "delete * from Table"

حيث ان

CN

تمثل التفيذ بأستخدام الـ ADO

db تمثل استخدام DAO

ومن ثم قم بفتح الجدول على اداة DATAGRID

فى نفس اللحظة

بأستخدام الادو

cn.Execute "delete * from Tabel"

rs.Source = "Tabel"
rs.ActiveConnection = cn
rs.CursorType = adOpenDynamic
rs.LockType = adLockOptimistic
rs.CursorLocation = adUseClient
rs.Open

Set DataGrid1.DataSource = rs

ستجد الجدول فارغ

اما اذا قمت بأستخدام

DAO

ليكودن الكود على هذا النحو

 </P> 
db.Execute "delete * from Tabel"

rs.Source = "orders"
rs.ActiveConnection = cn
rs.CursorType = adOpenDynamic
rs.LockType = adLockOptimistic
rs.CursorLocation = adUseClient
rs.Open</P> 
Set DataGrid1.DataSource = rs
</P>

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

ويعود ذلك الى ان مكتبة

ADO

تأخذ نسخة من الجدول

اما DAo

فأنها تتعامل مع الجدول مباشرة

وهذا ما يجعل عملية تحديث البيانات بطيئة

فأنت فى مكتبة الـ DAO

عندما تقوم بحجز ريكورد ست

تقول

dim rs As Recordset

اما فى ADO

dim rs As New ADODB.Recordset

ويمكن ان تكون هكذا

dim rs As ADODB.Recordset

وفى الحالتين الجهاز بياخد نسخة من الجدول

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

#8

شكرا لكم اخذت كلامكم بعين الاعتبار

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

#9

الأستاذ عمر سوفت .. بالراحه ياعم علينا شويا أنا أصلا بأتكلم عن الـ ADO المشكلة تحدث في الـ ADO وفي الـ DAO

اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#10

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

لا والله انا اسف لو وصلك منى اى احساس بطريق الخطاء اعذرنى

انا بس بحب النقاش البناء اللى بيوصل دايما لحلول وافكار جديدة

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

والبيانات بتظهر بسرعة وسهولة

وانا اسف ليك للمرة الثانية لو كان كلامى ضايقك

السلام عليكم

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

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

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

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

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