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

كيفية اضافة حقل جديد للجدول برمجيا

بدأه tamer_kh_5251 في 15 مايو 2011 · 8 رد · 1,207 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم جميعا

اريد ان اعرف لو كان هناك طريقة لاضافة حقل جديد في الجدول ( حقل وليس سجل ) برمجيا من خلال النموذج

#2

السلام عليكم

سنفترض أن قاعدة البيانات DB1

سنفترض أن الجدول MyTable

سنفترض الحقول المراد اضافتها Nu,Customer

حيث الحقل الرقمى Nu

حيث الحقل النصى Customer

        Dim T1 As TableDef

        Set T1= db1.TableDefs("MyTable")
        With T1
        .Fields.Append .CreateField("Nu", dbLong, 50)
        .Fields.Append .CreateField("Customer", dbText, 50)

        End With
#3

شكرا علي الافاده ولكن كل مرة تظهر رساله

Run-time error "424":

object repuired

ويظهر ظل اصفر علي الكود

Set T1 = db1.TableDefs("MyTable")

#4
tamer_kh_5251 كتب:

شكرا علي الافاده ولكن كل مرة تظهر رساله

Run-time error "424":

object repuired

ويظهر ظل اصفر علي الكود

Set T1 = db1.TableDefs("MyTable")

السلام عليكم

هل قمت بتعريف قاعدة البيانات DB1؟

مثل

Dim db1 As Database
Set db1 = OpenDatabase(App.Path & "\MyData.mdb")

حيث ان اسم قاعدة البيانات MyData.mdb

#5

اذا ممكن ارفاق مثال

#6

تفضل أخى

ضع هذا الاجراء فى وحدة نمطية أو فى النموذج

Public Sub addColumn(mytbl As String, fld As String, datatybe As Variant)

    On Error GoTo fldfound

    Dim curDatabase As Object
    Dim tblTest As Object
    Dim fldNew As Object

    Set curDatabase = CurrentDb
    Set tblTest = curDatabase.TableDefs(mytbl)

    Set fldNew = tblTest.CreateField(fld, datatybe)
    tblTest.Fields.Append fldNew
    Exit Sub

fldfound:
If Err.Number = 3191 Then MsgBox "هناك حقل بنفس الاسم بالجدول"

End Sub

و لاستدعائه استخدم هذا الكود اينما تريد

Call addColumn("tab", "customer", dbText)

حيث tab هو اسم الجدول

و customer هو اسم الحقل المطلوب اضافته

و dbText هو نوع البيانات للحقل

و هذه أنواع البيانات التى قد تحتاجها

'

dbBigInt     Big Integer
dbBinary     Binary
dbBoolean    Boolean
dbByte       Byte
dbCurrency   Currency
dbDate       Date / Time
dbDecimal    Decimal
dbDouble     Double
dbInteger    Integer
dbLong       Long
dbLongBinary Long Binary (OLE Object)
dbMemo       Memo
dbSingle     Single
dbText       Text

تم تعديل هذه المشاركة بواسطة Abo_Yossof في 5 يونيو 2011 في 08:39

4

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#7

بارك الله فيك أستاذنا أبو يوسف .. زادك الله علما

اللهم لك الحمد كما ينبغى لجلال وجهك وعظيم سلطانك .. لا إله إلا أنت سبحانك أنى كنت من الظالمين

#8

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

شكرا جزيلا على المعلومات

اريد ان اعرف كيف يمكن تحديد Field Size

وشكرا

#9

تم تعديل الكود ليمكن اضافة الحجم

Public Sub addColumn(mytbl As String, fld As String, datatybe As Variant, Optional dsize As Variant)

    On Error GoTo fldfound
    Dim curDatabase As Object
    Dim tblTest As Object
    Dim fldNew As Object

    Set curDatabase = CurrentDb
    Set tblTest = curDatabase.TableDefs(mytbl)
    If Len(dsize & "") > 0 And datatybe = dbText Then
        Set fldNew = tblTest.CreateField(fld, datatybe, dsize)
      Else
        Set fldNew = tblTest.CreateField(fld, datatybe)
    End If
    tblTest.Fields.Append fldNew
    Exit Sub

fldfound:
If Err.Number = 3191 Then MsgBox "هناك حقل بنفس الاسم بالجدول"

End Sub

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

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