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

عملية التحديث بدون فقد المعلومات

مغلق
بدأه ali1 في 30 أكتوبر 2003 · 17 رد · 1,506 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لما اقوم بتعديل في قاعدة البيانات ثم اعمل ملف MDE ويطلب منى اختيار المجلد واختار المجلد الدي يوجد فيه القاعدة القديمة ثم اضغط موافق على استبدال القديمة با الجديدة .

في هده الحالة افقد كل المعلومات الموجودة في القاعدة القديمة .

هل من طريقة للتحديث وبدون ان افقد المعلومات التي ادخلتها ؟

وشكرا لكم جميعا !!!!!!!

#2

أظن أني أجبتك لكن لا أدري أين ..

عموماً .. قسم القاعدة إلى قسمين :

1- قاعدة بها البيانات يعني الجداول فقط .

2- قاعدة بها الكائنات الأخرى

فالقاعدة الثانية هي التي تحدثها وتتحولها إلى MDE وأما الأولى فتبقى مخزن للبيانات فقط

وتحياتي

#3

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

ادا ممكن اخي العزيز ان توضح اكثر

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

وهل احول القاعدة التي بها البيانات الى ملف MDE

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

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

#4

لنفرض أن لدينا قاعدة لم يتم تقسيمها وكذلك لم يتم تحويلها إلى MDE أي أنها لا زالت MDB

من قائمة أدوات > أدوات مساعدة لقواعد البيانات > تقسيم قاعدة البيانات

تظهر لوحة وفيها اضغط زر تقسيم قاعدة البيانات الآن فيقوم معالج التقسيم بإنشاء قاعدة بيانات على نفس الإسم السابق إلا أنه يضيف إليها be_ في نهاية الاسم ويضع فيها الجدوال ويربطها بالجدوال التي في الواجهات

هذا كل ما في الأمر

ولك تحياتي

#5

شكرا للاخ العزيز المحترم احمد الحربي

لقد عملت مثل ما قلت والحمد لله ان المعلومات لم تنفقد وتكون موجودة في قاعدة البياناتbe التي يها الجدول.

ولكن لو سمحت هل في طريقة تخلي المعلومات موجودة في القاعدة MDE بعد التحديث

او ما هي اسهل طريقة الى استرجاع المعلومات من قاعدة البيانات be الى قاعدة البيانات mde .

#6

هي بربط الجداول بين القاعدتين

ومعالج التقسيم يفعل ذلك

#7

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

انا عملت في تقسيم قاعدة بيانات mde وصار عندى القاعدة التى تنتهي ب be و لكن لما اضيف سجلات جديدة في نمودج الواجهة ثم ابحث عنها في الجدول الي بقاعدة البيانات be لم اجد السجلات التي اضفتها .

تم تعديل هذه المشاركة بواسطة ali1 في 2 نوفمبر 2003 في 01:53

#8

سؤال / هل غيرت مسار القاعدة be

تأكد من خلال أدوات > أدوات مساعدة لقواعد البيانات > إدارة الجداول المرتبطة

تأكد من أن المسار إلى القاعدة صحيح

#9

شكرا لك

لقد عملت

tools ثم database utilitis ثم linked table manager وجاتني رسالة وهي :

there are no linked tables in the current database

طبعا كلهم في مجلد واحد , وحسب اعتقادي يكون الربط تلقائيا عندما اقسم القاعدة الاصلية وتتكون قاعدة be

#10

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

استاذي / احمد الحربي

تحية طيبة وأسأل الله لك التوفيق

وطريقتك سليمة والله يعطيك العافية

عزيزي هناك سؤال

س . هل يمكن التعديل في القاعدة الموجود فيها الجداول بعد عملية التقسيم وكيف يتم ذلك هل هو من الامامية او الخلفية الخاصة بالجداول

س2 . هل هناك كود يوضع في الرئيسية ( الامامية) ليقوم بربط الجداول بدلا من اختيارها من ادوات في الاكسس

