اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

قام بنشر

السلام عليكم

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

فعند الضغط ع زر طباعة تقرير 

تظهر اسماء جميع الحقول الموجودة ضمن قاعدة البيانات في جميع الجداول 

و بجوار كل اسم حقل مربع اختيار و يختار ما يرغب به في التقرير 

 

فهل يمكن عمل مثل هكذا فكرة 

قام بنشر

كل شيء ممكن
ولكن ابدأ في تصميم الملف وحاول أنت أولا

وإذا وقفت معك خطوة ستجد الجميع يساعدك

لكن عرض الفكرة وغيرك ينفذ

ربما لا تجدها

  • Like 1
قام بنشر
14 دقائق مضت, أ / محمد صالح said:

كل شيء ممكن
ولكن ابدأ في تصميم الملف وحاول أنت أولا

وإذا وقفت معك خطوة ستجد الجميع يساعدك

لكن عرض الفكرة وغيرك ينفذ

ربما لا تجدها

البرنامج كامل وما فيه نقص 

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

اذا تنجح فشرح للطريقة او ملف يبين طريقة العمل

قام بنشر

كل شيء ممكن وينجح مع الإصرار 
ولكن أكره الكلام النظري

فائدته قليلة جدا

وحسب فهمي للمطلوب

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

وعند اختيار الأعمدة يتم تجميع نص الاستعلام بلغة sql

وبناء تقرير جديد بناء على الاستعلام بهذه الدالة المعرفة

Function CreateDynamicReport(strSQL As String)
Dim db As DAO.database ' database object
Dim rs As DAO.Recordset ' recordset object
Dim fld As DAO.Field ' recordset field
Dim txtNew As Access.TextBox ' textbox control
Dim lblNew As Access.Label ' label control
Dim rpt As Report ' hold report object
Dim lngTop As Long ' holds top value of control position
Dim lngLeft As Long ' holds left value of controls position
Dim title As String 'holds title of report
 
     'set the title
     title = "Title for the Report"
 
     ' initialise position variables
     lngLeft = 0
     lngTop = 0
 
     'Create the report
     Set rpt = CreateReport
 
     ' set properties of the Report
     With rpt
         .Width = 8500
         .RecordSource = strSQL
         .Caption = title
     End With
 
     ' Open SQL query as a recordset
     Set db = CurrentDb
     Set rs = db.OpenRecordset(strSQL)    
 
     ' Create Label Title
     Set lblNew = CreateReportControl(rpt.Name, acLabel, _
     acPageHeader, , "Title", 0, 0)
     lblNew.FontBold = True
     lblNew.FontSize = 12
     lblNew.SizeToFit
 
     ' Create corresponding label and text box controls for each field.
     For Each fld In rs.Fields
 
         ' Create new text box control and size to fit data.
         Set txtNew = CreateReportControl(rpt.Name, acTextBox, _
         acDetail, , fld.Name, lngLeft + 1500, lngTop)
         txtNew.SizeToFit
 
         ' Create new label control and size to fit data.
         Set lblNew = CreateReportControl(rpt.Name, acLabel, acDetail, _
         txtNew.Name, fld.Name, lngLeft, lngTop, 1400, txtNew.Height)
         lblNew.SizeToFit        
 
         ' Increment top value for next control
         lngTop = lngTop + txtNew.Height + 25
     Next
 
     ' Create datestamp in Footer
     Set lblNew = CreateReportControl(rpt.Name, acLabel, _
     acPageFooter, , Now(), 0, 0)
 
     ' Create page numbering on footer
     Set txtNew = CreateReportControl(rpt.Name, acTextBox, _
     acPageFooter, , "='Page ' & [Page] & ' of ' & [Pages]", rpt.Width - 1000, 0)
     txtNew.SizeToFit
 
     ' Open new report.
     DoCmd.OpenReport rpt.Name, acViewPreview
 
     'reset all objects
     rs.Close
     Set rs = Nothing
     Set rpt = Nothing
     Set db = Nothing
 
End Function
 

بالتوفيق

  • Like 2
قام بنشر (معدل)
4 ساعات مضت, أ / محمد صالح said:

كل شيء ممكن وينجح مع الإصرار 
ولكن أكره الكلام النظري

فائدته قليلة جدا

وحسب فهمي للمطلوب

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

وعند اختيار الأعمدة يتم تجميع نص الاستعلام بلغة sql

وبناء تقرير جديد بناء على الاستعلام بهذه الدالة المعرفة


