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

تصدير واستيراد جدول


إذهب إلى أفضل إجابة Solved by jjafferr,

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

الأخوه الكرام / أعضاء المنتدى

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

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

المشكلة : في حالة تسجيل عنوان في خصائص الحقل بالجدول لا يمكن استيراد الجدول وإذا تم تفريغ العنوان في خصائص الحقل بالجدول يتم استيراده بسهولة .

المطلوب كيف يمكن التغلب على هذه المشكلة جزاكم الله خيرا مرفق لكم نموذج للقاعدة وبها عناوين في خصائص الحقول بالجدول وأخرى فارغة أرجو أن أكون وصلت المشكلة .

قاعدة بيانات ليس بها عناوين حقول في خصائص الحقول.rar

قاعدة بيانات بها عناوين حقول.rar

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

أخي الكريم / جعفر 

جزاكم الله خيرا وزادكم علما برنامج لائع ومفيد جدا 

ولكن أخي الكريم هل يمكنكم التعديل لمعرفة سبب عدم امكانية استيراد ملف اكسل إدا كان تم تصديره بعناوين (وليس أسماء) الحقل الموجود في خصائص الحقل

ومرة ثانية جزاكم الله خيرا

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

أخي اباعمرو  :smile:

 

انت مشكلتك في استيراد بيانات الاكسل ، مب في الاكسس  :smile:

انا اعطيك اسهل طريقة لاستيراد بياناتك من الاكسل الى للاكسس:

1. استعمل الكود التالي ، والذي سيستورد بيانات الاكسل الى جدول مؤقت اسمه Temp:

DoCmd.DeleteObject acTable, "Temp"
DoCmd.TransferSpreadsheet acImport, 8, "Temp", ImportFileName, True

2. اعمل استعلام الحاقي ليأخذ بيانات الجدول Temp الى جدولك "جدول تسجيل الكتب" ،

 

سر نجاح هذه الطريقة هي ، يا أخي خلي الاكسل يتدلل ويتدلع ، بس خليه يجيب البيانات ، وبعدين لما كل شئ عندنا في الاكسس ، نعرف كيف التعامل معاه  :yes:

 

 

جعفر

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

أخي اباعمرو  :smile:

 

2. اعمل استعلام الحاقي ليأخذ بيانات الجدول Temp الى جدولك "جدول تسجيل الكتب" ،

 

سر نجاح هذه الطريقة هي ، يا أخي خلي الاكسل يتدلل ويتدلع ، بس خليه يجيب البيانات ، وبعدين لما كل شئ عندنا في الاكسس ، نعرف كيف التعامل معاه  :yes:

 

جعفر

 

تحية  وشكر لك استاذنا جعفر

وهذا هو الذي انا اسير عليه في برامجي  حيث اضع جدولا وسيطا

وقد حاولت حل المسألة من وجهة نظر اخونا ابو عمرو وخرجت بنتيجة لعلها تكون مرضية  وهي كالتالي :

 

استبدال السطر الخاص بالتصدير والموجود في الوحدة النمطية العامة :

'DoCmd.OutputTo acOutputTable, "جدول تسجيل الكتب", acFormatXLS, CurrentProject.Path & "\MyBackup" & "\سجل الكتب.xls", true, ""

بهذا السطر :

DoCmd.TransferSpreadsheet acExport, 8, "جدول تسجيل الكتب", CurrentProject.Path & "\MyBackup" & "\سجل الكتب.xls", False, ""

وفي المثال تطبيق للمقال

 

exp@Emp.rar

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

أخي وأستاذي الكريم / جعفر ، وأبو خليل  السلام عليكما ورحمة الله

بارك الله فيكم وفي علمكم وزادكم علما وفتح الله عليكم من علمه 

لا أدري والله ما أقول لكم إلا كما علمنا رسول الله صلى الله عليه وسلم فيما معناه " من قدم لكم معروفا فكافئوه فإن لم تجدوا فإن لم تجدوا ما تكافئونه " فأنا لا أملك إلا أن أقول لكما جزاكما الله خيرا وزادكم علما ونفع بعلمكما المسملين . وأرجو أن تتذكرا والدي بدعوة في ظهر الغيب أن يرحمه الله رحمة واسعة ويدخله جنته

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

حياك الله اخوي اباعمرو  :smile:

ونعم الابن البار  :smile:

والله ان شاء الله يتغمد والدينا ووالديك الاحياء منهم والاموات بإحسانه ولطفه دنيا وآخرة ويحشرهم في زمرة المصطفى صلاوات ربي وسلامه عليه  :smile:

 

 

جعفر

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

أخي وأستاذي الكريم / جعفر ، وأبو خليل  السلام عليكما ورحمة الله

وكنت أتمنى أن تظهر التسمية التوضيحية للحقول الموجودة في خصائص الجدول في الاكسس تظهر في صفحة الاكسل بدلا من اسماء الحقول

ولكن حتى لا أكلف عليكم بأكثر من ذلك وجزاكم الله خيرا 

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

استاذي الكريم / جعفر 

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

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

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

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

 

أخي اباعمرو  :smile:

 

ضع هذا الكود على زر استيراد جدول (بدل الكود القديم)

Private Sub Command2_Click()
Dim ImportFileName As String

    ImportFileName = CurrentProject.Path & "\MyBackup\سجل الكتب" & ".xls"
    'DoCmd.TransferSpreadsheet acImport, 8, "جدول تسجيل الكتب", ImportFileName, True
    DoCmd.DeleteObject acTable, "Temp"
    DoCmd.TransferSpreadsheet acImport, 8, "Temp", ImportFileName, True


    Dim fld As Field
    Dim rst As DAO.Recordset
    
    Set rst = CurrentDb.OpenRecordset("Temp")
    mySQL = "INSERT INTO [جدول تسجيل الكتب] ( title, [اسم المؤلف], [مكان النشر], الناشر, ملاحظات ) Select"
        
    For Each fld In rst.Fields
        i = i + 1
        If i <> 1 Then
            mySQL = mySQL & " [" & fld.Name & "],"
        End If
    Next

    mySQL = Mid(mySQL, 1, Len(mySQL) - 1) & " From Temp"
    'Debug.Print mySQL
    
    CurrentDb.Execute (mySQL)
    

End Sub

جعفر

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

أستناذي الكريم / جعفر 

بعد وضع هذا الكود على زر استيراد الجدول ماذا عن الجدول  Temp والاستعلام الالحاقي أرجو التوضيح على المرفق التالي رحم الله والدايك ووالدي

مثال.rar

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

استاذي الكريم / سلام الله عليكم

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

post-116711-0-25458500-1426586695_thumb.

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

  • أفضل إجابة

آسف ، ما جربت البرنامج كفاية  :eek2:

 

الان تم تجربته بالكود التالي:


Private Sub Command2_Click()
On Error GoTo err_Command2_Click

    Dim ImportFileName As String

    ImportFileName = CurrentProject.Path & "\MyBackup\سجل الكتب" & ".xls"
    'DoCmd.TransferSpreadsheet acImport, 8, "جدول تسجيل الكتب", ImportFileName, True
    DoCmd.DeleteObject acTable, "Temp"
    DoCmd.TransferSpreadsheet acImport, 8, "Temp", ImportFileName, True


    Dim fld As Field
    Dim rst As DAO.Recordset
    
    Set rst = CurrentDb.OpenRecordset("Temp")
    mySQL = "INSERT INTO [جدول تسجيل الكتب] ( title, [اسم المؤلف], [مكان النشر], الناشر, ملاحظات ) Select"
        
    For Each fld In rst.Fields
        i = i + 1
        If i <> 1 Then
            mySQL = mySQL & " [" & fld.Name & "],"
        End If
    Next

    mySQL = Mid(mySQL, 1, Len(mySQL) - 1) & " From Temp"
    'Debug.Print mySQL
    
    CurrentDb.Execute (mySQL)
    
    DoCmd.DeleteObject acTable, "Temp"
    
    MsgBox "Done"
    
Exit Sub
err_Command2_Click:

    If Err.Number = 7874 Then
        'table Temp not found, ignore
        Resume Next
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If
    

End Sub

جعفر

جعفر

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

اخي الكريم / وضح لكم من ردي السابق ان المشكلة تم حلها ولكن أنا أتطفل عليكم أكثر لاخبركم بأن المشكلة ما زالت 

فالملف الذي يتم تصديره الى اكسل ما زال بعناوين أجنبية وكنت أريدها تظهر كما ذكرت لكم باللغة العربية فهل في استطاعتكم المساعدة 

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

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