ولك خالص تحياتي ولجميع الاعضاء

المعذرة على توجية السؤال الى الاستاذ احمد الحربي ولكن ذلك بسبب تواصلة في الموضوع

واتشرف بنيل الاجابة من اي شخص في المنتدى

#11

أخي الكريم / تلميذ ابو هاجر

س . هل يمكن التعديل في القاعدة الموجود فيها الجداول بعد عملية التقسيم وكيف يتم ذلك هل هو من الامامية او الخلفية الخاصة بالجداول

ج/ طبعاً بالتأكيد يمكنك التعدي فيما تشاء ولكن في القاعدة الخلفية .. جرب أن تحاول التعديل في تصميم الجدوال من القاعدة الأمامية ستظهر لك رسالة تخبرك بأن الجداول مرتبطة .

س2 . هل هناك كود يوضع في الرئيسية ( الامامية) ليقوم بربط الجداول بدلا من اختيارها من ادوات في الاكسس

ج/ نعم :

أنشأ نموذج غير منظم وضع فيه :

1- مربع نص ليحمل مسار القاعدة فيما بعد

2- زر استعراض لتحديد القاعدة وليكن باسم cmdBrwos

3- زر ارتباط بالقاعدة وليكن باسم PathDataBase

ضع في الوحدة النمطية الرئيسية للأكسس هذه الدالة :

Public Function TablesLink(DbPath As String)
 '  الارتباط بقاعدة بيانات 

On Error Resume Next
    Dim objCat As New ADOX.Catalog
    Dim objTbl As ADOX.Table
    Dim strFullName As String
          
    objCat.ActiveConnection = CurrentProject.Connection
            
    For Each objTbl In objCat.Tables
        If objTbl.Type = "LINK" Then
                 strFullName = DbPath
                 objTbl.Properties("Jet OLEDB:Link Datasource") = strFullName
        End If
    Next
    MsgBox "تم الربط بنجاح بالقاعدة " & Chr(13) & strFullName
End Function

ضع في قسم الإعلانات لهذا النموذج هذا الكود :

Private Type OPENFILENAME
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    lpstrFilter As String
    lpstrCustomFilter As String
    nMaxCustFilter As Long
    nFilterIndex As Long
    lpstrFile As String
    nMaxFile As Long
    lpstrFileTitle As String
    nMaxFileTitle As Long
    lpstrInitialDir As String
    lpstrTitle As String
    flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
End Type

Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

وضع في زر استعراض هذا الكود :

On Error Resume Next
'فت نافذة الملفات للارتباط بقاعدة محددة 

 Dim ofn As OPENFILENAME
    ofn.lStructSize = Len(ofn)
    'ofn.hwndOwner = Me.Hwnd
    'ofn.hInstance = App.hInstance
    ofn.lpstrFilter = "Mdb Files (*.mdb)" + Chr$(0) + "*.mdb" + Chr$(0) + "Mde Files (*.mde)" + Chr$(0) + "*.mde" + Chr$(0)
        ofn.lpstrFile = Space$(254)
        ofn.nMaxFile = 255
        ofn.lpstrFileTitle = Space$(254)
        ofn.nMaxFileTitle = 255
        ofn.lpstrInitialDir = CurDir
        ofn.lpstrTitle = " MT Software "
        ofn.flags = 0
        Dim a
        a = GetOpenFileName(ofn)
        If (a) Then
                Me!PathDataBase = Trim$(ofn.lpstrFile)
                'MsgBox "File to Open: " + Trim$(ofn.lpstrFile)
        Else
                MsgBox "لم تحدد مسار القاعدة "
        End If
    Exit Sub

CmdBrowseErrHandler:
MsgBox str(ERR.Number) + ERR.Description

وضع في زر ارتباط بالقاعدة هذا الكود :

On Error Resume Next
If IsNull(Me.PathDataBase) Then
    MsgBox "لم تستكمل الإدخالات"
    Exit Sub
