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

كود تصدير جدول في الاكسس الى اكسل


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

السلام عليكم 

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

وشكرا

 

test 15.rar

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

السلام عليكم 

شكرا الى الاساتذه الكرام على الاجابة

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

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

او اي كود يلبي طلبي وشكرا 

DoCmd.OutputTo acOutputTable, "Data", acViewPreview

 

4444.JPG

5555.jpg

test 15.rar

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

في ١‏/١٠‏/٢٠١٨ at 21:59, النهر العطشان said:

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

اتفضل تم عمل هذا
2018-10-03_17-49-18.png.5f5f58be234c7f5ccd18c014efdb79b8.png

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

وهذا هو مصدره

SELECT msysObjects.Name FROM msysObjects WHERE (((msysObjects.Type)=1) AND ((Left([Name],2)) Not In ("~s","ms","f_"))); 

والكومبوبوكس الثاني هو اسماء الحقول تابع الجدول المختارة في كومبوبوكس الاول
وهناك زر اخر عند انتهاء من الاختيار الحقول المطلوبة تضغطه لكي يكمل جملة الاستعلام
وهناك زر اخر لكي تعمل استعلام
وهناك زر اخر لتصدر الى اكسل

واستخدمت هذه الاكواد لعمل ذلك

Private Sub ChooseField_AfterUpdate()
    If Not IsNull(Me.ChooseField) = True Then
        If Len(Me.TxtForQuery & vbNullString) > 6 Then
            Me.TxtForQuery = Me.TxtForQuery & " " & "," & Me.ChooseTble & "."
            Me.TxtForQuery = Me.TxtForQuery & Me.ChooseField
            Else
            Me.TxtForQuery = Me.TxtForQuery & " " & Me.ChooseTble & "." & Me.ChooseField
        End If
            Me.EndForQuery.Enabled = True
    End If
End Sub

Private Sub ChooseTble_AfterUpdate()
    If Not IsNull(Me.ChooseTble) = True Then
        Me.ChooseField.RowSource = Me.ChooseTble
    End If
    Me.ChooseField = Null
    Me.TxtForQuery = "Select"
End Sub

Private Sub CreateQuery_Click()
On Error Resume Next
    DoCmd.DeleteObject acQuery, "QForExport"
    Set QFEx = CurrentDb.CreateQueryDef("QForExport", Me.TxtForQuery)
 '   DoCmd.OpenQuery QFEx.Name
    Me.ExportTo.Enabled = True
    Me.CreateQuery.Enabled = False
End Sub

Private Sub EndForQuery_Click()
    Me.TxtForQuery = Me.TxtForQuery & " From " & Me.ChooseTble
    Me.EndForQuery.Enabled = False
    Me.CreateQuery.Enabled = True
End Sub

Private Sub ExportTo_Click()
    DoCmd.OutputTo acOutputQuery, "QForExport", acViewPreview
    On Error Resume Next
    DoCmd.DeleteObject acQuery, "QForExport"
    MsgBox "تم تصدير بالنجاح"
End Sub

 

اليك القاعدة بعد تعديل

 

test 15.rar

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

شكرا استاذ Shivan Rekany على اجابتك

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

وشكرا

 

657.JPG

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

3 دقائق مضت, النهر العطشان said:

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

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

 

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

استاذي الفاضل

نفس النتيجة على الرغم لا اعرف قصدك (ضغطت على الزر ثلاث اي تم كتابة From ثلاث مرات)

حيث اخترت من الكومبوبوكس الاول الجدول ومن الكومبوبوكس الثاني الحقول وعند الضغط على زر انتهاء التحديد تظهر لي هذه الرسالة .

 

 

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

10 دقائق مضت, النهر العطشان said:

حيث اخترت من الكومبوبوكس الاول الجدول ومن الكومبوبوكس الثاني الحقول وعند الضغط على زر انتهاء التحديد تظهر لي هذه الرسالة .

لكن عندي لا يظهر ذلك الرسالة شوف الفيديو
2018-10-03_19-01-45.rar
تم اضافة كود استمرار وعدم توقف عند الاخطاء 
جرب لعله يستفيد
واذا ليس هناك استفادة احذف السطرين التاليتين
 

    Me.EndForQuery.Enabled = False
    Me.CreateQuery.Enabled = True

test 15.rar

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

استاذي الفاضل

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

