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

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

قام بنشر (معدل)
  في 29‏/5‏/2024 at 14:44, safaa salem5 said:

 

Expand  

 

 

  في 29‏/5‏/2024 at 14:44, safaa salem5 said:
Expand  

 ممكن مساعده فى طريقة عمل هامش للتقرير بدلالة قيمه هتتكتب فى فورم خاص باعدادات التقرير  ويمكن تغييرها اى وقت من الفورم 

مثل  هامش من الاعلى  - الهامش من الاسفل - الهامش من الجانب

تم تعديل بواسطه safaa salem5
قام بنشر
Private Sub Report_Open(Cancel As Integer)
  Dim T, L, B
   T = Nz(DLookup("top", "settings_Report_tbl"), 1)
   L = Nz(DLookup("left", "settings_Report_tbl"), 1)
   B = Nz(DLookup("bottom", "settings_Report_tbl"), 1)
    Me.Printer.TopMargin = T * 567
    Me.Printer.LeftMargin = L * 567
    Me.Printer.BottomMargin = B * 567
End Sub

 

هامش تقرير2.rarFetching info...

  • Like 3
قام بنشر

اولا ننشئ جدول باسم tblMarginsSettings
يحتوى على الجقول الاتية

TopMargin (نوع البيانات: Number)
BottomMargin (نوع البيانات: Number)
LeftMargin (نوع البيانات: Number)
RightMargin (نوع البيانات: Number)

إنشاء نموذج لإدخال إعدادات الهوامش

عناصر التحكم اللازمة لإدخال الهوامش

(مربعات نصية)
txtTopMargin
txtBottomMargin
txtLeftMargin
txtRightMargin

(زر أمر)
btnSaveMargins
الكود

Private Sub btnSaveMargins_Click()
    ' Ensure only one record in tblMarginsSettings
    If DCount("*", "tblMarginsSettings") = 0 Then
        ' If no record, insert a new one
        DoCmd.RunSQL "INSERT INTO tblMarginsSettings (TopMargin, BottomMargin, LeftMargin, RightMargin) VALUES (" & Me.txtTopMargin & ", " & Me.txtBottomMargin & ", " & Me.txtLeftMargin & ", " & Me.txtRightMargin & ")"
    Else
        ' If record exists, update it
        DoCmd.RunSQL "UPDATE tblMarginsSettings SET TopMargin = " & Me.txtTopMargin & ", BottomMargin = " & Me.txtBottomMargin & ", LeftMargin = " & Me.txtLeftMargin & ", RightMargin = " & Me.txtRightMargin
    End If

    MsgBox "Margins settings saved successfully!"
End Sub



إنشاء الوحدة النمطية
لإضافة الدالة العامة 
الكود
 

Public Sub SetReportMargins(rpt As Report, _
                            Optional ByVal DefaultTop As Long = 1440, _
                            Optional ByVal DefaultBottom As Long = 1440, _
                            Optional ByVal DefaultLeft As Long = 1440, _
                            Optional ByVal DefaultRight As Long = 1440)
    ' Default values are set to 1 inch (1440 twips) which is standard for A4 paper
    Dim rs As DAO.Recordset
    On Error GoTo ErrorHandler

    Set rs = CurrentDb.OpenRecordset("SELECT * FROM tblMarginsSettings")

    If Not rs.EOF Then
        rpt.Printer.TopMargin = Nz(rs!TopMargin, DefaultTop)
        rpt.Printer.BottomMargin = Nz(rs!BottomMargin, DefaultBottom)
        rpt.Printer.LeftMargin = Nz(rs!LeftMargin, DefaultLeft)
        rpt.Printer.RightMargin = Nz(rs!RightMargin, DefaultRight)
    Else
        rpt.Printer.TopMargin = DefaultTop
        rpt.Printer.BottomMargin = DefaultBottom
        rpt.Printer.LeftMargin = DefaultLeft
        rpt.Printer.RightMargin = DefaultRight
    End If

    rs.Close
    Set rs = Nothing
    Exit Sub

