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

اريد شرح لكود بحث الكود موجود بس ابي شرح

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

السلام عليكم

أخواني ممكن طلب بسيط!!

وهو أريد شرح الكود التالي:

وهو يقومبالبحث فقط أريد شرح مفصل سطرسطر.

وشكراً لجهودكم :rolleyes:

Dim Cn As ADODB.Connection
Dim RS As New ADODB.Recordset
Dim SQL As String
Private Sub Command1_Click()
On Error Resume Next
SQL = "SELECT Index.Name, Index.Phone, Index.adress FROM [Index] WHERE (((Index.Name)='" & Text1.Text & "'));"
RS.Open SQL, Cn, adOpenDynamic, adLockOptimistic
If Not RS.EOF Then
Text1.Text = RS("NAME")
Text2.Text = RS("Phone")
Text3.Text = RS("adress")
Else
MsgBox "لم نجد الاسم الذي تبحث عنه"
End If
RS.Close
End Sub
Private Sub Form_Activate()
Set Cn = New ADODB.Connection
Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=elsahaba; Data Source=" & App.Path & "\data.mdb"
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
On Error Resume Next
SQL = "SELECT Index.Name, Index.Phone, Index.adress FROM [Index] WHERE (((Index.Name)='" & Text1.Text & "'));"
RS.Open SQL, Cn, adOpenDynamic, adLockOptimistic
If Not RS.EOF Then
Text1.Text = RS("NAME")
Text2.Text = RS("Phone")
Text3.Text = RS("adress")
Else
MsgBox "لم نجد الاسم الذي تبحث عنه"
End If
RS.Close
End If
End Sub
#2

شباب لا احد يستطيع الشرح غريبه !!

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

ارجوكم اشرحو الكود السابق

#3

اخواني وينكم

ارجوكمممممممممم

شباب بنات

اوففف

#4

-09

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

و بخصوص الالكود السابق فسوف اتكلم عنة على ثلاث محاور :

1- الإتصال

2- فتح الجداول

3- إستدعاء البيانات

أولا : الإتصال :

اقتباس
Private Sub Form_Activate()

Set Cn = New ADODB.Connection

Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=elsahaba; Data Source=" & App.Path & "\data.mdb"

End Sub

الشرح :

بعد تعريف المتغيرات اللازمة لفتح الإتصال بقاعدة البيانات من خلال :

اقتباس
Dim Cn As ADODB.Connection

يتم إستخدام الأمر " open " لفترح الإتصال من خلال تحديد الاتى :

1- نوع مقدم الخدمة ( لقاعدة البيانات )

2- نوع قاعدة البيانات

3- إصدار المحرك الخاص بقاعدة البيانات

4- تحديد المسار الخاص بقاعدة البيانات

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

ملحوظة :

يجب حفظ هذا الكود حفظ جيد و عدم إهمالة لأنة يمكن أن يستخدم فى المستقبل ( .net )

----------

ثانيا ً : فتح الجداول

اقتباس
Private Sub Command1_Click()

On Error Resume Next

SQL = "SELECT Index.Name, Index.Phone, Index.adress FROM [index] WHERE (((Index.Name)='" & Text1.Text & "'));"

RS.Open SQL, Cn, adOpenDynamic, adLockOptimistic

If Not RS.EOF Then

Text1.Text = RS("NAME")

Text2.Text = RS("Phone")

Text3.Text = RS("adress")

Else

MsgBox "لم نجد الاسم الذي تبحث عنه"

End If

RS.Close

End Sub

بعد عملية الأتصال و التى تتم فى المقدمة ( اى نقوم معرفة مكان قاعدة البيانات ) و لكن بعد التصال بها لن تعمل إلا بعد فتح الجداول للتعامل بها : هذا هو ما قمنا بعمله بعد تعريف المتغيرات اللازمة :

اقتباس
Dim RS As New ADODB.Recordset

Dim SQL As String

و من خلال التعريف الخاص بالـ recordset نقوم بالعمل على خاصية الـ open ايضا ً و لكن هذة المرة سوف نحدد الاتى :

1- جملة الـ sql التى هى عصب هذا الكود فمن خلال هى الجملة سوف تتحكم فى قدر و كمية و نوع البيانات الى تريد استدعائها من قاعدة البيانات و الامر لك !!! و هذا ما سوف نراة فى الكود الاتى :

اقتباس
SQL = "SELECT Index.Name, Index.Phone, Index.adress FROM [index] WHERE (((Index.Name)='" & Text1.Text & "'));"

2- يجب تحديد إسم الإتصال المفتوح و هذا ضرورى لتنفيذ جملة الـ sql ( و هذة عملية عقلية بحته ف؟أين يتم تنفيذ الكود !!!! ؟؟؟ )

و كما ترى يمكنك ان تتوقفى حيث ان اهم شيئان هما ما سبق و لكن يفضل زيادة تحديد الاتى :

3- نوع المحسة ( courser )

4- نوع الإستدعاء للبيانات ( قراءة فقط أو ..... )

مما سبق سوف يتم عمل إتصال و فتح الجداول و يبقى إستدعاء البيانات :

ثالثا : إستدعاء البيانات :( عرض )

من خلال هذا الكود :

اقتباس
Text1.Text = RS("NAME")

Text2.Text = RS("Phone")

Text3.Text = RS("adress")

منطوق هذا الكود هو :

إظهار البيانات التى توجد فى الجدول الأول خاصة فى العمود الـ name فى أول سجل فى التكست بكس )

و العكس صحيح فى عملية الحفظ فى قاعدة البيانات :

فسوف نعكس العملية ان ( حفظ المعلومات الموجودة فى التكست بكس فى الجدول الأول فى العمود الname فى السجل الاول )

ملحوظة :

بالنسبة لتحدد الأول فهذا ليس ضرورى فيمكن التنقل و التعديل فى اى مكان و لكن سوف يعتمد على مكان الموحسة " courser "

و بالنسبة لعملية الحفظ هنا سوف تكون مشروطة :

و عليها يجب معرفة ديناميكية العمل الخاصة " courser " حيث انة عند عمل بحث فى قاعدة البيانات يتم تحديد العمود ( حقل ) للعمل من خلاله و عند البداية يتم التنقل بين السجلات حتى الوصول الى كلمة البحث أو الكلمة المراد البحث بها و عند وجود هذة الكلمة يتوقف الـ courser عندها و لا يكم

- من خلال هذة الفكرة يكون عملية الإستدعاء مشروطة و نعتمد هنا على خاصة الـ eof أو end of file و هى خاصة من النوع bollian فتعطى true فى حالة الوصول الى نهاية الملف أو قاعدة البيانات

فنقول إذا لم يصل التحميل للبيانات الى النهاية فأكمل التحميل ( تحميل الى النهاية )و اذا تم الوصول الى النهاية فاخرج رسالة انى ليس هناك بيانات اخرى و اعتقد ان الكود هنا به خطأ ما حيث أن هذا الكود هو كود الخاصة بعملي البحث أما عملية الإستدعاء سوف يتم أو يفضل إستخدام الـ do للتحميل فى الـlist او combo

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

و كل سنة و الكل بخير

السلام عليكم

ارجوا مساعدتى للعمل كمبرمج اوراكل باى شركة خبرتى 1 سنه و ربنا الموفق

خبرى 6 سنوات فى فيجوال بيزك 6و ASP

#5

الله يوفقك دنيا وآخرة

آمين

مشكورررررررر

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

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