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

ترتيب بيانات حقل ابجديا فى listbox

مغلق
بدأه rokaphp في 26 فبراير 2006 · 18 رد · 1,592 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

قمت بصميم برنامج دليل هاتف يحتوى على list box وخمسة textbox

وتظهر بيانات حقل الاسماء فى listbox وعند الضغط على اى اسم فى listbox تظهر بياناته فى textboxs

كيف يمكن ترتيب الاسماء فىlistbox حسب الترتيب الابجدى للاسم

مع العلم انى استخدمت خاصية sort لlistbox وقام بترتيب الاسماء ولكن عند الضغط على اى اسم تظهر فى txtbox بيانات اسم آخر

فهل هناك طريقة استطيع من خلالها ترتيب السجلات فى قاعدة البيانات حسب ترتيب حقل الاسماء

وقد سمعت انه ممكن عن طريق لغة الاستعلام sql فما هو الكود لهذا الامر

انا استخدم dao

ارجو الرد على هذا السؤال سريعا وجزاكم الله خيرا

#2

Data1.RecordSource="SELECT * FROM Phones ORDER BY Name"

Data1.Refresh

Phones هو اسم الجدول و Name هو اسم صاحب التليفون و Data1 هى التى تملئ منها ListBox

سبح اسم ربك الأعلى

http://www.ancientsoft.com

http://www.osakit.com

#3

:wacko:

#4

ملحوظة : لا تستخدم خاصية الترتيب Sort حيث أنها ترتب البيانات المحملة فى الـ ListBox ولكن ليس لها تأثير على ترتيب قاعدة البيانات

تم تعديل هذه المشاركة بواسطة Sphinx-EG في 26 فبراير 2006 في 18:17

سبح اسم ربك الأعلى

http://www.ancientsoft.com

http://www.osakit.com

#5

شكرا على اهتمامك اخ Sphinx-EG

انا جربت الكود ده ومشتغلش

بس ممكن اكون نسخته فى حدث غلط انا نسخته فى حدث الاكتف فورم

طيب انسخه فى اى حدث

#6

انت غيرت اسم الحقل Name والجدول Phones بحيث يكونوا نفس الأسماء التى تستخدمها انت؟

هل وضعت الكود أعلاه قبل الكود الذى تملئ فيه ListBox?

هل ظهرت رسالة خطأ ما؟ وما هى؟

سبح اسم ربك الأعلى

http://www.ancientsoft.com

http://www.osakit.com

#7

ايوه انا عملت كل ده ومنفعش

هذا هو الكود الذى املئ به listbox

 Private Sub Form_Activate()

Data1.DatabaseName = (App.Path & "/db2.mdb")

List1.Refresh

If App.PrevInstance Then End

Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Data1.Refresh
    If Data1.Recordset.RecordCount = 0 Then
    
deleall.Enabled = False
List1.Clear
Exit Sub
Else
    List1.Clear
    Call Data1.Recordset.MoveFirst
    i = 0
    Do While Not Data1.Recordset.BOF And Not Data1.Recordset.EOF
        List1.AddItem Data1.Recordset.Fields(0).Value
        Data1.Recordset.MoveNext
        i = i + 1
    Loop
    deleall.Enabled = True
 End If

End Sub
#8

فين السطر

Data1.RecordSource="SELECT * FROM Phones ORDER BY Name"

الذى يجب أن تضعه قبل Data1.Refresh

وأيضا ألاحظ أنك تستخدم Data1.Recordset.Fields(0).Value وهى بصراحة عادة سيئة ويجب وضع اسم الحقل بدلا من رقم الحقل ليكون Data1.Recordset.Fields("Name").Value

بهذه الطريقة سيكون من السهل تتبع البرنامج واسترجاع طريقة عمله بسهوله عندما تتركه لفترة ثم تعود إليه مرة أخرى ثم ماذا سيحدث إذا أضفت فى المستقبل أى حقل جديد فى أو الجدول فى هذه الحالة سيكون Field(0) تشير إلى حقل أخر تماما....فقط للعلم

سبح اسم ربك الأعلى

http://www.ancientsoft.com

http://www.osakit.com

#9

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

لو سمحت

#10

اسم الجدول roka واسم حقل الاسماء name

#11
Private Sub Form_Activate()

Data1.DatabaseName = (App.Path & "/db2.mdb")

List1.Refresh

If App.PrevInstance Then End

Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""


Data1.RecordSource = "SELECT * FROM roka ORDER BY name"
Data1.Refresh

   If Data1.Recordset.RecordCount = 0 Then
   
deleall.Enabled = False
List1.Clear
Exit Sub
Else
   List1.Clear
   Call Data1.Recordset.MoveFirst
   i = 0
   Do While Not Data1.Recordset.BOF And Not Data1.Recordset.EOF
       List1.AddItem Data1.Recordset.Fields("name").Value
       Data1.Recordset.MoveNext
       i = i + 1
   Loop
   deleall.Enabled = True
End If

End Sub

سبح اسم ربك الأعلى

http://www.ancientsoft.com

http://www.osakit.com

#12

جربته ولم يعمل ولم تظهر اى رسائل خطأ

#13

ضع هذا الكود فى ListBox Click Event

Private Sub List1_Click()
Data1.Recordset.FindFirst "name='" & List1.List(List1.ListIndex) & "'"
End Sub

سبح اسم ربك الأعلى

http://www.ancientsoft.com

http://www.osakit.com

#14

معلش انا عارف ان انا تعبتك جدا

ممكن تعملى مثال وترفقه

#16

عند تشغيل البرنامج تظهر الرسالة التالية

26_02_06_10_10_09_1140977409error.jpg

#17

على فكرة الطريقة دى مبتشتغلش لو الاسماء فى listbox باللغة العربية

فى الملف المرفق قمت باستبدال الاسماء الانجليزية بالعربية

ولم يعمل الكود على ترتيبها

Example2.zip

#18

:wacko:

#19

من الواضح أنك لازلت تستخدم Access 97 وبناء عليه فقد أرفقت البرنامج مرة أخرى باستخدام Access 97 وكذلك غيرت الأسماء للعربية

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

Example.zip

سبح اسم ربك الأعلى

http://www.ancientsoft.com

http://www.osakit.com

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

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

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

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

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

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