ErrorHandler:
    MsgBox "Error setting margins: " & Err.Description
    If Not rs Is Nothing Then
        rs.Close
        Set rs = Nothing
    End If
End Sub

 على ان يتم استدعاءه فى التقرير عندف تح التقرير بالشكل التالى 
 

Private Sub Report_Open(Cancel As Integer)
    SetReportMargins Me
End Sub

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

تم استخدام معايير A4
حيث ان القيم الافتراضية للهوامش تعادل 1 بوصة (1440 twips) لكل جانب وهي مناسبة لمقاسات ورق A4

يمكن استدعاء الدالة من أي تقرير بسهولة :yes:

 

باستخدام هذا الكود، ستكون إعدادات الهوامش مرنة وقابلة للتعديل بسهولة، مع التأكد من وجود قيم افتراضية مناسبة عند الحاجة.

  • Like 2
قام بنشر

اولا اعتذر لم انتبه الى رد واجابة والدى الحبيب واستاذى الجليل  ومعلمى القدير الاستاذ @ابوخليل :fff:
يبدو اننى كنت منهمكا فى وضع الاجابة

وبعد مشاهدة اجابة والدى الحبيب يبدو انه اعتمد فى الاجابة على تحويل قيم من سنتيمتر إلى twips

ولذلك اثراء للموضع الطريقة الثانية

اولا ننشئ جدول باسم tblMarginsSettings
يحتوى على الجقول الاتية

TopMargin (نوع البيانات: Number)
BottomMargin (نوع البيانات: Number)
LeftMargin (نوع البيانات: Number)
RightMargin (نوع البيانات: Number)

إنشاء نموذج لإدخال إعدادات الهوامش

عناصر التحكم اللازمة لإدخال الهوامش
(مربعات نصية)
txtTopMargin
txtBottomMargin
txtLeftMargin
txtRightMargin

(زر أمر)
btnSaveMargins
الكود

Private Sub btnSaveMargins_Click()
    ' Ensure only one record in tblMarginsSettings
    If DCount("*", "tblMarginsSettings") = 0 Then
        ' If no record, insert a new one
        DoCmd.RunSQL "INSERT INTO tblMarginsSettings (TopMargin, BottomMargin, LeftMargin, RightMargin) VALUES (" & Me.txtTopMargin & ", " & Me.txtBottomMargin & ", " & Me.txtLeftMargin & ", " & Me.txtRightMargin & ")"
    Else
        ' If record exists, update it
        DoCmd.RunSQL "UPDATE tblMarginsSettings SET TopMargin = " & Me.txtTopMargin & ", BottomMargin = " & Me.txtBottomMargin & ", LeftMargin = " & Me.txtLeftMargin & ", RightMargin = " & Me.txtRightMargin
    End If

    MsgBox "Margins settings saved successfully!"
End Sub


إنشاء الوحدة النمطية
لإضافة الدالة العامة 
الكود

Public Function CmToTwips(cm As Double) As Long
    CmToTwips = cm * 567
End Function

وذلك لتحويل القيم من سنتيمتر إلى twips


 

