دورات هندسية

 

 

قواعد بيانات فيجول بسك

النتائج 1 إلى 5 من 5
  1. [1]
    khalil ahmed
    khalil ahmed غير متواجد حالياً

    جديد

    تاريخ التسجيل: May 2006
    المشاركات: 5
    Thumbs Up
    Received: 0
    Given: 0

    قواعد بيانات فيجول بسك

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

    من مواضيع khalil ahmed :


    0 Not allowed!



  2. [2]
    SAMI741
    SAMI741 غير متواجد حالياً
    جديد


    تاريخ التسجيل: Jul 2006
    المشاركات: 3
    Thumbs Up
    Received: 0
    Given: 0
    عندي قاعدة بيانات في الاكسيس أريد تحويلها للفيجوال بيسك6
    تحوي 6 جداول
    و4 علاقات
    و 5 تقارير
    أرسل المفيد على sami741*************
    ولكم جزيل الشكر

    0 Not allowed!



  3. [3]
    محبة الله ورسوله*
    محبة الله ورسوله* غير متواجد حالياً
    عضو شرف
    الصورة الرمزية محبة الله ورسوله*


    تاريخ التسجيل: Mar 2006
    المشاركات: 9,592

    وسام الشكر

     وسام كبار الشخصيات

    Thumbs Up
    Received: 30
    Given: 13
    اقتباس المشاركة الأصلية كتبت بواسطة khalil ahmed مشاهدة المشاركة
    اطلب شرح كيفية التعامل مع قواعد البيانات في الفيجول بيسك

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

    المقدمة :
    هناك العديد من طرق التعامل مع قواعد البيانات ، ففيما تتربع التقنية الحديثة Ado.net على طرق التعامل مع قواعد البيانات في اصدارات .Net FrameWork فإن هناك مثيلاً لها في الفيجوال بيسك وهو الاصدارة الاقدم Ado ، فيما توجد طرق أخرى مثل RDO و DAO وهي الطريقة محور درسنا اليوم ، وهي واحدة من اقدم الطرق ، ولم تطلها يد التطوير التي طالت ADO على سبيل المثال لتخرج منها DAO.net .

    ويشرح هذا الدرس كيفية التعامل مع هذه التقنية من خلال قاعدة بيانات بسيطة جداً ، والدرس مقسم إلى أربعة اقسام :
    يتضمن القسم الأول محتويات قاعدة البيانات ( راجع دروس قسم الاكسيس لمزيد من التفصيل ) ، ومن ثم انشاء الواجهة الاساسية بالفيجوال بيسك ( راجع دروس الفيجوال بيسك للمبتدئين لمزيد من التفصيل ) وكيفية الربط مع قاعدة البيانات وانشاء قاعدة بيانات وقت التنفيذ Run Time .
    أما القسم الثاني فيحتوي على كيفية التعامل مع قواعد البيانات والأوامر الاساسية للحفظ والاضافة والتعديل وغيرها .
    أما الدرس الثالث فهو مختص بعرض البيانات الموجودة في درسنا على أداة MSFlexGrid ، وبعض العمليات عليها .
    ويختص الدرس الأخير بعمل عملية بحث مبسطة بدلالة الاسم ، أو رقم الهاتف . مع اتمام التعامل مع MSFlexGrid .

    الدرس :
    في بداية الدرس سوف نقوم سريعاً بتصميم قاعدة بيانات ، وشكل الفورم الرئيسي قبل البدء في تطبيق عناصر الدرس .

    في البداية قم بانشاء قاعدة بيانات تحتوي على الحقول التالية :
    Nu : من النوع رقم Number ، وهو مثلاً رقم الموظف في الشركة .
    Fn : من النوع ( نص Text ) وهو خاص باسم الشخص .
    Te : وهو خاص برقم الهاتف ، وهو من النوع رقم Number ، وهذا الحقل أيضاً من المفضل وضعه على هيئة نص Text إلا أننا سنسخدمه على شكل رقم .

    ومن ثم قم بانشاء Form وضع فيه الأدوات التالية :
    * Text1,Text2,Text3 لعرض معلومات كل شخص .
    * Command من 1 إلى 4 ( الأول - السابق - التالي - الأخير ) .
    * Command من 5 إلى 8 ( تعديل سجل ، سجل جديد - انهاء بلا حفظ - حفظ ) . مع مراعاة أن يكون التمكين Enabled لكل من زري ( حفظ - بلا حفظ ) هو False .
    * Command من 9 إلى 12 ( حذف - خروج - عرض في جدول - عدد السجلات ) .

    وقم بانشاء Module ... اضغط على الفورم بزر الماوس الأيمن ، اختر Add ومن ثم Module .

    والآن سننتقل لمرحلة التعامل مع قاعدة البيانات .

    لبدء التعامل مع DAO لا بد من اضافة المكتبة الخاصة بالداو إلى المشروع الذي قمنا بانشاءه ، لذا من قائمة Project اختر Refrence واختر المكتبة :
    Microsoft Dao 3.6 Object Library
    أو أي اصدار اقدم ، إلا أن 3.6 هو الاصدار المفضل .

    والآن ، تقدم لنا DAO كائنات مختلفة للتعامل مع قواعد البيانات ، فهي توفر لنا Workspace لبدء العمل مع قاعدة البيانات مع الكائن Database والمختص بالتعامل مع ملف قاعدة البيانات ، RecordSet للتعامل مع الجداول ، TableDef للقيام بانشاء جداول وقت التنفيذ - أحد تطبيقاته - .

    والآن سنتعرف على Sub main() ؟
    يوفر لنا الفيجوال بيسك امكانية بدء المشروع بواسطة هذه الاجراء والذي يتم تعريفه في Module ، ولذلك نقوم في هذا الاجراء بعمل المهام التي نحتاجها قبل البدء في تنفيذ الكود .

    من قائمة Project اختر Project Properties ، ومن ثم اختر Sub main من القائمة Startup .

    والآن سوف بتعريف عدد من المتغيرات Public وذلك بالشكل التالي :

    [شفرة]

    Public D1 As Database
    Public T1 As Recordset
    Public T2 As Recordset

    Public folder As String

    [/شفرة]

    * المتغيرات Public هي أحد أنواع الوصول للمتغيرات حيث يتم مشاهدة المتغيرات على مستوى المشروع .

    المتغير الأول خاص بقاعدة البيانات ، بينما متغيرات خاصان بالجداول ، وأخيراً متغير نصي String نخزن فيه مسار البرنامج الحالي .
    والآن سوف نقوم ببرمجة الاجراء main ، وسوف يحتوي على المهام التالي مرتبة :
    * معرفة مسار البرنامج .
    * إذا لم تكن قاعدة البيانات موجودة فإنه يقوم باستدعاء اجراء انشاء قاعدة بيانات جديدة .
    * بعد وجود قاعدة البيانات الجديدة أو الموجودة اصلاً ، القيام بازالة خاصية القراءة فقط من على الملف .
    * الاتصال بقاعدة البيانات .
    * اظهار الفورم الرئيسي للبرنامج .
    وهذا هو الكود ، وبين كل مهمة ومهمة أخرى هناك سطر .

    [شفرة]

    Private Sub main()
    folder = App.Path
    If Right(folder, 1) <> "\" Then folder = folder & "\"

    If Dir(folder & "mm.mdb") = "" Then
    CreateMyDatabase folder & "mm.mdb"
    End If

    SetAttr folder & "mm.mdb", vbNormal

    Set D1 = DBEngine.Workspaces(0).OpenDatabase(folder & "mm.mdb")

    Form1.Show
    End Sub

    [/شفرة]

    والآن سوف نقوم ببرمجة الاجراء الذي يقوم بعمل قاعدة البيانات في حالة عدم وجودها ، وهو مقسم على قسمين .
    - انشاء ملف قاعدة البيانات .
    - بعد انشاء الملف ، انشاء الجداول والحقول داخلها .

    سنسمي المهمة الأولى CreateMyDatabase وسوف تقوم بالخطوات التالية مرتبة :
    * تعريف متغير خاص لقاعدة البيانات .
    * انشاء قاعدة البيانات - لاحظ تشابه الطريقة مع طريقة فتح قاعدة البيانات .
    * اغلاق قاعدة البيانات .
    * استدعاء الاجراء الثاني - انشاء الجداول والحقول داخلها - .
    * افراغ المتغيرات Varibles حتى لا تحجز مكاناً من الذاكرة .

    مجدداً هذا هو الكود :

    [شفرة]

    Sub CreateMyDatabase(DB_Name As String)
    Dim dbsNew As Database

    Set dbsNew = DBEngine.Workspaces(0).CreateDatabase(DB_Name, dbLangGeneral, dbEncrypt)

    dbsNew.Close

    CreateMyTableS DB_Name


    Set dbsNew = Nothing
    Set wrkDefault = Nothing
    End Sub

    [/شفرة]

    المهمة الأخيرة في هذا الدرس ، هي انشاء الجداول داخل قاعدة البيانات ، وسوف تمر بالخطوات التالية .
    * تعريف TableDef لانشاء جدول من خلاله . وكذلك متغير من نوع ملف قاعدة بيانات .
    * فتح قاعدة البيانات التي انشأناها للتو .
    * تعريف TableDef على أنه منشأ للجداول داخل قاعدة البيانات ( ربطه بقاعدة البيانات ) .
    * البدء في اضافة الحقول .
    * اتمام عملية اضافة الجدول .

    وهذا هو الكود :

    [شفرة]
    Sub CreateMyTableS(DBName)
    Dim dbsMyData As Database
    Dim tdfNew1 As TableDef

    Set dbsMyData = OpenDatabase(DBName)

    With dbsMyData
    Set tdfNew1 = dbsMyData.CreateTableDef("TB")

    With tdfNew1
    .Fields.Append .CreateField("nu", dbInteger)
    .Fields.Append .CreateField("fn", dbText)
    .Fields.Append .CreateField("te", dbDouble)
    End With

    dbsMyData.TableDefs.Append tdfNew1
    End With
    End Sub

    [/شفرة]

    0 Not allowed!


    لا تقل من أين أبدأ ... طاعة الله بداية
    لا تقل أين طريقى ... شرع الله الهداية
    لا تقل أين نعيمى ... جنة الله كفاية
    لا تقل غداً سأبدأ ... ربما تأتى النهاية
    ---------------------
    متغيبه عن الملتقي دعواتكم
    ونسأل الله ان يحفظ سائر بلاد المسلمين وان ينصرهم على الظالمين

  4. [4]
    محبة الله ورسوله*
    محبة الله ورسوله* غير متواجد حالياً
    عضو شرف
    الصورة الرمزية محبة الله ورسوله*


    تاريخ التسجيل: Mar 2006
    المشاركات: 9,592

    وسام الشكر

     وسام كبار الشخصيات

    Thumbs Up
    Received: 30
    Given: 13
    الجدول الأول بقاعدة البيانات .
    * التأكد من عدد السجلات الموجودة ، فإذا كان هناك سجلات فإننا سنطلب الإجراء ShowData ، وإلا فإننا سوف نطلب الاجراء ShowNoData :

    Private Sub Form_Load()
    Set T1 = D1.OpenRecordset("tb", dbOpenTable)

    If T1.RecordCount < 1 Then
    Call shownodata
    Else
    Call showdata
    End If
    End Sub

    والآن سوف نقوم بكتابة اسطر كل من حدثي ، ShowData ، و ShowNoData ، فكل ما في الإجراء Sub الأول هو قراءة القيم الحالية للسجلات ووضعها في أماكنها بالشكل التالي :

    Private Sub showdata()
    Text1.Text = T1!nu
    Text2.Text = T1!Fn
    Text3.Text = T1!Te
    End Sub

    فيما سيضع الإجراء الثاني قيم فارغة "" في الأماكن الخاصة بالعرض .

    Private Sub shownodata()
    Text1.Text = ""
    Text2.Text = ""
    Text3.Text = ""
    End Sub

    أوامر التنقل بين السجلات .
    تشترك جميع هذه الأوامر الأربعة في صيغة عامة ، فأولاً التأكد من وجود سجلات ، ومن ثم التأكد من أنني لست في حالة تعديل أو اضافة وذلك من خلال معرفة حالة زر أمر ( حفظ ) ومن ثم التأكد من أنني لست في البداية ( لأمر السابق ) وأنني لست في النهاية ( لأمر التالي ) ، ومن ثم تنفيذ الأمر ( MoveNext , MoveLast , MovePrevious , MoveFirst ) وأخيراً استدعاء ShowData .
    وهذه هي الأوامر للاجراءات الأربعة :

    Private Sub Command1_Click()
    If T1.RecordCount < 1 Then Exit Sub

    If Command8.Enabled = True Then
    s = MsgBox("أنت الآن في حالة اضافة أو تعديل ، هل تريد الغاءها ؟", vbYesNo + 524288 + 1048576, "مثال")
    End If

    If s = vbNo Then Exit Sub

    T1.MoveFirst

    Command7.Enabled = False
    Command8.Enabled = False

    Call showdata
    End Sub


    Private Sub Command2_Click()
    If T1.RecordCount < 1 Then Exit Sub

    If Command8.Enabled = True Then
    s = MsgBox("أنت الآن في حالة اضافة أو تعديل ، هل تريد الغاءها ؟", vbYesNo + 524288 + 1048576, "مثال")
    End If

    If s = vbNo Then Exit Sub

    T1.MovePrevious

    If T1.BOF Then T1.MoveFirst

    Command7.Enabled = False
    Command8.Enabled = False

    Call showdata
    End Sub

    Private Sub Command3_Click()
    If T1.RecordCount < 1 Then Exit Sub

    If Command8.Enabled = True Then
    s = MsgBox("أنت الآن في حالة اضافة أو تعديل ، هل تريد الغاءها ؟", vbYesNo + 524288 + 1048576, "مثال")
    End If

    If s = vbNo Then Exit Sub

    T1.MoveNext

    If T1.EOF Then T1.MoveLast

    Command7.Enabled = False
    Command8.Enabled = False

    Call showdata
    End Sub

    Private Sub Command4_Click()
    If T1.RecordCount < 1 Then Exit Sub

    If Command8.Enabled = True Then
    s = MsgBox("أنت الآن في حالة اضافة أو تعديل ، هل تريد الغاءها ؟", vbYesNo + 524288 + 1048576, "مثال")
    End If

    If s = vbNo Then Exit Sub

    T1.MoveLast

    Command7.Enabled = False
    Command8.Enabled = False

    Call showdata
    End Sub

    أوامر الإنشاء ، والتعديل ، وحفظ معلومات السجلات ، أو انهاء عملية التعديل والاضافة بلا حفظ .
    سوف نقوم في أمر انشاء سجل جديد بالتأكد أولاً أننا لسنا في حالة اضافة أو تعديل ، ومن ثم نقوم باستخدام أمر Addnew لفتح قاعدة البيانات للاستقبال ، ومن ثم تمكين كل من زري ( حفظ - انهاء بلا حفظ ) ومن ثم افراغ الخانات للمستخدم لادخال البيانات المطلوبة :

    If Command8.Enabled = True Then
    s = MsgBox("أنت الآن في حالة اضافة أو تعديل ، هل تريد الغاءها ؟", vbYesNo + 524288 + 1048576, "مثال")
    End If

    If s = vbNo Then Exit Sub

    T1.AddNew

    Command7.Enabled = True
    Command8.Enabled = True


    Call shownodata


    وبالنسبة لأمر التعديل فسوف يزيد نقطة واحدة فقط ، وهي التأكد من وجود سجلات أصلاً لتعديلها ، وأننا لن نقوم بافراغ مربعات النص TextBoxes ، مع مراعاة استخدام الأمر Edit بدلاً من AddNew :

    If T1.RecordCount < 1 Then Exit Sub

    If Command8.Enabled = True Then
    s = MsgBox("أنت الآن في حالة اضافة أو تعديل ، هل تريد الغاءها ؟", vbYesNo + 524288 + 1048576, "مثال")
    End If

    If s = vbNo Then Exit Sub

    T1.Edit

    Command7.Enabled = True
    Command8.Enabled = True

    في الحفظ ، سوف نستخدم الأمر Update لتحديث التغييرات سواء كانت بالاضافة والتعديل ، مع الغاء تمكين Enabled لزري الحفظ - انهاء بلا حفظ .
    وأما في انهاء بلا حفظ فسوف نستخدم الأمر CancelUpdate .
    هناك اختلاف آخر وهو أننا نستخدم الدالة Val مع القيم الرقمية للتأكد من أن المستخدم قام بادخال أرقام وليس حروف مثلاً .
    وهذه هي أوامر هذين الاجراءين :

    Private Sub Command7_Click()
    T1.CancelUpdate

    Call showdata

    Command7.Enabled = False
    Command8.Enabled = False
    End Sub

    Private Sub Command8_Click()
    T1!nu = Val(Text1.Text)
    T1!Fn = Text2.Text
    T1!Te = Val(Text3.Text)

    T1.Update

    Command7.Enabled = False
    Command8.Enabled = False
    End Sub

    *** ملاحظة هامة : من الخطأ فتح قاعدة البيانات للاضافة AddNew أو للتعديل Edit وتنفيذ أمر الحفظ Update في حدث آخر مما يجعل قاعدة البيانات في حالة انتظار تطول أو تقصر ، مما قد يتسبب بمشاكل في حالة انقطاع التيار الكهربي أو اعادة تشغيل الجهاز على سبيل المثال ، والصحيح أن تتم الاضافة والحفظ وكذلك مع التعديل في اجراء واحد ، وإنما ما قمت به هو للتسهيل فقط .
    نقطة أخرى ، وهو أن الغالب أن باقي الأزرار تتعطل Enabled = False ما عدا زري الحفظ حتى تنتهي عملية الاضافة .

    عرض عدد السجلات .
    نستخدم لهذا الغرض الدالة RecordCount والتي تعود بعدد السجلات الحالية .
    وذلك بالشكل التالي :

    nom = T1.RecordCount
    MsgBox "عدد السجلات الحالي هو : " & nom, vbInformation, "مثال"

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

    Private Sub Command9_Click()
    If T1.RecordCount = 0 Then Exit Sub

    If Command8.Enabled = True Then
    s = MsgBox("أنت الآن في حالة اضافة أو تعديل ، هل تريد الغاءها ؟", vbYesNo + 524288 + 1048576, "مثال")
    End If

    If s = vbNo Then Exit Sub

    Dim ase
    aas = 1 + 16 + 256
    ase = MsgBox("هل تريد بالتأكيد حذف السجل الحالي ؟؟؟", aas + 524288 + 1048576, "مثال")

    If ase = vbNo Then Exit Sub


    T1.Delete
    If T1.RecordCount <> 0 Then

    T1.MoveNext

    If T1.EOF Then T1.MoveLast

    Call showdata
    Else
    Call shownodata
    End If
    End Sub

    0 Not allowed!


    لا تقل من أين أبدأ ... طاعة الله بداية
    لا تقل أين طريقى ... شرع الله الهداية
    لا تقل أين نعيمى ... جنة الله كفاية
    لا تقل غداً سأبدأ ... ربما تأتى النهاية
    ---------------------
    متغيبه عن الملتقي دعواتكم
    ونسأل الله ان يحفظ سائر بلاد المسلمين وان ينصرهم على الظالمين

  5. [5]
    محبة الله ورسوله*
    محبة الله ورسوله* غير متواجد حالياً
    عضو شرف
    الصورة الرمزية محبة الله ورسوله*


    تاريخ التسجيل: Mar 2006
    المشاركات: 9,592

    وسام الشكر

     وسام كبار الشخصيات

    Thumbs Up
    Received: 30
    Given: 13
    ممكن اخي ان تتابع الرابط التالي
    http://www.arabteam2000-forum.com/in...owtopic=128913

    وبالتوفيق للجميع

    0 Not allowed!


    لا تقل من أين أبدأ ... طاعة الله بداية
    لا تقل أين طريقى ... شرع الله الهداية
    لا تقل أين نعيمى ... جنة الله كفاية
    لا تقل غداً سأبدأ ... ربما تأتى النهاية
    ---------------------
    متغيبه عن الملتقي دعواتكم
    ونسأل الله ان يحفظ سائر بلاد المسلمين وان ينصرهم على الظالمين

  
الكلمات الدلالية لهذا الموضوع

عرض سحابة الكلمة الدلالية

RSS RSS 2.0 XML MAP HTML