اذهب الي المحتوي
أوفيسنا

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


mostafaatiya

الردود الموصى بها

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

بالملف المرفق كود من صنع الاخت زهرة 

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

ولكن حين قمت بنسخ الكود واستخدامة في اكسس2010 للاسف لا يعمل 

محتاج تعدل بسيط علي الكود حتي يصلح العمل عليه في حاله اكسس 2010 او اكسس 2003

وكود اقوم بالضغط عليه يقوم بحذف جداول اقوم بتحديد اسمها 

وجزاكم الله خيرا 

الملف بالمرفقات

 

استيراد جدول.rar

رابط هذا التعليق
شارك

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

غالبا المشكلة في كود فتح الملف

ويمكن استبدال الكود بالتالي

Dim fpathz As Variant
With Application.FileDialog(3)
    .Title = "Choose File"
    .Filters.Clear
      .Filters.Clear
      .Filters.Add "All Files", "*.*"
      .Filters.Add "jAccess Files", "*.mdb"
      .Filters.Add "Access Files", "*.Accdb"
    .AllowMultiSelect = False
    .InitialFileName = ""
    
 If .Show = -1 Then
    fpathz = .SelectedItems(1)
    Me.txtPath = fpathz
 End If
End With

استيراد جدول.rar

تحياتي

  • Like 1
رابط هذا التعليق
شارك

شكرا جدا لحضرتك الاخ محمد ابو عبدالله 

لكن عند نقل الكود للقاعدة الخاص بي تظهر هذه المشكله والكود لا يعمل 

وغير ذلك الكود يقوم بسحب جميع الجداول وانا احتاج سحب جداول محدده فقط واذا تم حذف جداول يتم حذف جداول محدده فقط 

وجزاك الله خيرا

20002000.jpg

رابط هذا التعليق
شارك

24 دقائق مضت, د.كاف يار said:

استبدل السطر كامل بالتالي

Dim BackObj As DAO.TableDef, BackDB As DAO.Database

 

شكرا دكتور كاف يار بارك الله فيك 

الكود يعمل بنجاح

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

يعني مثلا عندي 10 جداول انا محتاج اجيب اسحب 3 جداول فقط وليس جميع الجداول

وشكرا لحضرتك

رابط هذا التعليق
شارك

تفضل هذا التعديل و اضف الجداول التي تحتاجها

Dim strPath As String
strPath = Me.txtPath
Dim FrontObj As AccessObject, FrontDB As Object
Set FrontDB = Application.CurrentData
For Each FrontObj In FrontDB.AllTables
	If Left(FrontObj.Name, 4) <> "MSys" And FrontObj.Name <> "ccc" And FrontObj.Name <> "eee" Then
		DoCmd.DeleteObject acTable, FrontObj.Name
	End If
Next FrontObj

Dim BackObj As DAO.TableDef, BackDB As DAO.Database
Set BackDB = DBEngine.Workspaces(0).OpenDatabase(strPath, True, False)
For Each BackObj In BackDB.TableDefs
    If Left(BackObj.Name, 4) <> "MSys" And BackObj.Name <> "ccc" And BackObj.Name <> "eee" Then
        If BackObj.Name = "الجدول الأول" _
        Or BackObj.Name = "الجدول الثاني" _
        Or BackObj.Name = "الجدول الثالث" _
        Or BackObj.Name = "الجدول الرابع" Then
            DoCmd.TransferDatabase acImport, "Microsoft Access", strPath, acTable, BackObj.Name, BackObj.Name
        End If
    End If
Next BackObj

Set FrontDB = Nothing
Set BackDB = Nothing

 

تم تعديل بواسطه د.كاف يار
  • Like 2
رابط هذا التعليق
شارك

شكرا دكتور كاف يار بارك الله فيك 

الكود يعمل بنجاح ولكن 

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

انا عندي 100 قاعدة بيانات بمختلف الاماكن وانا بجمع جميع البيانات دي 

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

انا محتاج اعمل استيراد للجداول اللي هحددها زي ما حضرتك تكرمت وعدلت الكود تمام لكن محتاج اني لما اعمل استيراد ميمسحش جميع الجداول 

انا محتاج يمسح الجداول اللي انا محددها فقط 

مثال بسيط 

هعمل استيراد لــ 3 جداول فقط عايز لما اعمل استيراد تاني من قاعدة بيانات اخري يوم بحذف الــ 3 جداول اللي انا عملتلهم استيراد قبل كده وليس جميع الجداول

وشكرا لحضرتك

رابط هذا التعليق
شارك

تفضل هذا التعديل