Public Sub SetReportMargins(rpt As Report, _
                            Optional ByVal DefaultTopCm As Double = 2.54, _
                            Optional ByVal DefaultBottomCm As Double = 2.54, _
                            Optional ByVal DefaultLeftCm As Double = 2.54, _
                            Optional ByVal DefaultRightCm As Double = 2.54)
    ' Convert default values from cm to twips
    Dim DefaultTop As Long
    Dim DefaultBottom As Long
    Dim DefaultLeft As Long
    Dim DefaultRight As Long

    DefaultTop = CmToTwips(DefaultTopCm)
    DefaultBottom = CmToTwips(DefaultBottomCm)
    DefaultLeft = CmToTwips(DefaultLeftCm)
    DefaultRight = CmToTwips(DefaultRightCm)

    Dim rs As DAO.Recordset
    On Error GoTo ErrorHandler

    Set rs = CurrentDb.OpenRecordset("SELECT * FROM tblMarginsSettings")

    If Not rs.EOF Then
        rpt.Printer.TopMargin = CmToTwips(Nz(rs!TopMargin, DefaultTopCm))
        rpt.Printer.BottomMargin = CmToTwips(Nz(rs!BottomMargin, DefaultBottomCm))
        rpt.Printer.LeftMargin = CmToTwips(Nz(rs!LeftMargin, DefaultLeftCm))
        rpt.Printer.RightMargin = CmToTwips(Nz(rs!RightMargin, DefaultRightCm))
    Else
        rpt.Printer.TopMargin = DefaultTop
        rpt.Printer.BottomMargin = DefaultBottom
        rpt.Printer.LeftMargin = DefaultLeft
        rpt.Printer.RightMargin = DefaultRight
    End If

    rs.Close
    Set rs = Nothing
    Exit Sub

ErrorHandler:
    MsgBox "Error setting margins: " & Err.Description
    If Not rs Is Nothing Then
        rs.Close
        Set rs = Nothing
    End If
End Sub



على ان يتم الاستدعاء فى التقرير عند فتح التقرير بالشكل التالى 

Private Sub Report_Open(Cancel As Integer)
    SetReportMargins Me
End Sub


 

  • Like 2
قام بنشر
  في 30‏/5‏/2024 at 00:41, ابو جودي said:

اولا ننشئ جدول باسم tblMarginsSettings
يحتوى على الجقول الاتية

TopMargin (نوع البيانات: Number)
BottomMargin (نوع البيانات: Number)
LeftMargin (نوع البيانات: Number)
RightMargin (نوع البيانات: Number)

إنشاء نموذج لإدخال إعدادات الهوامش

عناصر التحكم اللازمة لإدخال الهوامش

(مربعات نصية)
txtTopMargin
txtBottomMargin
txtLeftMargin
txtRightMargin

(زر أمر)
btnSaveMargins
الكود

Private Sub btnSaveMargins_Click()
    ' Ensure only one record in tblMarginsSettings
    If DCount("*", "tblMarginsSettings") = 0 Then
        ' If no record, insert a new one
        DoCmd.RunSQL "INSERT INTO tblMarginsSettings (TopMargin, BottomMargin, LeftMargin, RightMargin) VALUES (" & Me.txtTopMargin & ", " & Me.txtBottomMargin & ", " & Me.txtLeftMargin & ", " & Me.txtRightMargin & ")"
    Else
        ' If record exists, update it
        DoCmd.RunSQL "UPDATE tblMarginsSettings SET TopMargin = " & Me.txtTopMargin & ", BottomMargin = " & Me.txtBottomMargin & ", LeftMargin = " & Me.txtLeftMargin & ", RightMargin = " & Me.txtRightMargin
    End If

    MsgBox "Margins settings saved successfully!"
End Sub



إنشاء الوحدة النمطية
لإضافة الدالة العامة 
الكود
 

Public Sub SetReportMargins(rpt As Report, _
                            Optional ByVal DefaultTop As Long = 1440, _
                            Optional ByVal DefaultBottom As Long = 1440, _
                            Optional ByVal DefaultLeft As Long = 1440, _
                            Optional ByVal DefaultRight As Long = 1440)
    ' Default values are set to 1 inch (1440 twips) which is standard for A4 paper
    Dim rs As DAO.Recordset
    On Error GoTo ErrorHandler

    Set rs = CurrentDb.OpenRecordset("SELECT * FROM tblMarginsSettings")

    If Not rs.EOF Then
        rpt.Printer.TopMargin = Nz(rs!TopMargin, DefaultTop)
        rpt.Printer.BottomMargin = Nz(rs!BottomMargin, DefaultBottom)
        rpt.Printer.LeftMargin = Nz(rs!LeftMargin, DefaultLeft)
        rpt.Printer.RightMargin = Nz(rs!RightMargin, DefaultRight)
    Else
        rpt.Printer.TopMargin = DefaultTop
        rpt.Printer.BottomMargin = DefaultBottom
        rpt.Printer.LeftMargin = DefaultLeft
        rpt.Printer.RightMargin = DefaultRight
    End If

    rs.Close
    Set rs = Nothing
    Exit Sub

