25-04-17, 01:29 PM (آخر تعديل لهذه المشاركة : 25-04-17, 02:41 PM {2} بواسطة أبوسعود.)
السلام عليكم ورحمة الله وبركاته
لدي سؤال لو سمحتم
يمكننا انشاء جدول بقاعدة بيانات باستخدام الاداة Dao بالكود التالي:
With NewTable
(Fields.Append .CreateField("Id", dbLong)
Fields!ID.Required = True
(Fields.Append .CreateField("Name", dbText, 50)
Fields!NameEN.Required = True
لكن السؤال كيف يمكنني تعيين نوع البيانات ترقيم تلقائي للحقل ID بدلاً من كونه dbLong مع فائق الشكر والتقدير
الاخ ابو سعود السلام عليكم
عملت لك مثال لانشاء جدول في قاعدة البيانات فيه حقل id من النوع الترقيم التلقائي وكذلك يمكنك انشاء حقل ترقيم تلقائي في الجدول في حالة عدم وجوده اصلا في الجدول اتمنى ان يكون هو ما طلبته
26-04-17, 03:21 PM (آخر تعديل لهذه المشاركة : 26-04-17, 03:33 PM {2} بواسطة أبوسعود.)
مشكور جزيل الشكر صديقي السيد الغالي
لو سمحت ممكن تكتب شرح بجانب كل كود موجود إذا ما فيها عذاب لإلك
مشكور مرة أخرى على ما افدتني من معلومات
علماً بأنني انشأت قاعدة البيانات والجدول بالصيغة التالية:
Private Sub Command2_Click()
Dim cat As New ADOX.Catalog
Set DBobj = CreateDatabase(App.Path & "\Sony.mdb", dbLangArabic, dbEncrypt)
Set NewTable = DBobj.CreateTableDef("tb_Channal")
With NewTable
2- إضافة الحقول إلى الجدول
.Fields.Append .CreateField("Id", dbLong)
.Fields!ID.Required = True
.Fields.Append .CreateField("NameEN", dbText, 50)
.Fields!NameEN.Required = True
.Fields.Append .CreateField("Frequency", dbLong)
.Fields.Append .CreateField("VideoPID", dbLong)
.Fields.Append .CreateField("AudioPID", dbLong)
.Fields.Append .CreateField("PCRPID", dbLong)
3- إنشاء فهرس جديد وتعيينه كمفتاح رئيسي وإضافته إلى الجدول
Set NewIndex = .CreateIndex("PrimaryKey")
NewIndex.Fields.Append .CreateField("Id")
NewIndex.Primary = True
.Indexes.Append NewIndex
End With
4- حفظ الجدول في قاعدة البيانات
DBobj.TableDefs.Append NewTable
اخي ابو سعود السلام عليكم
في ما يخص طلبك الاول وضعت توضيح مبسط للاكواد التي ارى انها تحتاج الى توضيح اما بقية الاكواد فهي واضحة واذا كان لديك غموض في احد الاكواد فارجو ان تبينه لي حتى يتم شرحه . اما فيما يخص سؤالك الثاني فارى ان لا فرق مهم بين الطريقتين ما دام كلاهما يحقق المطلوب رغم اني استخدم هذه الطريقة غالبا في مثل هذه الحالات
Dim strCon As String
Dim DataFile As String
Dim cn As ADODB.Connection
Dim cat As New ADOX.Catalog ماالمقصود هنا بـcatalog
Dim NewTable As ADOX.Table
Dim Indx As ADOX.Index
Dim a
On Error GoTo TableErr
DataFile = App.Path + "\db1.mdb"
Set cn = New ADODB.Connection
strCon = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & DataFile & ";"
cn.Open strCon
Set cat.ActiveConnection = cn مالمقصود هنا
Set NewTable = New ADOX.Table
تحديد اسم الجدول في قاعدة البيانات ويجب ان يكون غير موجود أصلاً في قاعدة البيانات
a = InputBox("حدد اسم الجدول يجب ان يكون غير موجود في قاعدة البيانات")
NewTable.Name = a
'انشاء الحقول في الجدول
With NewTable.Columns
.Append "id", adInteger عدد صحيح طويل
.Append "EmployeeName", adVarWChar, 30 'نص
.Append "City", adVarWChar, 20 ''نص
.Append "Address", adVarWChar, 40 'نص
.Append "Phone", adVarWChar, 15 'äنص
With !id
Set .ParentCatalog = cat ما المقصود هنا
.Properties("Autoincrement") = True 'ترقيم تلقائي
End With
With !EmployeeName
Set .ParentCatalog = cat
.Properties("Nullable") = False ما المقصود هنا
.Properties("Jet OLEDB:Allow Zero Length") = False ما المقصود هنا
End With
End With
cat.Tables.Append NewTable 'حفظ الجدول
Set Indx = New ADOX.Index 'لانشاء مفتاح اساسي
Indx.Name = "PrimaryKey"
Indx.PrimaryKey = True
Indx.Columns.Append "id" ما المقصود هنا
NewTable.Indexes.Append Indx ما المقصود هنا
Set Indx = Nothing
Set NewTable = Nothing
Set cat = Nothing
Exit Sub
TableErr:
MsgBox "هذا الجدول موجود في قاعدة البيانات"
أخي الكريم اضفتلك جملة ما المقصود هنا بالكود الذي لم أفهمه يرجى الرد من قبلك
ولو تكرمت علي بكود إنشاء قاعدة بيانات بدون كلمة مرور وإنشاء قاعدة بيانات مع تمكين كلمة مرور
مشكور يا غالي
(26-04-17, 05:03 PM)أبوسعود كتب : Dim strCon As String
Dim DataFile As String
Dim cn As ADODB.Connection
Dim cat As New ADOX.Catalog ماالمقصود هنا بـcatalog
Dim NewTable As ADOX.Table
Dim Indx As ADOX.Index
Dim a
On Error GoTo TableErr
DataFile = App.Path + "\db1.mdb"
Set cn = New ADODB.Connection
strCon = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & DataFile & ";"
cn.Open strCon
Set cat.ActiveConnection = cn مالمقصود هنا
Set NewTable = New ADOX.Table
تحديد اسم الجدول في قاعدة البيانات ويجب ان يكون غير موجود أصلاً في قاعدة البيانات
a = InputBox("حدد اسم الجدول يجب ان يكون غير موجود في قاعدة البيانات")
NewTable.Name = a
'انشاء الحقول في الجدول
With NewTable.Columns
.Append "id", adInteger عدد صحيح طويل
.Append "EmployeeName", adVarWChar, 30 'نص
.Append "City", adVarWChar, 20 ''نص
.Append "Address", adVarWChar, 40 'نص
.Append "Phone", adVarWChar, 15 'äنص
With !id
Set .ParentCatalog = cat ما المقصود هنا
.Properties("Autoincrement") = True 'ترقيم تلقائي
End With
With !EmployeeName
Set .ParentCatalog = cat
.Properties("Nullable") = False ما المقصود هنا
.Properties("Jet OLEDB:Allow Zero Length") = False ما المقصود هنا
End With
End With
cat.Tables.Append NewTable 'حفظ الجدول
Set Indx = New ADOX.Index 'لانشاء مفتاح اساسي
Indx.Name = "PrimaryKey"
Indx.PrimaryKey = True
Indx.Columns.Append "id" ما المقصود هنا
NewTable.Indexes.Append Indx ما المقصود هنا
Set Indx = Nothing
Set NewTable = Nothing
Set cat = Nothing
Exit Sub
TableErr:
MsgBox "هذا الجدول موجود في قاعدة البيانات"
أخي الكريم اضفتلك جملة ما المقصود هنا بالكود الذي لم أفهمه يرجى الرد من قبلك
ولو تكرمت علي بكود إنشاء قاعدة بيانات بدون كلمة مرور وإنشاء قاعدة بيانات مع تمكين كلمة مرور
مشكور يا غالي
اخي العزيز ابو سعود السلام عليكم
فيما يخص تساؤلاتك اعلاه اطلع على الموضوع على الرابط http://arabteam2000-forum.com/index.php?...9%84-adox/
اما فيما يخص طلبك بانشاء قاعدة بيانات بكلمة مرور واخرى بدون كلمة مرور فستجدها في المرفقات