بسم الله الرحمن الرحيم
مقدمة:
هذا الدرس سوف يشرح كيفية بناء قاعدة بيانات باستخدام فيجول بيسك 6.
الافتراضات:
يفترص هذا الدرس معرفتك بقواعد البيانات و البرمجة في الفيجول بيسك. ويفترض وجود ميكروسوفت أكسس في جهازك.
بداية:
سوف نعمل قاعدة بيانات تحتوي على الجدول معلومات الطالب سوف نسميه ( طالب)
جدول معلومات الطالب:
سوف يحتوي الجدول على المعلومات التالية
· الاسم (نص وطوله 40 حرف)
· العمر (رقم)
· رقم الطالب و نوعه رقم ذو خاصية الزيادة الاتماتيكية ( Autonumbert) المفتاح
· صورة الطالب (من نوع صور). نعم سوف نوضح كيفية حفظ صور لقاعدة البيانات. اليس للطالب حق في وضع صورته J
الخطوات:
ابدأ فيجول بيسك واختر برنامج قياسي في نوع المشروع:
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
ضع على الفورم زر وغير اسمه الى btnCreate كما في الشكل ادناه
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
سوف نحتاج الى اضافة بعض المراجع الى المشروع لذلك اختر قائمة project و من ثم References
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
وبما اننا سوف نعمل قاعدة بيانات خاصة باكسس فسوف نستعمل DAO
لذلك أضف الكود التالي الى بداية الكود في الفورم :
كود:
Dim wspDefault As Workspace ' We are going to creat MDB file so we will
use DAO
Dim dbs As DAO.Database '
Dim tdf As DAO.TableDef
لكي نمكن المستخدم من اختيار محل حفظ الملف عن طريق المتصفح الخاص بفتح وحفظ الملفات العادي. لذلك نحتاج الى اصافة المرجع له
لذا اضغط بالزر الايمن على التول بوكس واختر Components كما في الشكل التالي
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]ومن ثم فعل المكتية الخاصة به كما في الشكل التالي
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]الخطوة التاليه هي الضغط على مفتاح Shift+F7 لعرض الفورم ومن ثم سحب الايقونة الى الفورم . الايقونة موضحة بالشكل التالي
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]الخطوة التالية هي اضافة الكود الذي سوف يعرض نافذة حفظ اسم الملف الى الوظيفة fnGetNewDBName
كود:
Function fnGetNewDBName() As String
strDBName = ""
CommonDialog1.CancelError = True
On Error GoTo ErrHandler2
With CommonDialog1
On Error GoTo ErrHandler2
.DialogTitle = "الرجاء اختيار اسم للقاعدة البيانات"
' make sure we ask before we overwrite
' سوف نستعمل امتداد خاص بنا بدلا من امتداد اكسس
.Filter = "G. W Alfadhly Files (*.GWF)|*.FWG"
.Flags = .Flags + cdlOFNCreatePrompt + cdlOFNOverwritePrompt
' show the save as
.ShowSave
' get the file name
If Err.Number <> cdlCancel Then
strDBName = .FileName
End If
' make sure it is not empty
If Trim(strDBName) <> "" Then
fnGetNewDBName = Trim(strDBName)
Else
fnGetNewDBName = ""
End If
End With
Exit Function
ErrHandler2:
fnGetNewDBName = ""
End Function
========================
وظيفة بناء الملف او ورشة العمل
أضف الكود التالي الى وظيفة fnCreateNewDB
كود:
Function fnCreateNewDB()
Dim strFileName As String
' احصل على اسم قاعدة البيانات
strFileName = fnGetNewDBName()
'تأكد من ان المستخدم لم يدخل اسما موجودا واسأل اذا كان يريد ان يمسح القديم.
' Ask for name of Databas
If Dir(strFileName) <> "" Then Kill strFileName
‘ورشة العمل
Set wspDefault = DBEngine.Workspaces(0)
' كلمة السر.
strPassword = ""
' ask for pasword
strPassword = InputBox("Please Enter password for this workspace", "Password")
'if the password was provided
If (Trim(strPassword) <> "") Then
‘ اعمل قاعدة بيانات مشفرة
Set dbs = wspDefault.CreateDatabase(strDBName, _
dbLangArabic & ";pwd=" & strPassword, dbEncrypt)
Else
‘ اعمل قاعدة بيانات غير مشفرة
Set dbs = wspDefault.CreateDatabase(strFileName, _
dbLangArabic, dbEncrypt)
End If
End Function
====================
بناء جدول الطالب
كود:
Function fnCreateTableStudent() As Boolean
‘اسم الجدول
Set tdf = dbs.CreateTableDef("الطالب")
‘ للاستخدام في عمل المفتاح
Dim idx As DAO.Index
‘للاستخدام لعمل الحقول
Dim fldIndex As DAO.Field
With tdf
' Create fields and append them to the new TableDef
' object. This must be done before appending the
' TableDef object to the TableDefs collection of the
' new database
‘ رقم الطالب
.Fields.Append .CreateField("الرقم", dbLong)
' Modify this field's option to be auto incremented
.Fields("الرقم").Attributes = .Fields("الرقم").Attributes + dbAutoIncrField
‘ اسم الطالب
.Fields.Append .CreateField("الاسم", dbText, 40)
' ‘العمر
.Fields.Append .CreateField("العمر", dbLong)
' الطلعة البهية للطالب
.Fields.Append .CreateField("الصورة", dbLongBinary)
Set idx = .CreateIndex("QnCatID")
End With
' Create the index field
Set fldIndex = idx.CreateField("الرقم", dbLong)
' اجعله المفتاح
idx.Primary = True
idx.Unique = True
' اضفه للمؤشر
idx.Fields.Append fldIndex
tdf.Indexes.Append idx
' أضفه للجدول.
dbs.TableDefs.Append tdf
'حدث قاعدة البييانات.
dbs.TableDefs.Refresh
fnCreateTableStudent = True
End Function
وذلك هو كل شيئ في بناء قاعدة البيانات
*********************************
صاحب الدرس:
اخوكم غازي ال وادي
مع تحياتى
منقول