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

المساعدة في هذا الكود ولكم الشكر

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

لدي سؤالان

السؤال الأول

عندما يتم استدعاء بيانات من عمود من نوع مذكرة memo فلا يتم عرض البيانات الكبيرة بالكامل داخل أداة الريتش بوكس أو أي أداة أخرى ويتم عرض البيانات ناقصة

ولا أعرف هل العيب في العمود أو في الكود

مع العلم أن البيانات الصغيرة يتم عرضها بالكامل

Dim RSTemp As ADODB.Recordset

Set RSTemp = New ADODB.Recordset

Call RSTemp.Open("SELECT myinfo FROM table1 WHERE myinfo ='" & list1.text & & "' GROUP BY myinfo", MYConnection, adOpenStatic, adLockOptimistic)

RichTextBox1.Text = ""

RichTextBox1.Text =IIf(IsNull(RSTemp.Fields(0).Value), "", RSTemp.Fields(0).Value)

Call RSTemp.Close

Set RSTemp = Nothing

السؤال الثاني

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

بمعني هل تستخدم كلمة like بدلا من = وكيف

وجزاكم الله خيراً

إلى متى نظل عاجزين عن الإبداع في عالم البرمجة[وسط][/وسط]

#2

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

أخ عباس دوما عندما تريد المساعدة ضع مرفقا وإن شاء الله يأتيك الرد سريعا

ثانياً : عندما تضع كوداً في مشاركتك

استخدم خاصية إدراج كود لأن أكوادك كما ترى غير واضح وداخلة ببعضها

بالنسبة لسؤالك الأول: ضع مرفقا وأخبرنا كم هو حجم هذا الحقل لأن الريتيش بوكس تعرض النص حتى ولو كان كبيرا

بالنسبة لسؤالك الثاني: استعلامك فيه خطأ على كلٍ تفضل استبدله بهذا الكود

Dim RSTemp As ADODB.Recordset
Set RSTemp = New ADODB.Recordset
Call RSTemp.Open("SELECT myinfo FROM table1 WHERE myinfo ='%" & list1.Text & "%' GROUP BY myinfo", MYConnection, adOpenStatic, adLockOptimistic)
RichTextBox1.Text = IIf(IsNull(RSTemp.Fields(0).Value), "", RSTemp.Fields(0).Value)
Call RSTemp.Close
Set RSTemp = Nothing

لا تنسانا من دعاءك

فاعلم أنه لا إله إلا الله

#3

المرفق للتعديل

وشكراً جزيلاً

ss.rar

إلى متى نظل عاجزين عن الإبداع في عالم البرمجة[وسط][/وسط]

#4

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

أخ عباس: المشكلة ليست في الريتش بوكس بل في الليستا بوكس وهي فعلاً محدود جدا 1024 حرف بكل حقل

لذا أنصحك استخدم بدلاً منها ListView فخياراتها أوسع

تعديل كود البحث سهل جداً

ضع هذه :

'%" & Me.Text1.Text & "%'

مكان:

'" & Me.Text1.Text & "'

انتبه: بياناتك في القاعدة مشكولة لذا لن تخرج نتائج في البحث

فإما أن تستبدل البيانات المشكولة ببيانات غير مشكولة

أو تضع سجلين واحد مشكول والآخر غير مشكول يتم البحث في غير المشكول والنتائج تعرض من المشكول

وإما أن تعمل فانكشن للبحث مع التشكيل ولكن البحث سيصبح بطيئاً

أتمنى لك التوفيق

فاعلم أنه لا إله إلا الله

#5

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

قمت لك بتعديل المثال جذريا

والآن ستشاهد الفرق بين الليستا بوكس واليستا فيو

أيضا أضفت لك فانكشن للبحث حتى مع التشكيل

:happy:

شاهد المرفق ولا تنساني من دعاءك

sndybad.rar

فاعلم أنه لا إله إلا الله

#6

أشكرك أخي على الرد

ولكن

هل يمكنك الإجابة على السؤال الأول بحيث يتم عرض الإجابة في الريتش بوكس مباشرة دون توسيط الليست بوكس

وبحيث تظهر بيانات الحقل كلها دون نقص

إلى متى نظل عاجزين عن الإبداع في عالم البرمجة[وسط][/وسط]

#7

الجواب : لا ..والله أعلم

لماذا؟

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

فكيف ستعرض لك كل النتائج

لازم نكون منطقيين

فاعلم أنه لا إله إلا الله

#8

والله يا أخي بهذا الشكل فإن برنامجي سوف يتلخبط كثيراً بالنسبة لي

لذلك أرجو منك أن تقوم بالخيار الأول من خلال الكود الأصلي لبرنامجي

وهو أنني سوف أقوم بإضافة عمود آخر بدون تشكيل ومن خلال هذا العمود يتم البحث ويتم إظهار السجلات التي بها تشكيل

أرجو أن تكون فهمت قصدي

ورجائي أن تستخدم الكود الأصلي لبرنامجي

وشكراً أخي جزيلاً

إلى متى نظل عاجزين عن الإبداع في عالم البرمجة[وسط][/وسط]

#9

كودي لا يختلف عن كودك إطلاقاً سوى أنني خففت التعقيدات ليكون البحث أسهل

أخي الكريم المسألة ليست صعية أن تطلب منه البحث في سجل ووضعها من آخر

فقط غير اسم السجل في اليستا ليكون سجل العرض

فاعلم أنه لا إله إلا الله

#10

أخي الكريم في الحقيقة أنا لست متمكن في قواعد البيانات وخاصة لغة SQL

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

Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb"

' Rs.CursorLocation = adUseClient

Rs.Open "Select * From Table1 Order By myinfo", Cn, adOpenStatic, adLockReadOnly

فما بالك أنني إذا أردت أن أبحث في حقل آخر أو جدول آخر

ففي برنامج قمت بتوجيه البرنامج لإسم قاعدة البيانات فقط

وعند البحث كنت أوجه البرنامج لاسم الجدول واسم الحقل

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

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

ولك جزيل الشكر

إلى متى نظل عاجزين عن الإبداع في عالم البرمجة[وسط][/وسط]

#11

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

من عيوني لكن الجواب الواضح بحاجة لسؤال واضح

أين قررت أن تضع البيانات هل غيرت لليستا فيو أم ماذا؟

أخي الكريم: جهز مرفقك مع ما تعرفه من أكواد وإن شاء الله لن نبخل والآخوة في مساعدتك

فاعلم أنه لا إله إلا الله

#12

لقد فعلتها الحمد لله باستخدام like بدلاً من =

إلى متى نظل عاجزين عن الإبداع في عالم البرمجة[وسط][/وسط]

#13

لقد رفعت لك المرفق

إلى متى نظل عاجزين عن الإبداع في عالم البرمجة[وسط][/وسط]

#14

المرفق

ss.rar

إلى متى نظل عاجزين عن الإبداع في عالم البرمجة[وسط][/وسط]

#15

أخ عباس يبدو أنك مصر على اليستا بوكس

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

أتمنى أن يقوم أحد الأخوة بمساعدتك إن كان الأمر ممكنا

تحية لك

فاعلم أنه لا إله إلا الله

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