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

البحث عن طريق الرقم ب ado ؟

مغلق
بدأه Dena22 في 25 سبتمبر 2005 · 10 رد · 1,073 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اذا وجد لي جدولين أحدهما للموظفين ( اسم الموظف - رقمه ) والآخر للأقسام ( رقم الموظف - اسمه - رقم القسم - اسم القسم )

اريد الاستعلام عن بيانات موظف بحيث اذا تم اختيار اسمه من combo1 تظهر نتائج الاستعلام في تقرير.

ماهي طريقة الاستعلام عن طريق رقم الموظف؟ بحيث اذا تم اختيار ( أحمد ) مثلا من القائمة يقوم بالبحث بداخل الجدول عن طريق رقم ( أحمد ) وليس عن طريق اسمه كالتالي

sql = " select*from mytable where fielld1='" & Combo1.Text & " '"

لتظهر بعد ذلك النتائج

أرجو المساعدة وشكرا

#2
"Select * From MyTable Where Field1 = " & Combo1.text

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#3

أخي طارق إبراهيم

شكرا جزيلا على الرد ولكن ليس هذا ما أسأل عنه . وإنما أريد معرفة طريقة الاستعلام عن الرقم الخاص بالموظف الذي يظهر اسمه بداخل combo1 ؟؟؟؟؟

اتمنى ان يكون قصدي واضحا

#4

جملة sql التي كتبتيها ستحضر اسم الموظف

اكتبي الكود التالي

empno = rs![empname]
ثم اكتبي جملة بحث جديدة كالتالي
"Select * From MyTable Where Field1 = " & empno
rs1.open
ثم اكملي الكود

أرجو أن يكون الحل واضح

#5

أخي ناصر ما الفرق بين الكود الذي كتبته والكود السابق؟ هل قمت بتعريف متغير لاحتواء الاسم؟ ام الرقم؟ لم افهم قصدك؟

اريد من جملة sql أن تحضر البيانات عن طريق البحث من خلال الرقم وليس الاسم ، بمعنى يتم اختيار اسم معين من الكومبو وبناء عليه لايتم البحث داخل الجدول من خلال هذا الاسم وإنما من خلال الرقم الخاص بالاسم.

ارجو الايضاح اكثر

#6
"Select * From Department,Employees Where Department.EmpID=Employees.EmployeeID And EmpName='" & Combo1.text & "'"

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#7
اقتباس
ماهي طريقة الاستعلام عن طريق رقم الموظف؟ بحيث اذا تم اختيار ( أحمد ) مثلا من القائمة يقوم بالبحث بداخل الجدول عن طريق رقم ( أحمد ) وليس عن طريق اسمه

كيف تقوم بتعبئة الCombobox بأسماء الموظفين؟

إجابتي لسؤالك تعتمد على إجابتك لهذا السؤال.

فكر بطريقة أخرى

#8

قمت بتعبئة الكومبو كالتالي

If rs.State = adStateOpen Then rs.Close
Combo5.Clear
Set rs = New ADODB.Recordset
sql = "select name from emp"
rs.Open sql, db, adOpenDynamic, adLockPessimistic
For i = 1 To 100000
If rs.EOF = False Then
'Combo5.Clear
Combo5.AddItem rs("name")
rs.MoveNext
Else
Exit For
End If
Next
#9

انا مستغرب من وجود

For i = 1 To 100000

هذا سيشكل دوران على الفاضي في حال لم يكن عدد الموضفين 100000 وبعدين لو كانوا اكثر !!!!!!!!!!!!!!

اختي ايتخدمي While بدل For والشر ط بيكون rs.EOF = True

يعني While (rs.EOF ) ثتم بقية الكود .

الملاحضة الثانية :

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

جدول الموضفين :

رقم الموضف - السم الموضف - العنوان .......-.......-....

جدول الأقسام :

رقم القسم - رقم الموضف - اسم القسم .....................

بيث ان رقم الموضف مفتاح اجنبي مرجعة المفتاح الأساسي في جدول الموضفين :

وعندما تويدن ان تستعلمي عن بيانات الموضف يكون كالتالي :

'Select * From Emp Where name ='fawaz

هذا بالنسبة للجدول الأول بدل كلمة Fawaz ضعي Combo1.text ليكون

على العموم :

"Select * From Emp Where name ='" & combo1.text  & "'"

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

Select * from Section Where idEmp in (select id from Emp where name = '"& Combo1.text & " ' )"

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

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

#10

معنى ذلك انني سأقوم بعمل علاقة من داخل قاعدة البيانات اكسس؟ ؟؟؟؟؟

#11

لا

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

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

دائما أنا أفضل كتابة الكود بالستخدام Sql لمعالجة عملياتي . وهوا ايضا كما اتبعتية انتي .

لاتنسي ان تعملي فقط المفتاح الرئيسي للحقول الأساسية . وعادة ما يفضل ان يكون المفتاح الإساسي هوا برقم القسم و رقم الطالب ورقم الحساب عيني للحقول المرقمة .

بالتوفيق

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

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