شرح برامج » لغات البرمجة »  الدرس العاشر انشأ برنامجك بالفيجوال بيسك

  الدرس العاشر انشأ برنامجك بالفيجوال بيسك  أضيف في: 6-12-1426هـ
الحلقة العاشرة
الجزء الثاني من استخدام جمل SQL مع الفيجوال بيسك
استخدام جملة العرض Select
حيث نستطيع استخدام جمله select مع الفيجوال عند فتح جدول حيث يتم استخدامها بطريقتين
الأولى : حيث يتم تعريف متغير نصي ثم نضع فيه جملة Select ثم نقوم بعد ذلك بفتح الجملة كالتالي :

CODE

Dim sql As String
sql = "Select …….."
If rs.State = adStateOpen Then rs.Close
rs.Open sql, db, adOpenDynamic, adLockOptimistic



ثم بعد ذلك يتم استخدام المتغير Rs الذي يحمل ناتج تنفيذ جملة SQL في أي مكان تريده
الثانية : حيث يتم استخدام الجملة مباشرة عند فتح الجدول كالتالي

CODE

rs1.Open "select …. " , db, adOpenDynamic, adLockOptimistic



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

http://www.arabteam2000.com/picload/Files/1_19220051328480.3144495.jpg
الشكل العام لجملة Select

CODE

SELECT col1, col2, col3,……
From tab1,tab2,…
WHERE conditions
[GROUP BY... ] [HAVING... ] [ORDER BY... ]



هذه هي الصورة العامة لجملة Select والتي من الممكن أن تأخذ معنا عدد من الحلقات فتحملونا في هذه الحلقات التي أظن أنها هامة لي مبرمج يريد أن يكون مبدعا وسنبدأ مع الجملة البسط لجملة Select ثم نمر معها حتى نصل إلى نهاية هذا الشكل ولنبدأ بشرح مبسط لبارامترات الجملة
1 – select وهي جملة العرض لمجموعة من العمدة من جدول أو أكثر تحت شرط أو مجموعة من الشروط
2 – col1,col2,col3 هي أسماء الحقول المراد استخراجها
3 – From وهي جملة تحديد الجداول
4 – tab1,tab2 هي أسماء الجداول التي يتم عرض الحقول منها
5 – where جملة تجهيز الشرط
6 – Conditions الشروط المطلوب تنفيذها على الحقول
7 – Group by هي جملة التجميع
8 – having هي جملة تقليص التجميع المستخدم بجملة Group By
9 – Order By هي جملة الترتيب حسب حقل أو مجموعة من الحقول
هذا شرح سريع لبارامترات الجملة وهيا بنا شمر حتى نخوض في التفاصيل

1 – استعادة أعمدة محددة من الجدول
وهي أبسط عبارات جملة Select والتي تكتب كالتالي

CODE

Select Fields From Tables



حيث Fieldsتمثل الحقول المراد إظهارها Tables تمثل الجداول التي تحوي هذه الحقول
مثال تطبيقي 1
لعرض مجموعة حقول محددة من جدول
اضغط على الزر SQL1 مرتين ثم اكتب الكود التالي

CODE

Dim sql As String
sql = "Select St_no,st_name,Address From St_inf"
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rs1



2 – لعرض جميع الحقول من جدول محدد
حيث يتم كتابة الكود التالي :

CODE

Select * from table



حيث تعبر * عن جميع الحقول بالجدول
مثال تطبيقي 2
لعرض مجموعة حقول محددة من جدول
اضغط على الزر SQL2 مرتين ثم اكتب الكود التالي

CODE

Dim sql As String
sql = "Select * From St_inf "
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rs1



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

CODE

Select tab1.col1,tab2.col2……
From tab1,tab2,…..



مثال تطبيقي 3
لعرض مجموعة حقول محددة من جدول
اضغط على الزر SQL3 مرتين ثم اكتب الكود التالي :

CODE

Dim sql As String
sql = "Select st_inf.st_no,st_inf.st_name,st_inf.address,st_level.level,st_level.class From St_inf,st_level "
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rs1



وهنا إذا لم تضع شرطا معينا فسييتم تكرار السجلات بمعنى أن كل سجل من الجدول الأول سيظهر له كل سجلات الجدول الثاني ولذلك إذا أردت عرض عدد معين من السجلات يمكنك استخدام الجملة التالية
4 – عرض عدد محدد من السجلات باستخدام جملة Top n
حيث تمثل n عدد السجلات المراد عرضها والجملة تكتب كالتالي :

CODE

Select Top n tab1.col1,tab2.col2……
From tab1,tab2,…..



حيث يتم عرض العدد المحدد من السجلات
مثال تطبيقي 4
لعرض مجموعة حقول محددة من جدول
اضغط على الزر SQL4 مرتين ثم اكتب الكود التالي :

CODE

Dim sql As String
sql = "Select top 17 st_inf.st_no,st_inf.st_name,st_inf.address,st_level.level,st_level.class From St_inf,st_level "
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rs1



- وهنا يمكنك استخدام جملة All بدلا من Top n لعرض جميع السجلات مرة ثانية استبدل فقط كلمة Top n بكلمة all سيتم عرض جميع السجلات
- كذلك يمكنك استخدام كلمة DISTINCT لمنع ظهور تكرار السجلات مثل الجملة التالية :