End If
Call TablesLink(Me.PathDataBase)

تحياتي

تم تعديل هذه المشاركة بواسطة أحمد_الحربي في 12 نوفمبر 2003 في 23:55

#12

أسأل الله لك التوفيق وبارك الله فيك يا استاذي ومعلمي احمد الحربي

وجعل الله لك في كل خطوة سلامة

ونور الله بصرك وبصيرتك

والى الامام يا استاذنا الفاضل

#13

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

لقد قمت بتطبيق درسك يا استاذي الفاضل

ولكن الظاهر انني اخفقت نوعاً ما في استيعاب الدرس

سؤالي حفظك الله

01 هل لمربع النص الذي وضعته اسم ضروري

02 لقد عملت مثال وأمل التكرم بالاطلاع علية وتوجيهي بالخطاء الذي ارتكبتة في تنفيذ هذا المثال

مع العلم ان بعض المصطلحات لم اتعامل مع مثلها سابقاً

وهي 01 الوحدة النمطية الرئيسية للأكسس هذه الدالة

02 قسم الإعلانات لهذا النموذج

03 هل اضع كذلك الأكواد الخاصة بالازرار في حدث عند النقر

والمعذرة يا استاذي على الازعاج وشاكر ومقدر تعبك معنا

وأسال الله العلي العظيم ان يجزيك خير الجزاء

وهذا مثال بسيط على تطبيقي الخاطئ

سطح_المكتب.zip

تم تعديل هذه المشاركة بواسطة تلميذ ابو هاجر في 14 نوفمبر 2003 في 10:39

#14

حذفته لتكرره

تم تعديل هذه المشاركة بواسطة أحمد_الحربي في 15 نوفمبر 2003 في 07:22

#15

الحمد لله على سلامة الوصول

وحفظك الله من كل مكروه

تم تعديل هذه المشاركة بواسطة تلميذ ابو هاجر في 15 نوفمبر 2003 في 07:36

#16

آسف للتأخير أخي الكريم / تلميد أبو هاجر حيث كنت مسافراً

01 هل لمربع النص الذي وضعته اسم ضروري

ج/ نعم ليحتفظ لنا بمسار القاعدة الخلفية التي نرتبط بها .. لنتأكد من القاعدة التي نريد الارتباط بها .

01 الوحدة النمطية الرئيسية للأكسس هذه الدالة

ج/ هي في القائمة الرئيسية لآكسس ( الكائنات ) . وأنا قد أنشأت واحدة منها باسم (ارتباط)

02 قسم الإعلانات لهذا النموذج

ج/ كما تفضلت بعملها فقد عملتها أنت بشكل صحيح .. وموقع مقطع الإعلانات هو بعد هاتين العبارتين مباشرة وقبل أي أجراء أو دالة

Option Compare Database

Option Explicit

03 هل اضع كذلك الأكواد الخاصة بالازرار في حدث عند النقر

ج/ نعم

ملاحظة : لابد من إضافة مرجع ADOX في نافذة الكود ومن قائمة Tools ثم References ومن نافذتها نختار مرجع ADOX وهي

Microsft ADO Ext. 2.7 for DDL And Security

وإن لم تجدها بهذا الإسم بالضبط فستجدها باسم آخر وتعرف ذلك من خلال وجود كلمتي DDL و Security

هذه القاعدة بعد التعديل :

Link.zip

#17

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

تحياتي يا عزيزي

ولك مني خالص الشكر والتقدير

وانا والله اللي اقدم اعتذاري لازعاجك

ولا املك الا ان أسأل الله العلي العظيم ان يجزيك خير الجزاء

تم تعديل هذه المشاركة بواسطة تلميذ ابو هاجر في 15 نوفمبر 2003 في 07:40

#18

كلنا مساكين نتعلم يا عزيزي

وجزيت خيراً

هذا الموضوع مغلق.

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