Private Sub EndForQuery_Click()
    Me.TxtForQuery = Me.TxtForQuery & " From " & Me.ChooseTble
    Me.EndForQuery.Enabled = False
    Me.CreateQuery.Enabled = True
End Sub

المؤشر باللون الاحمر من (False) الى (True)

 

 

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

1 دقيقه مضت, النهر العطشان said:

المؤشر باللون الاحمر من (False) الى (True)

المسالة كان عدم قدرة عمل تغيير خاصية انبل للزر انتهاء التحديد لانه هو اكتيف حاليا لكن لا يظهر معي ذلك الرسالة شوف الفيديو
وذلك السطر كتبت لكي لا نضغطه اكثر من مرة
وكل شي تمام

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

استاذي الفاضل Shivan Rekany المحترم

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

هل لي بطلبين ضمن السؤال .

1- هل لي عندما اختار في الكومبوبوكس الثاني الحقل لا استطيع اختياره مره ثانيه كان يصبح باهت بعد اختياره .

2- هل يمكن عمل كود واحد تحت حدث زر عند الضغط عليه يقوم بكل هذا ويتم تحديد الحقول من الكود نفسه .

وشكرا

 

 

 

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

14 دقائق مضت, Shivan Rekany said:

لكن عندي لا يظهر ذلك الرسالة شوف الفيديو
2018-10-03_19-01-45.rar
تم اضافة كود استمرار وعدم توقف عند الاخطاء 
جرب لعله يستفيد
واذا ليس هناك استفادة احذف السطرين التاليتين
 


    Me.EndForQuery.Enabled = False
    Me.CreateQuery.Enabled = True

test 15.rar

كلام اخي Shivan Rekany

سليم ميه في الميه

انا جربته مافي اي رساله

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

2 دقائق مضت, ابو ياسين المشولي said:

كلام اخي Shivan Rekany

سليم ميه في الميه

انا جربته مافي اي رساله

عفوا الى الاساتذه الكرام

الملف الاول لايعمل وجربته اكثر من مره

لكن الملف الثاني تم تجربته وهو يعمل بنجاح

شكرا 

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

استاذي الفاضل Shivan Rekany المحترم

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

هل لي بطلبين ضمن السؤال .

1- هل لي عندما اختار في الكومبوبوكس الثاني الحقل لا استطيع اختياره مره ثانيه كان يصبح باهت بعد اختياره .

2- هل يمكن عمل كود واحد تحت حدث زر عند الضغط عليه يقوم بكل هذا ويتم تحديد الحقول من الكود نفسه .

وشكرا

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

منذ ساعه, النهر العطشان said:

عفوا الى الاساتذه الكرام

الملف الاول لايعمل وجربته اكثر من مره

لكن الملف الثاني تم تجربته وهو يعمل بنجاح

ليس من المهم اي قاعدة تشتغل عندك المهم توصل للحل كما حضرتك تريد 
عندي بيشتغل كلا القاعين وبدون اي مشاكل

53 دقائق مضت, النهر العطشان said:

هل لي بطلبين ضمن السؤال .

1- هل لي عندما اختار في الكومبوبوكس الثاني الحقل لا استطيع اختياره مره ثانيه كان يصبح باهت بعد اختياره .

2- هل يمكن عمل كود واحد تحت حدث زر عند الضغط عليه يقوم بكل هذا ويتم تحديد الحقول من الكود نفسه .

وشكرا


اتفضل 
تم استخدام هذه الاكواد
 

Private Sub ChooseField_AfterUpdate()
    If Not IsNull(Me.ChooseField) = True Then
        If Len(Me.TxtForQuery & vbNullString) > 6 Then
            Me.TxtForQuery = Me.TxtForQuery & " " & "," & Me.ChooseTble & "."
            Me.TxtForQuery = Me.TxtForQuery & Me.ChooseField
            Else
            Me.TxtForQuery = Me.TxtForQuery & " " & Me.ChooseTble & "." & Me.ChooseField
        End If
            Me.EndForQuery.Enabled = True
    End If
    Me.ChooseField.RemoveItem (Me.ChooseField)
End Sub

Private Sub ChooseTble_AfterUpdate()
    Set db = CurrentDb
    Set Td = db.TableDefs(Me.ChooseTble)
        Me.ChooseField.RowSource = ""
        Me.ChooseField.AddItem ("اسماء الحقول")
    For Each fld In Td.Fields
        If fld.Type = 4 And fld.Attributes = 17 Then
            Me.ChooseField.AddItem (fld.Name)
        Else
            Me.ChooseField.AddItem (fld.Name)
        End If
    Next