ErrorHandler:
    MsgBox "Error setting margins: " & Err.Description
    If Not rs Is Nothing Then
        rs.Close
        Set rs = Nothing
    End If
End Sub

 على ان يتم استدعاءه فى التقرير عندف تح التقرير بالشكل التالى 
 

Private Sub Report_Open(Cancel As Integer)
    SetReportMargins Me
End Sub

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

تم استخدام معايير A4
حيث ان القيم الافتراضية للهوامش تعادل 1 بوصة (1440 twips) لكل جانب وهي مناسبة لمقاسات ورق A4

يمكن استدعاء الدالة من أي تقرير بسهولة :yes:

 

باستخدام هذا الكود، ستكون إعدادات الهوامش مرنة وقابلة للتعديل بسهولة، مع التأكد من وجود قيم افتراضية مناسبة عند الحاجة.

Expand  

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

هامش التقرير.accdbFetching info...

  • Confused 1
قام بنشر
  في 30‏/5‏/2024 at 13:47, safaa salem5 said:

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

Expand  

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

قام بنشر (معدل)
  في 30‏/5‏/2024 at 13:57, ابو جودي said:

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

Expand  

تمام انا غيرت مصدر بيانات التقرير 

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

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

هامش التقرير.accdbFetching info...

تم تعديل بواسطه safaa salem5
قام بنشر

انا جديده بالمنتدى

وجدة لكي يا صفاء 

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

 

اتوقع تشغيل التقارير بحدث التقرير 

    Dim DefaultTop As Long
    Dim DefaultBottom As Long
    Dim DefaultLeft As Long
    Dim DefaultRight As Long
؟! Chack data tablet (1)

Function into Report At Top And At Bottom At Mid >> .. How only Building Function Control report ?!

sorry for Help U Function Error No Error 

Now Only Cod On_Click_Button

'==================================(OPen_Control Report = ( acHidden))
 

 

12.PNG

تحكم بأعدادة طباعة وهوامش التقرير.rarFetching info...

  • Like 2
قام بنشر
  في 30‏/5‏/2024 at 19:05, hanan_ms said:

انا جديده بالمنتدى

وجدة لكي يا صفاء 

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

 

اتوقع تشغيل التقارير بحدث التقرير 

    Dim DefaultTop As Long
    Dim DefaultBottom As Long
    Dim DefaultLeft As Long
    Dim DefaultRight As Long
؟! Chack data tablet (1)

Function into Report At Top And At Bottom At Mid >> .. How only Building Function Control report ?!

sorry for Help U Function Error No Error 

Now Only Cod On_Click_Button

'==================================(OPen_Control Report = ( acHidden))
 

 

12.PNG

تحكم بأعدادة طباعة وهوامش التقرير.rar 54.4 kB · 0 downloads

Expand  

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

@ابو جودي ان شاء الله هيرد ويكمل جميله بس اكيد هو مشغول دلوقتى  كان الله بالعون

قام بنشر
  في 30‏/5‏/2024 at 19:05, hanan_ms said:

انا جديده بالمنتدى

وجدة لكي يا صفاء 
 

Expand  

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

 

  • Like 1
قام بنشر

 كود يعمل ولكن تتحرك صفحة التقرير 

ما يضبط الهوامش اما اعلى او اسفل عند اختيار كل الحقول 0

كيف اضبط تحجيم الهوامش 