On Error Resume Next
Dim strPath As String
strPath = Me.txtPath
Dim FrontObj As AccessObject, FrontDB As Object
Set FrontDB = Application.CurrentData
For Each FrontObj In FrontDB.AllTables
	If Left(FrontObj.Name, 4) <> "MSys" And FrontObj.Name <> "ccc" And FrontObj.Name <> "eee" Then
		DoCmd.DeleteObject acTable, FrontObj.Name
	End If
Next FrontObj

Dim BackObj As TableDef, BackDB As Database
Set BackDB = DBEngine.Workspaces(0).OpenDatabase(strPath, True, False)
For Each BackObj In BackDB.TableDefs
    If Left(BackObj.Name, 4) <> "MSys" And BackObj.Name <> "ccc" And BackObj.Name <> "eee" Then
        If BackObj.Name = "aaa" _
        Or BackObj.Name = "bbb" _
        Or BackObj.Name = "ccc" Then
            DoCmd.RunSQL "DROP TABLE [" & BackObj.Name & "]"
            DoCmd.TransferDatabase acImport, "Microsoft Access", strPath, acTable, BackObj.Name, BackObj.Name
        End If
    End If
Next BackObj

Set FrontDB = Nothing
Set BackDB = Nothing

 

  • Like 1
رابط هذا التعليق
شارك

11 دقائق مضت, مصطفى الفيومى said:

هعمل استيراد لــ 3 جداول فقط عايز لما اعمل استيراد تاني من قاعدة بيانات اخري يوم بحذف الــ 3 جداول اللي انا عملتلهم استيراد قبل كده وليس جميع الجداول

 

الواضح انك ما استخدمت التعديل 

التعديل يقوم بالمهمة التي تريدها

رابط هذا التعليق
شارك

شكرا لمتابعتك وتعب حضرتك معايا 

وجعله الله في ميزان حسناتك 

انا قمت بالفعل بالتجربة ولكن بقيت المشكلة كما هيا 

قمت بعمل مثال بسيط لتوضح الفكرة 

في الشاشة الرئيسية يوجد جداول باسم 

TB_JOP 

TB_SCH

TB_STU

TB_STU1

TB_STU2

TB_STU3

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

محتاج اعمل استيراد للجداول الموجوده وتحمل اسم 

TB1

TB2

 

محتاج لما اعمل استيراد تم حذف الجدول TB1 وجدول TB2 فقط

وتبقي باقي الجداول 

TB_JOP 

TB_SCH

TB_STU

TB_STU1

TB_STU2

TB_STU3

ولا يتم حذفها ولكن يتم حذف TB1 وجدول TB2 فقط في حين الاستيراد مرة اخري 

واسف علي تعب حضرتك معايا واتمني تكون الفكرة وصلت

 

استيراد.rar

رابط هذا التعليق
شارك

بارك الله فيك اخ ناقل بالفعل هذا ما اريده 

واتوجه بالشكر والتقدير لاستاذي د كاف يار علي تعبه ومتابعه للوصول لحل امثل 

واشكر الاخ الفاضل ابو محمد عبدالله علي متابعه للموضوع 

جزاكم الله خيرا وجعله الله في ميزان حسناتكم 

بارك الله فيكم اجمعيا

رابط هذا التعليق
شارك

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

احترامى

 

رابط هذا التعليق
شارك

27 دقائق مضت, abouelhassan said:

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

احترامى

 

تفضل ....... ابا الحسن ...

 

استيراد_ناقل.accdb

  • Like 2
رابط هذا التعليق
شارك

بارك الله فيك استاذنا الكريم ناقل

سؤال الله يخليك 

هل لو لدى قاعدتين متماثلتين بس تم تغير اكواد فى احدهم واريد ان استورد البيانات اليها من الاخرى

هل هذه الطريقة امنة لاستيراد البيانات ام سيتأثر العلاقات 

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

  •  
تم تعديل بواسطه abouelhassan
رابط هذا التعليق
شارك

1 ساعه مضت, abouelhassan said:

بارك الله فيك استاذنا الكريم ناقل

سؤال الله يخليك 

هل لو لدى قاعدتين متماثلتين بس تم تغير اكواد فى احدهم واريد ان استورد البيانات اليها من الاخرى

هل هذه الطريقة امنة لاستيراد البيانات ام سيتأثر العلاقات 

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

  •  

للاسف هذه الطريقة لا تستورد العلاقات

انت تحتاج طريقة استيراد نسخة احتياطية ... حتى تتم استيراد الجداول مع العلاقات 

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

  • Like 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information