Function CreateDynamicReport(strSQL As String)
Dim db As DAO.database ' database object
Dim rs As DAO.Recordset ' recordset object
Dim fld As DAO.Field ' recordset field
Dim txtNew As Access.TextBox ' textbox control
Dim lblNew As Access.Label ' label control
Dim rpt As Report ' hold report object
Dim lngTop As Long ' holds top value of control position
Dim lngLeft As Long ' holds left value of controls position
Dim title As String 'holds title of report
 
     'set the title
     title = "Title for the Report"
 
     ' initialise position variables
     lngLeft = 0
     lngTop = 0
 
     'Create the report
     Set rpt = CreateReport
 
     ' set properties of the Report
     With rpt
         .Width = 8500
         .RecordSource = strSQL
         .Caption = title
     End With
 
     ' Open SQL query as a recordset
     Set db = CurrentDb
     Set rs = db.OpenRecordset(strSQL)    
 
     ' Create Label Title
     Set lblNew = CreateReportControl(rpt.Name, acLabel, _
     acPageHeader, , "Title", 0, 0)
     lblNew.FontBold = True
     lblNew.FontSize = 12
     lblNew.SizeToFit
 
     ' Create corresponding label and text box controls for each field.
     For Each fld In rs.Fields
 
         ' Create new text box control and size to fit data.
         Set txtNew = CreateReportControl(rpt.Name, acTextBox, _
         acDetail, , fld.Name, lngLeft + 1500, lngTop)
         txtNew.SizeToFit
 
         ' Create new label control and size to fit data.
         Set lblNew = CreateReportControl(rpt.Name, acLabel, acDetail, _
         txtNew.Name, fld.Name, lngLeft, lngTop, 1400, txtNew.Height)
         lblNew.SizeToFit        
 
         ' Increment top value for next control
         lngTop = lngTop + txtNew.Height + 25
     Next
 
     ' Create datestamp in Footer
     Set lblNew = CreateReportControl(rpt.Name, acLabel, _
     acPageFooter, , Now(), 0, 0)
 
     ' Create page numbering on footer
     Set txtNew = CreateReportControl(rpt.Name, acTextBox, _
     acPageFooter, , "='Page ' & [Page] & ' of ' & [Pages]", rpt.Width - 1000, 0)
     txtNew.SizeToFit
 
     ' Open new report.
     DoCmd.OpenReport rpt.Name, acViewPreview
 
     'reset all objects
     rs.Close
     Set rs = Nothing
     Set rpt = Nothing
     Set db = Nothing
 
End Function
 

بالتوفيق

ممنون جدا استاذ @أ / محمد صالحع الشرح 

 

جربته ولم ينغع 

 

هذا ملف تجريبي يرجى التعديل عليه 

2 ساعات مضت, رضا محمد علي said:

السلام عليكم

مرفق مثال تقريبا  مشابه للطلب _ منقول يمكن تكون فى فكره حسب الطلب

اختيار من الجدول.rar

مشكور استاذ 

ولكن هذا الملف يختار الحقول من جدول واحد 

وانا بحاجة للاختيار من اكثر من جدول  

000 - Copy.rar

تم تعديل بواسطه zYo
قام بنشر
21 ساعات مضت, zYo said:

السلام عليكم

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

فعند الضغط ع زر طباعة تقرير 

تظهر اسماء جميع الحقول الموجودة ضمن قاعدة البيانات في جميع الجداول 

و بجوار كل اسم حقل مربع اختيار و يختار ما يرغب به في التقرير 

 

فهل يمكن عمل مثل هكذا فكرة 

عزيزى ارح بالك 

هذا الموضع العظيم فيه ماتريد واكثر

للاستاذ والخبير القدير @jjafferr

بالتوفيق باذن الله

قام بنشر
منذ ساعه, محمد عبد الشفيع said:

عزيزى ارح بالك 

هذا الموضع العظيم فيه ماتريد واكثر

للاستاذ والخبير القدير @jjafferr

بالتوفيق باذن الله

 

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

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

قام بنشر
8 دقائق مضت, محمد عبد الشفيع said:

اذن عليك محاولة التعديل لجعله ياخذ من اكتر من جدول

وستكون رائعة بالتاكيد

اكيد طبعا 

ان شاءالله احاول بعد ان اتواصل مع استاذ @jjafferr 

  • 2 weeks later...
قام بنشر (معدل)

السلام عليكم ..

أرغب بأن أضيف تجربتي المتواضعة عسى أن يكون بها طلبك .

الفكرة بالخطوات المختصرة :

1- عمل تقرير يتضمن جميع الحقول التي نرغب بعرضها.

2- جعل خاصة يقبل النمو لمربعات النص ( و يمكن اللجوء إلى بعض الأكواد التي تسمح بنمو مربعات النص في التقارير طولاً و عرضاً مع أني لم أجربها و ليست لدي  كوني لم أحتجها).

3- اجعل مصدر التقرير  استعلاماً مصمماً من جميع الجداول التي لديك.

4-أخيراً اعتمد التنسيق الشرطي ففي حال خلو مربع النص من أية بيانات تختفي الليبل ( تكون بلون خلفية التقرير).

5-في حال كنت ترغب بتسجيل كامل البيانات في جميع الجداول و لكن عرض ما ترغب به منها، يمكن أن تلجأ إلى التنسيق الشرطي أيضاً( كعمل مربع نص عند وجود قيمة معينة فيه تختفي الليبل)

لم أجرب استخدام تطبيق الفكرة بخاصية VISIBLE  و إنما استخدمت التنسيق الشرطي فقط .

يمكن ملائمة الفكرة حسب الحاجة.

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

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

تم تعديل بواسطه Khalf

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