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

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

قام بنشر

السلام عليكم

وجدت بالمنتدى هذا الموضوع لتصدير الاستعلامات إلى إكسيل

 

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

يعى مثلا الاستعلام ينتج 45 حقلا

أرغب فى تصدير الحقول من 19 : 45

و لكم جزيل الشكر

قام بنشر
7 ساعات مضت, عبد الفتاح كيرة said:

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

يعى مثلا الاستعلام ينتج 45 حقلا

أرغب فى تصدير الحقول من 19 : 45

السلام عليكم ورحمة الله وبركاته 
سلام خاص للغائبين :smile:
هناك احتمال ان يفيدك هذا الموضوع لاستاذنا @jjafferr

لان فیھا انت تختار الحقول الاستعلام ... ای تقدر بعد اختیار الحقول ان تصدیرھا الێ اکسل
والله يعلم

  • Like 1
  • Thanks 1
قام بنشر

للأسف ليس هذا هو المطلوب

المطلوب تصدير استعلام و ليس تقريرا إلى إكسيل

الوظيفة

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "staff_list_with_grouping", "C:\test\test.xlsx", True

فيها اختيار تحديد الحقول المراد تصديرها

لكن طريقة عمله ليست واضحة لدى

 

قام بنشر

السلام عليكم

الحل المؤقت و هو ليس سيئا

هو عمل استعلام من الاستعلام الأصلى

واختيار الحقول المطلوب إظهارها فقط

بعد ذلك يتم تصدير هذا الاستعلام الأخير

وشكرا لتعاونكم

قام بنشر

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

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

أرجو أن أوفق لإرضاء طموحك.. لأني أتساءل كيف ستقوم باستخدم الطريقة على مستوى المستخدم؟! هل ستسلمة بيانات مفتوحة المصدر؟! أم أن لديك طريقة ما تتيح للمستخدم  انتقاء حقول البيانات ومعالجنها ومن ثم تصديرها؟! على كل حال إليك الطريقة..

يمكن تصدير حقول مختارة من جدول أو استعلام عن طريق مزودات البيانات لأكسس (DAO,ADO)  عن طريق خصيصة توصيف البيانات لكل منهما..

هناك فروق بسيط بين المزودين لكن سوف أركز على (DAO) لكونة المزود الافتراضي لأكسس..

يمكن توصيف البيانات على مستوى قاعدة البيانات، كما يمكن توصيف البيانات على مستوى مصدر السجلات (Recordset).. صيغة الشفرة لهذه المكونات كالتالي

مكون (ِADO)

Function OLEDB() As ADODB.Connection
    Set OLEDB = New ADODB.Connection
    OLEDB.Open "Provider = Microsoft.ACE.OLEDB.12.0;Data Source =" & CurrentProject.Path & _
    "\EMPLOYEES.XLSX;Extended Properties = 'Excel 12.0;HDR=YES;'"
End Function

مكون (DAO)

Function XLDB() As DAO.Database
    DB_PATH = CurrentProject.Path & "\BOOK2"
    Set XLDB = OpenDatabase(DB_PATH, True, False, "EXCEL 12.0;HDR=YES;")
End Function

يكون مصدر البيانات  لهذين المكونيين هو ملف أكسل، فإذا كان ملف أكسل موجود مسبقا فإن المكون سيقوم بإدراج ورقة البيانات إلى الملف، أما إذا كان ملف أكسل غير موجود فسيقوم المكون بإنشاء الملف وإدراج ورقة البيانات..

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

ينطبق ما سبق على مكون مصدر السجلات (Recordset) وهذه صيغته

Sub EXPORT_TO_EXCEL_02(SHEET_NAME) '.. EXPORT TO EXCEL USING CURENTDB EXECUTE
    CurrentDb.Execute "SELECT ID, [LAST NAME],[FIRST NAME] INTO [" & SHEET_NAME & "]IN'" _
    & CurrentProject.Path & "\employees'[Excel 8.0;HDR=yes;] FROM EMP1"
