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

مثال على استخدام Execute و SQL بطريقة ADO

مغلق
بدأه Hatam في 7 أكتوبر 2004 · 2 رد · 1,157 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هذا مثال يوضح كيفية استخدام Execute في الفيجول بيسك بطريقة ADO

اولا كون قاعدة بيانات باسم db1 ببرنامج Access تحتوي على جدول واحد باسم tbl يحتوي هذا الجدول على ثلاثة حقول

- fld1 من نوع رقم (number)

- fld2 من نوع نص (text)

- fld3 من نوع نص (text)

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

انشاء ثلاثة من تكست بوكس (Textbox)

تم انشاء اربعة ازرار (Command) سمي الاول بحث والثاني إضافة والثالث تعديل والرابع حذف تم احفظ المشروع في نفس مجلد الذي يحتوي على قاعدة البيانات.

تم ادخال على الكود وألصق داخله الكوود التالي :

Public cn  As New ADODB.Connection
Public rs As New ADODB.Recordset

Sub cleartext()
'مسح التكست
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub

Private Sub Form_Load()
If Dir("" & App.Path & "\db1.mdb") <> "" Then
    cn.Open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb"
    cleartext
Else
    MsgBox "لا توجد قاعدة بيانات"
End If
End Sub

Private Sub Command1_Click()
'البحث على سجل
If Text1.Text <> "" Then
    Set rs = cn.Execute("select * from tbl where fld1=" & Trim(Text1.Text) & "")
    If Not rs.EOF Then
        cleartext
        'لعرض نتيجة البحث في تكست
        Set Text1.DataSource = rs
        Text1.DataField = "fld1"
        Set Text2.DataSource = rs
        Text2.DataField = "fld2"
        Set Text3.DataSource = rs
        Text3.DataField = "fld3"
    Else
        cleartext
        MsgBox "هذا السجل غير موجود"
    End If
End If
End Sub

Private Sub Command2_Click()
'إضافة سجل جديد
If Text1.Text <> "" And Text2.Text <> "" And Text3.Text <> "" Then
    'البحث عن السجل لتأكد من انه موجود
    Set rs = cn.Execute("select * from tbl where fld1=" & Trim(Text1.Text) & "")
    If rs.EOF Then
        cn.Execute "insert into tbl(fld1,fld2,fld3) values(" & Trim(Text1.Text) & ",'" & Trim(Text2.Text) & "','" & Trim(Text3.Text) & "')"
        cleartext
    Else
        MsgBox "السجل تمت إضافته سابقاً"
    End If
End If
End Sub

Private Sub Command3_Click()
'التعديل في سجل قديم
If Text1.Text <> "" And Text2.Text <> "" And Text3.Text <> "" Then
    'البحث عن السجل
    Set rs = cn.Execute("select * from tbl where fld1=" & Trim(Text1.Text) & "")
    If Not rs.EOF Then
        cn.Execute "update tbl set fld1=" & Trim(Text1.Text) & ", fld2='" & Trim(Text2.Text) & "', fld3='" & Trim(Text3.Text) & "' where fld1=" & Trim(Text1.Text) & ""
        cleartext
    Else
        MsgBox "السجل غير موجود"
    End If
End If
End Sub

Private Sub Command4_Click()
If Text1.Text <> "" Then
    'البحث عن السجل
    Set rs = cn.Execute("select * from tbl where fld1=" & Trim(Text1.Text) & "")
    If Not rs.EOF Then
        cn.Execute "delete from tbl where fld1=" & Trim(Text1.Text) & ""
        cleartext
    Else
        MsgBox "السجل غير موجود"
    End If
End If
End Sub

طريقة عمل كالتالي :

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

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

وتمنياتي بالتوفيق

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

#2

موضوع جيد اخ حاتم و اسمح لى ان اضيف بعض المعلومات البسيطه للموضوع

يمكنك ايضاً ايضاً استخدام ال Parameter مع ال Command لو اردت ان يقوم المستخدم باستخدام معيار Criteria محدد للبحث

و لربما احببت ايضاً ان تستخدم Stored Procedure فى حالة استخدام ال MSSQL Server و هو افضل من نواحى عديده و خصوصاً ال Performance فى ال SQLServer

Technical Lead Developer

My LinkedIn Profile

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

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

#3

السلام عليكم

نعم أخي طارق يمكن عمل الكثير باستخدام Excute والشئ المهم هو انها تساعد على العمل بــ SQL مع أي قاعدة بيانات من الفيجول بيسك , لإني لاحظة ان SQL اسرع في التعامل مع قاعدة البيانات .

واضيف هذا الكود الذي يقوم بانشاء جدول بــ SQL في قاعدة بيانات اكسس من الفيجول بيسك .

cn.Execute "Create Table tabl ( fld1 INTEGER NOT NULL , fld2 VarChar(15) , fld3 VARCHAR(15) )"

cn.Execute "Create Index idx1 On tabl (fld1)"

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

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