CODE

SELECT DISTINCT LastName FROM Employees;



لمنع تكرار الأسماء المتشابهة في الأسم الأخير
- ولمنع التكرار من خلال عدة جداول مرتبطة معا يمكنك استخدام البارامتر DISTINCTROW مثل عند عرض العملاء وطلبياتهم يمكن أن يكون للعميل أكثر من طلبيه وأنت تريد عرض طلبيه واحدة لكل عميل فنستخدم المثال التالي

CODE

SELECT DISTINCTROW CompanyName FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID ORDER BY CompanyName;



- كذلك يمكنك تغيير اسماء الحقول المعروضة باستخدام جملة AS حيث يتم كتابة الجملة كالتالي :

CODE

Select col1 as new1,col2 as new2
From tab



مثال تطبيقي 5
لعرض حقول محددة وتغيير هذه الحقول بأسماء جديدة
اضغط على الزر SQL5 مرتين ثم اكتب الكود التالي :

CODE

Dim sql As String
sql = "Select st_no as [رقم الطالب],st_name as [اسم الطالب],address as [العنوان] From St_inf "
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rs1



استخدام جملة Where
والتي تستخدم لإدراج الشروط وهنا يمكنك استخدام عدة إشكال من الشروط سوف نتناول جميع الأشكال من الشروط
أولا : شروط المقارنة وتشمل العلامات المعروفة في المقارنة مثل
= أو > أو < أو => أو =< أو <> ( لا يساوي ) حيث يتم كتابة الجملة كالتالي :

CODE

Select * from tab1
Where col { } value



حيث يتم وضع معامل المقارنة مكان القوسين { } ويكون Value هي قيمة المقارنة التي ممكن أن تكون رقم أو قيمة مدخلة من مربع نص أو قيمة مدخلة من أي أداة أخري
مثال تطبيقي 6
لعرض جميع حقول الجدول بحيث أن رقم الطالب أكبر من 6 مثلا
اضغط على الزر SQL6 مرتين ثم اكتب الكود التالي :

CODE

Dim sql As String
sql = "Select * From St_inf where st_no > 6"
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rs1



صور أخري يمكنك تجريبها

CODE

Select * from st_inf where st_no <=6



لعرض مجموعة سجلات بحيث رقم الطالب أقل من أو يساوي 6

CODE

Select * from st_inf where b_date >#1/6/2004#



لعرض مجموعة سجلات بحيث تاريخ الميلاد أكبر من أو يساوي 1/6/2004
ثانيا : استخدام المعاملات المنطقية وهي ثلاث
- And وهي تستخدم لربط شرطين بحيث يكون الناتج صحيح إذا تحقق الشرطين معا
- Or وهي اربط شرطين بحيث يكون ناتج صحيح إذا تحقق أحد الشرطين
- Not وهو شرط لنفي الجملة عكس النتائج وتستخدم مع جمل أخرى كما سيرد لاحقا
وتكتب الجملة كالتالي :

CODE

Select * from tab
Where col >= n1 [and /or ] col <n2
[B]مثال تطبيقي 7




لعرض جميع حقول الجدول بحيث أن رقم الطالب أكبر من 6 مثلا واقل من 15
اضغط على الزر SQL7 مرتين ثم اكتب الكود التالي :

CODE

Dim sql As String
sql = "Select * From St_inf where st_no > 6 and st_no <15"
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rs1



ثالثا : استخدام الجملة Between …. And أو not between …and
وتستخدم لعرض البيانات المحصورة بين قيمتين ممكن أرقام وممكن تواريخ وتكتب الجملة كالتالي :

CODE

Select * from tab
Where col Between n1 and n2



مثال تطبيقي 8
لعرض جميع حقول الجدول بحيث أن رقم الطالب محصور بين 6 و 15 مع الأخذ في الاعتبار أن الرقمين 6 و 15 قيمة البداية والنهاية ستظهر في العرض
اضغط على الزر SQL8 مرتين ثم اكتب الكود التالي :

CODE

Dim sql As String
sql = "Select * From St_inf where st_no between 6 and 15"
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rs1



رابعا : استخدام العامل ضمن IN
حيث تستخدم لعرض القيم الموجودة داخل قوس وتكتب كالتالي :

CODE

Select * from tab
Where col in ( n1,n2,n3,….)



مثال تطبيقي 9
لعرض جميع حقول الجدول بحيث أن رقم الطالب له القيم داخل القوس
اضغط على الزر SQL9 مرتين ثم اكتب الكود التالي :

CODE

Dim sql As String
sql = "Select * From St_inf where st_no In(4,6,8,10,12,14)"
If rs1.State = adStateOpen Then rs1.Close
rs1.Open sql, db, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rs1



نكتفي بهذا في هذه الحلقة ونكمل إن شاء الله في الحلقة القادمة
هانت يا شباب أوشكنا على النهاية إن شاء الله ونتم الموضوع بإذن الله تعالى
[/B]
الكاتب: LaSer_26 انقر هنا لمراسلة LaSer_26 أنقر هنا للإنتقال إلى موقع LaSer_26 إضافة للمفضلة إضافة لمفضلة Google إضافة لمفضلة Delicious إضافة لمفضلة Digg إضافة لمفضلة Facebook
 



 

المنتديات

الأذكار

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