End Sub

يمكن أيضا استخدام (DOCMD.RUNSQL) لكونها تعمد على (DAO) في مصدر البيانات وهذه صيغته

Sub EXPORT_TO_EXCEL_01(SHEET_NAME) '.. EXPORT TO EXCEL USING DOCMD RUNSQL
    DoCmd.RunSQL "SELECT ID, [LAST NAME],[FIRST NAME] INTO [" & SHEET_NAME & "]IN'" _
    & CurrentProject.Path & "\employees'[Excel 8.0;HDR=yes;] FROM EMP1"
End Sub

أرجو ملاحظة أن الأخيرين لهما نفس الصيغة في تعريف البيانات

 

الصيغة المخصصة لتوصيف بيانات أكسل هي

"EXCEL 8.0;HDR=YES;" 'تستخدم هذه الصيغة على مستوى قاعدة البيانات
[EXCEL 8.0;HDR=YES;] 'تستخدم هذه الصيغة على مستوى مصدر السجلات

الرقم في هذه الصيغة يمثل رقم إصدار نسخة الأوفس، وهو هنا للسخة 2003، وأنصح باستخدام هذه الرقم لتجنب وقوع خطأ عدم مطابقة النسخة عند تصدير البيانات...

 

طريقة تصدير البيانات تعتمد على صيغة استعلام عمل جدول (SELECT ... INTO.. IN.. [EXCEL 8.0;HDR=YES] FROM)  

..SELECT  تأخذ اسماء حقول البيانات

..INTO ينشئ جدول يحمل البيانات العائدة من SELECT .. الجدول هنا هو ورقة البيانات في أكسل

..IN تأخد اسم ملف أكسل مع الدليل

[EXCEL 8.0] ثوصيف مصدر البيانات المصدر إليها البيانات

FROM تأخذ اسم جدول البيانات في أكسس

 

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

Screenshot_1.png.abb08eb1412635d6d06981e3ff02de77.png

Access With Excel.zip

  • Like 6
  • Thanks 2
قام بنشر (معدل)
في ٨‏/١٢‏/٢٠١٧ at 10:43, عبد الفتاح كيرة said:

السلام عليكم

وجدت بالمنتدى هذا الموضوع لتصدير الاستعلامات إلى إكسيل

 

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

يعى مثلا الاستعلام ينتج 45 حقلا

أرغب فى تصدير الحقول من 19 : 45

و لكم جزيل الشكر

 

أشكرك جدا أستاذنا أبا إبراهيم

مائدة عامرة بالحلول

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

فالحقيقة أن المستخدم لن يختار حقولا

بل سيكون الاختيار جاهزا

ويتم تصدير الاستعلام جملة عن طريق زر أمر

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

مثلا الدرجة المالية تساوى 1 فى الجدول الرئيس

وهناك جدول يبين ما اسم الدرجة 1 وهو جدول مساعد به مسميات الدرجات

الدرجة 1 تساوى مسمى الدرجة الأولى

فى استعلام ندرى حقل الدرجة من الجدول الرئيسى و هى هنا الرقم 1

وباستخدام dlookup فى نفس الاستعلام نحصل على مسمى الدرجة النصى

وهو (الدرجة الأولى)

الحقل النص هو المراد تصديره والحقل الرقمى لا نريد تصديره لأنه غير مفهوم للجهة المرسل إليها التقرير

المشكلة أنه عند التصدير يصدر كل الحقول حتى حقول نعم/لا

ما أريده هو

اختيار أرقام أو أسماء الحقول المصدرة من داخل الكود

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

حقيقة

أول مرة أدرى أن

Insert into

تستخدم للتصدير إلى شيت  عوضا عن جدول

جارى التجربة

جزاك الله خيرا على ما تقدمه

وهل من الأسهل انتقاء الحقول فى استعلام يستخدم الاستعلام الأول لانتقاء الحقول و من ثم تصديره؟

وعن العودة للمنتدى

