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

معرفة جداول قاعدة معينة وحقول هذه الجداول ونوع هذه الحقول بالكود

بدأه mas123 في 13 يناير 2010 · 6 رد · 966 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

كل عام أنتم جميعا بخير

وفقنا الله وإياكم لكل ما يحبه ويرضاه

وعذرا لانقطاعي عنكم أحبابي وإخواني وأخواتي

واليوم جاءت في ذهني فكرة تعتمد على تصميم برنامج يحول بين قواعد البيانات المختلفة

وخاصة لمبرمجي المواقع بين access و mysql

ولكني احتجت نظرا لفقدي لمحتويات الهارد ديسك الخاص بي إلى أكواد تساعدني في التعرف على:

جداول قاعدة بيانات معينة

حقول كل جدول من هذه الجداول

نوع كل حقل في كل جدول

وإن شاء الله ليست ببعيدة على عباقرة الفريق العربي

وإن شاء الله أنتم أول من سيجني ثمار هذا البرنامج بعد تصميمه

أخوكم

أبو عبد الله

محمد صالح

تم تعديل هذه المشاركة بواسطة mas123 في 13 يناير 2010 في 15:42

التغير هو القانون الدائم للحياة.ودوام الحال من المحال

فلماذا لا نتغير بإرادتنا إلى ما نريد؟ قبل أن تغيرنا الحياة مجبرين إلى ما لا نريد؟

موقعي

#2

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

الجزء المهم هو في الإجرائين: GetTables وGetFields، والباقي من أجل معالجة القوائم واختيار قاعدة البيانات. هذا هو سرد لهذين الإجرائين:

Dim dbs As DAO.Database
Dim tbl As DAO.TableDef
Dim fld As DAO.Field

Private Sub GetTables()
    On Error GoTo Err_Handler

    Call ResetLists
    For Each tbl In dbs.TableDefs
        With lstTables
            If tbl.Attributes = 0 Then
                .AddItem tbl.Name & ";" & tbl.DateCreated & ";" & tbl.LastUpdated & ";" & tbl.RecordCount
            End If
        End With
    Next tbl

Exit_Sub:
    Exit Sub

Err_Handler:
    MsgBox Err.Number & ": " & Err.Description
    Resume Exit_Sub
End Sub

Private Sub GetFields()
    On Error GoTo Err_Handler

    Set tbl = dbs.TableDefs(lstTables.Column(0, lstTables.ListIndex + 1))
    With lstFields
        .RowSource = ""
        .AddItem "ÇÓã ÇáÍÞá;äæÚ ÇáÈíÇäÇÊ;ÇáÍÌã (ÍÑÝ/ÈÇíÊ);ÊÑÞíã ÊáÞÇÆí¿;ãØáæÈ¿"
        For Each fld In tbl.Fields
            .AddItem fld.Name & ";" & GetType(fld.Type) & ";" & fld.Size & ";" & _
                     IIf(fld.Attributes And dbAutoIncrField, "نعم", "") & ";" & IIf(fld.Required, "نعم", "")
        Next fld
    End With

Exit_Sub:
    Exit Sub

Err_Handler:
    MsgBox Err.Number & ": " & Err.Description
    Resume Exit_Sub
End Sub

أرجو الاطلاع على الملف المرفق، ففيه الصورة الكاملة...

والله أعلم.

TableExplorer.rar

#3

شكرا لك أستاذي الغالي أحمد مبارك الحيقي وجزاك الله كل خير على هذا المثال الجميل ..

أخي محمد صالح تابع هذا الرابط لمشاركة للاخ هاني عوض عسى أن يفيدك بشئ في ما تبحث عنه...

/index.php?showtopic=174883

مع تحياتي ...

تم تعديل هذه المشاركة بواسطة moh samer ali في 13 يناير 2010 في 21:00

27169617.gif
#4

شكرا لك أخي أحمد

وسعيد بالرابط المرسل من أخي moh samer ali

وبفضل الله تم التوصل لكود بسيط جدا لذلك الغرض من خلال البحث

Public Sub GetTableInfo()
   Dim db As Database, tbl As TableDef, fld As Field
   Set db = CurrentDb
   Debug.Print "            ", db.Name
   Debug.Print "      "
   Debug.Print "Table         Created          Modified              # Recs"
   Debug.Print "-----         -------          --------              ------"
   For Each tbl In db.TableDefs
     If Left$(tbl.Name, 4) <> "MSys" Then
       Debug.Print tbl.Name & "      " & tbl.DateCreated & "      " & _
        tbl.LastUpdated & "     " & tbl.RecordCount
       ' optional code to print all the fields
For Each fld In tbl.Fields
   Debug.Print fld.Name
Next fld
     End If
   Next tbl
End Sub

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

وهي معرفة خصائص الحقل المفتاح الرئيسي primary key

فكيف يتم من خلال الكود معرفة أي حقل من حقول الجدول هو مفتاح رئيسي؟

التغير هو القانون الدائم للحياة.ودوام الحال من المحال

فلماذا لا نتغير بإرادتنا إلى ما نريد؟ قبل أن تغيرنا الحياة مجبرين إلى ما لا نريد؟

موقعي

#5

الحمد لله

تم التوصل لها

هذه الدالة تخبر باسم الحقل الذي هو مفتاح اساسي في الجدول

Public Function mdbdIsPK(tdf As DAO.TableDef) As String
    Dim idx As Index
    For Each fld In tdf.Fields
    For Each idx In tdf.Indexes
        If InStr(idx.Fields, fld.Name) Then
            If idx.Primary = True Then
            mdbdIsPK = "PRIMARY KEY  (`" & fld.Name & "`)"
            Exit Function
            End If
        End If
    Next idx
    Next fld
End Function

تبقى شيء يسير جدا

وهو مقارنة أنواع البيانات بين الأكسس و mysql

وجاري البحث فيها

1

التغير هو القانون الدائم للحياة.ودوام الحال من المحال

فلماذا لا نتغير بإرادتنا إلى ما نريد؟ قبل أن تغيرنا الحياة مجبرين إلى ما لا نريد؟

موقعي

#6

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

ما شاء الله عليك استاذي وخبيرنا احمد مبارك

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

هههههههههههه تدري بسبب هذي البرنامج اكتشفت انه اسم احد الحقول الجدول في البرنامج خطاء ههههههههههههههه

#7

فعلا كود مفيد جدا

اشكرك كثيرا

شكر خالص ليس فيه اي طلبات اضافية.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…