End Sub

Private Sub EndForQuery_Click()
On Error Resume Next
    Dim CountStrTbl As Integer
    CountStrTbl = Len(Me.ChooseTble)
    Me.ExportTo.Enabled = True
    If Left(Me.TxtForQuery, CountStrTbl) = Me.ChooseTble Then Exit Sub
    Me.TxtForQuery = Me.TxtForQuery & " From " & Me.ChooseTble
    Me.EndForQuery.Enabled = False
End Sub

Private Sub ExportTo_Click()
On Error Resume Next
    DoCmd.DeleteObject acQuery, "QForExport"
    Set QFEx = CurrentDb.CreateQueryDef("QForExport", Me.TxtForQuery)
    DoCmd.OutputTo acOutputQuery, "QForExport", acViewPreview
    DoCmd.DeleteObject acQuery, "QForExport"
    MsgBox "تم تصدير بالنجاح"
End Sub

 

test 15 - Copy.rar

تم تعديل بواسطه Shivan Rekany
  • Like 1
  • Thanks 1
رابط هذا التعليق
شارك

شكرا استاذي الفاضل Shivan Rekany المحترم جعلها الله في ميزان حستاتك

لقد تم تجربة البرنامج وهو يعمل بصورة جيده لكن هل ممكن تنفيذ الشطر الثاني ام لا .

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

وشكرا .

 

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

44 دقائق مضت, النهر العطشان said:

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

اذا الحقول محددة كل مرة اعمل استعلام بالحقول المطلوبة واحفظه باسم QForExport

واستخدم هذا السطر من الكود فقط
 

DoCmd.OutputTo acOutputQuery, "QForExport", acViewPreview

 

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

7 دقائق مضت, ابو عارف said:

وحبيت اضافة بسيطه الا وهو تحديد و تصدير اكثر من حقل في وقت واحد

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

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

شكرا الى الاساتذة الكرام على ابداعاتكم جعلها الله في ميزان حسناتكم .

اسف على اطالتي عليكم لكن سعة صدوركم وافهم ان لكم رسالة نذرتم انفسكم في ايصالها للجميع .

مما يجعلني اطلب .

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

الكود يكون مثل الكود اعلاه 

DoCmd.OutputTo acOutputQuery, "QForExport", acViewPreview

لكن يحتوي على الحقول الثلاثة باسمائها .

وشكرا

 

 

 

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

18 دقائق مضت, النهر العطشان said:

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

قبل الان انا رديت عليك هكذا

1 ساعه مضت, Shivan Rekany said:

اذا الحقول محددة كل مرة اعمل استعلام بالحقول المطلوبة واحفظه باسم QForExport

واستخدم هذا السطر من الكود فقط
 


DoCmd.OutputTo acOutputQuery, "QForExport", acViewPreview

والان عملت لك هذا
 

test 15 (1).rar

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

شكرا الى الاستاذ Shivan Rekany على سعة صدره 

والى الاساتذة الكرام الاستاذ ابو ياسين المشولي والاستاذ ابو عارف المحترمون .

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

وهو المطلوب وشكرا

 

 

 

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

  • 3 months later...

عمل رائع يشكر علية الاستاذ @Shivan Rekany وكذلك الاستاذ @ابو عارف

أطلعت على الملف ولي ملاحظات علية

يتم عرض جميع الجداول في القائمة المنسدلة  وهذا خطاء فليس من المعقول ذلك .. فهناك جداول بالمفروض أن يتم أخفائها لا يرغب المبرمج في عرضها للمستخدم

لذلك ارجو منكم تطوير الملف على النحو التالي:

1- تحديد الجداول المراد عرضها في الكود

2- يتم عرض في القائمة أسماء غير اسماء الجداول الحقيقية كمثال باللغة العربيه كالتالي: 

اسم الجدول Sand_T يتم عرضة بالقائمة " الاسناد "

ItemsT = "الاصناف"

ItemsABT = "أنواع الاصناف"

InvoiceHT = "الفواتير"

والجداول التي لا يرغب بعرضها مثال: USERS و ItemsNumbers و colors 

3- تفعيل خيار تحديد جميع الحقول 

مرفق الملف مع وجود ماذكر من جداول سابقاً 

Ex1.rar

 

 

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

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