فدائما أعود للتعلم منكم و إثارة التساؤلات و المشكلات

وتلقى جواهر الحلول

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

تم تعديل بواسطه عبد الفتاح كيرة
قام بنشر (معدل)

الحمد لله

أخذ حاجتى من هذه الحلول الرائعة

بهذا الكود

مع تعديل اسم الشيت كل مرة

Sub EXPORT_TO_EXCEL_01(SHEET_NAME) '.. EXPORT TO EXCEL USING DOCMD RUNSQL
 DoCmd.RunSQL "SELECT [EmpName],[Mada],[nsun1],[nsun2],[nsun3],[nsun4],[nsun5],[nsun6] , [nsun7], [nsun8], [nmon1], [nmon2], [nmon3], [nmon4], [nmon5], [nmon6],[nmon7],[nmon8], [ntu1],[ntu2],[ntu3],[ntu4],[ntu5],[ntu6] , [ntu7], [ntu8] , [nwed1],[nwed2],[nwed3],[nwed4],[nwed5],[nwed6] , [nwed7] , [nthu1],[nthu2],[nthu3],[nthu4],[nthu5],[nthu6] , [nthu7]  INTO [" & SHEET_NAME & "]IN'" _
    & CurrentProject.Path & "\الجدول'[Excel 8.0;HDR=yes;] FROM q_all"
    End Sub

وفى الاستدعاء

Private Sub أمر23_Click()
DoCmd.SetWarnings False
 EXPORT_TO_EXCEL_01 "جدول " & Format(Now(), "mm:ss")
 MsgBox "تم تصدير الجدول بنجاح إلى نفس مجلد قاعدة البيانات سيتم فتح المجلد الآن... "
On Error GoTo 1
Application.FollowHyperlink CurrentProject.Path
1:
DoCmd.SetWarnings True
End Sub

شكرا لك أخانا الفاضل أبا إبراهيم

نجد لديك مستويات من الأكواد و الطرق

كأنك تقرأ من كتب لا ندرى نحن عنها شيئا

هلا دللتنا على بعض مصادر تعلمك

وفقكم الله

تم تعديل بواسطه عبد الفتاح كيرة
قام بنشر
16 ساعات مضت, عبد الفتاح كيرة said:

نجد لديك مستويات من الأكواد و الطرق

كأنك تقرأ من كتب لا ندرى نحن عنها شيئا

هلا دللتنا على بعض مصادر تعلمك

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

  • Like 2
قام بنشر
4 ساعات مضت, Shivan Rekany said:

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

صار مطلبا جماهيريا

حبذا لو يفتتح الأخ إبراهيم موضوعا يختاره لشرح vba

إن شاء الله أرفع لكم الملف بعد حذف البيانات الخاصة منه

  • Like 1
قام بنشر

 

في 12/11/2017 at 03:01, عبد الفتاح كيرة said:

شكرا لك أخانا الفاضل أبا إبراهيم

نجد لديك مستويات من الأكواد و الطرق

كأنك تقرأ من كتب لا ندرى نحن عنها شيئا

هلا دللتنا على بعض مصادر تعلمك

وفقكم الله

 

في 12/11/2017 at 19:43, Shivan Rekany said:

فعلا ... حين قرأت مشاركة استاذنا @أبو إبراهيم الغامدي قلت لنفسي بكل هدوء ... لا ارى اي مشاركته بدون فائدة ... دائما عنده شيء جديد ... دائما اتعلم منه شيئا جديدا 
الله يحفظكم 

هذا من نبلكما أخواي وسابق فضلكما، ولا أعتقد أن ما قدمته يسمو إلى مقامكما.. ولكنه التواضع المعهود فيكما.. 

19 ساعات مضت, عبد الفتاح كيرة said:

حبذا لو يفتتح الأخ إبراهيم موضوعا يختاره لشرح vba

لا أظن أنني أحسن هذا النوع من المشاركات.. أرجو المعذرة..

  • Like 4

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.

×
×
  • اضف...

Important Information