تختلف ارقام المسجلة باعدادة الصفحة

@ابو جودي 🌹 استاذ متمرس 

اشكرك جدا سأضيف الدالة بالمكتبة

0.PNG

1.PNG

قام بنشر
  في 30‏/5‏/2024 at 20:12, hanan_ms said:

تختلف ارقام المسجلة باعدادة الصفحة

 

Expand  

بصى يا باش مهندسة  حنان خلينا نتفق على شئ 
الاكسس لا يتعامل بمقياس السنتيمتر فى القياسات ولكن يتعامل بالـ Twips

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

طيبا علشان نحول من انا كتبت الدالة دى 

 

Public Function CmToTwips(cm As Double) As Long
    CmToTwips = cm * 567
End Function

فطبيعيى ان حضرتك لو كتبتى ارقام غير منطقية تحصلى على نتيجة غير منطقية 
لذلك انا افضل فكرة حضرتك DoCmd.RunCommand acCmdPageSetup
 

  • Like 1
قام بنشر

للتوضيح

المرفق السابق بمجرد إضافة أي تقارير تظهر بطريقة الية ضمن قائمة التقارير

وللأمانة العلمية والأخلاقية حتى يأخذ كل ذي حق حقه

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

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

انا فقط اضفت وقمت ببعض التعديلات ليتناسب مع النواتان 32,64 ولاضفاء مرونة اكبر والتى تناسب تطلعاتى وقتها

 

قام بنشر

🌹 @ابو جودي مشكور جدا استاذي  

CmToTwips فكرتك ممتازة بتحكم لكل هوامش التقارير بستخدام

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

if Dlookup name Report  ,Number=Number then

ولكن هل يعمل على تغير التقرير بدل من الطول الى (العرض : عرض التقرير بوضع الاوفقي )

Public Function CmToTwips2(cm As Double) As Long
    CmToTwips2 = cm * ???'567
End Function

جاري التجربة

❤️

  • Thanks 1
قام بنشر (معدل)

 🌹🌹 عدلة مرفقك

كان الخطأ عند\ تغير هوامش تغير حجم عرض الحقل في آخر اليمين 

فقط كود تحريك الحقول ان كان صفر فتتحرك سنتيمتر 8.2 

واذا كانت 1 او 2 

تقل سنتيمتر عرض التقريك بتحرك الحقل ليصل الى 7 او 6 او 5 فقط

 وتم اضافة الاطار لكل التقارير واماكنية تحجيم الاطار والغاء

واضافة قائمة بكج التقارير 

====================================================

هل يوجد دالة لتحجم آخر حقل لكل تقرير من الرأس الى تذليل الصفحة آخر اليمين ؟

(لتشغيل هوامش التقرير)

في الوضع الحالي سأستخدم تقرير محجم بوضع التصميم للتشغيل الهوامش

وتختلف التوسع بالحقل اذا كان التقرير بوضع الطولي او العرض (افقي )

 @ابو جودي اشكر كثيرا استاذي

🌹❤️

x1.PNG

x2.PNG

x3.PNG

x4.PNG

Full Control Of Print Report التحكم في الطابعة وخصائصها طباعة التقارير.rarFetching info...

تم تعديل بواسطه hanan_ms
  • Thanks 1
قام بنشر
  في 31‏/5‏/2024 at 19:26, hanan_ms said:

 🌹🌹 عدلة مرفقك

 

Expand  

با نهار ابيض وجالك قلب تعدلى مرفقى بسهولة كده :mad: انتى بتهزرى يا باش مهندسة لا وبتقوليها فى وشى كمان

تسلم ايدك بجد .. طبعا بهزر كل نرفقاتى ملك لاخوانى واخواتى الا شخص واحد الاستاذ @Moosak  صاحب المكتبة العامرة :biggrin2: 

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

وشرف لى يا باش مهندسة مشاركة حضرتك بجد والله 

 

  • 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