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

Foksh

أوفيسنا
  • Posts

    4146
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    179

مشاركات المكتوبه بواسطه Foksh

  1. 36 دقائق مضت, الحلبي said:

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

     

    نعم يوجد بلا شك ..

    أولاً كلمة سر لقاعدة البيانات ( ولا أقصد الأكود VBA ) .. ثم حفظ قاعدة البيانات بامتداد Accde فقط !!!!!!!

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

  2. 1 ساعه مضت, الحلبي said:

    السلام عليكم 

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

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

    قاعدة البيانات او البرنامج معمول على امتداد accdb وليس mdb

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

     

    نعم

  3. أخي @سامر محمود ,, بالنسبة للنقطة :-

    منذ ساعه, سامر محمود said:

    يقولي كام موظف اتاخروا عن الساعة 9:30ص

    فحلها بسيط وهو أن تضع معيار في الاستعلام Delay report في حقل "وقت الحضور" = >#9:30:00 AM# .
    أما في هذه النقطة :-

     

    1 ساعه مضت, سامر محمود said:

    كام مرة في الشهر لكل موظف ويطبف اللائحة بتاعت التاخير لوحده يعني مثلا اول مرة يكون انذار بعد كده ربع يوم

    فتستطيع باستخدام الاستعلام ان تحصي عدد تكرارات التأخير لكل موظف ، وأن تطبق لائحة العقوبات التي تريدها . وفي هذه النقطة قمت بإضافة بإضافة العقوبات حسب عدد التكرارات و إضافة عقوبات جديدة تستطيع حذفها كيفما تريد ):wavetowel: 

    هذا الاستعلام يجلب لك الموظفين المتأخرين :-

    SELECT Att_Details.serial, Att_Details.[رقم الموظف], Att_Details.[اسم الموظف], Att_Details.[نوع الحركة], Att_Details.[تاريخ الحركة], Att_Details.[وقت الحضور], Att_Details.[وقت الانصراف], Att_Details.الفرق, Att_Details.الملاحظات
    FROM Att_Details
    WHERE Att_Details.[وقت الحضور] > #09:30:00 AM#;

    وهذا الاستعلام يقوم بعد تكرارات التأخير فقط :-

    SELECT Att_Details.[رقم الموظف], Att_Details.[اسم الموظف], Format(Att_Details.[تاريخ الحركة],"yyyy/mm") AS الشهر, Count(*) AS التكرار
    FROM Att_Details
    WHERE (((Att_Details.[وقت الحضور])>#12/30/1899 9:30:0#))
    GROUP BY Att_Details.[رقم الموظف], Att_Details.[اسم الموظف], Format(Att_Details.[تاريخ الحركة],"yyyy/mm");

    والإستعلام الأخير يقوم بعد التكرارات وبناءً عليها يطبق العقوبات :-

    SELECT Att_Details.[رقم الموظف], Att_Details.[اسم الموظف], Format(Att_Details.[تاريخ الحركة], "yyyy/mm") AS الشهر, COUNT(*) AS التكرار, IIf(COUNT(*) = 1, "إنذار",
            IIf(COUNT(*) > 1 AND COUNT(*) < 6, "ربع يوم",
                IIf(COUNT(*) > 5 AND COUNT(*) < 11, "نصف يوم",
                    "خصم يوم"))) AS الإجراء
    FROM Att_Details
    WHERE Att_Details.[وقت الحضور] > #09:30:00 AM#
    GROUP BY Att_Details.[رقم الموظف], Att_Details.[اسم الموظف], Format(Att_Details.[تاريخ الحركة], "yyyy/mm");

     

    والملف بعد التعديل :-

    Att - Copy.accdb

    • Like 1
  4. أخي @jo_2010 ، قمت بتعديل بسيط على ملفك ، وهو إضافة حقل جديد = PathPic في الجدول لتخزين المسار فيه بشكل صريح بدلاً من الطريقة التي يم فيها جلب مسار الملف لحذفه ،

    وأصبح الكود بعد تعديله في زر الحذف بالشكل التالي :-

    On Error GoTo HandleError
        Dim fileToDelete As String
        Dim response As VbMsgBoxResult
        Dim db As DAO.Database
        Dim sql As String
        Dim recordID As String
        Dim subFolderPath As String
        recordID = [Forms]![frm_sader_wared]![Pname].Value
        subFolderPath = CurrentProject.Path & "\AttachedFiles\" & recordID
        fileToDelete = Me.PathPic.Value
        If Not IsNull(fileToDelete) And Dir(fileToDelete) <> "" Then
            response = MsgBox("هل تريد حقاً حذف هذا الملف؟", vbYesNo + vbQuestion, "تأكيد الحذف")
            If response = vbYes Then
                Kill fileToDelete
                Set db = CurrentDb()
                sql = "DELETE FROM TblAttchedFiles WHERE id=" & Me.ID
                db.Execute sql, dbFailOnError
                On Error Resume Next
                RmDir subFolderPath
                On Error GoTo HandleError
                Me.Requery
            End If
        Else
            MsgBox "لا يوجد شئ لحذفه", vbExclamation, "خطأ"
        End If
        
    HandleExit:
        Exit Sub
        
    HandleError:
        Select Case Err.Number
            Case 94
                MsgBox "لا يوجد شئ لحذفه", vbExclamation, "خطأ"
            Case Else
                MsgBox "خطأ رقم: " & Err.Number & vbNewLine & Err.Description, vbCritical, "خطأ"
        End Select
        Resume HandleExit

     

    وهذا ملفك بعد التعديل

     

    base_s_w.accdb

    • Like 2
  5. وعليكم السلام ورحمة الله وبركاته..

    هل معنى كلامك أنك تريد ان يكون للعميل أ سعر للصنف أ في البيع مختلف عن سعر الصنف أ للعميل ب مثلاً 🥴 ؟؟؟؟

    لم اقم بتحميل المرفق ، ولكن للتأكد من الفكرة التي طرحتها !!!

  6. 16 دقائق مضت, ابوخليل said:

    يمكن يحصل تلاعب  .. وهو ان المشترك لا يسجل حضور .. وبكذا اشتراكه يبقى كما هو لا ينقص

    نقطة ضعف متعلقة بالإدارة وليست في تصميمك للبرنامج ، للأسف :rol: .. وإلا ما الفائدة من وجود البرنامج وإحصاء ايام الحضور .... الخ لجميع تصنيفات الاشتراكات !!

  7. 50 دقائق مضت, ابوخليل said:

    العضو الذهبي سيتبقى له 10 ايام كرصيد  .. حسابه يتم حسب ايام الحضور . ولم يحضر الا 20 يوما

    :blink:  المفترض أنه عضو ذهبي أي يتم احتساب ايام الحضور فقط وهذا يعني أنه غير مقترن بتاريخ من / إلى

    50 دقائق مضت, ابوخليل said:

    الآن يستحق ثلاثة ايام  كتعويض ..

    ولكن لنفترض ان شخصا ما غاب يوما واحدا فقط خلال الشهر .. هل سيتم منحه 3 ايام  طبعا لا .. سيعوض عن يوم واحد فقط

    هذه النقطة لها سلوكان ، الأول أن تكون مدة التعويض اختيارية حسب قرار الإدارة . أو الثاني وهو احتساب ايام التعويض ثلث مدة الإجازة ويجبر الكسر لأقرب عدد صحيح أو من خلال معادلة :-

    من 1 الى 3 = تعويض 1 يوم

    من 4 الى 6 = تعويض 2 يوم

    أكثر من 7 = تعويض 3 أيام ... إلخ.

    سأجعل الموضوع أكثر وضوحاً بمرفق بسيط وبيانات مختصرة وهمية ..

    مجرد اقتراحات 😇 .

  8. في 28‏/8‏/2024 at 16:31, Aws86A said:

    تشغيل الفيدر لعمل سكنر لمجموعة اوراق دفعة واحدة

    كمشاركة في هذه النقطة .

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

    بالبداية قم بتثبيت البرنامجين 1st و 2nd ثم في النموذج PDF ..

    اختر من القائمة نوع الملف الذي تريده ( Jpg , Pdf ) ثم رقم الكتاب والتاريخ ( تستطيع تغييرها حسب حاجتك )

     

    P1.png.a11f1c1d4c0f39c1195b3220f1d1c9f4.png

     

    ثم زر سحب PDF

    P2.png.7363a0ee537aa7f6e0aa88d1168f89e0.png

     

    أما فيما يتعلق بزر إدراج PDF ، فهو لاختيار ملف PDF من الكمبيوتر الخاص بك .

    تمت تجربته سابقاً على ماسح ضوئي فيدر .. ولكن تحسباً لإختلاف نوع الماسح الضوئي أو الويندوز أو ظروف بيئة العمل ، قم بتجربته وإخبارنا بالنتيجة :smile: .

     

      التحميل من جوجل درايف

     

    • Like 1
  9. 20 ساعات مضت, ابوخليل said:

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

    أيضاً كفكرة تحويل الاشتراك الزمني الى نقاط ، يتم تحويل الاشتراك ولنفترض الذي مدته شهر أي بمعدل زيارة أو جلسة كل يوم أي بمعدل 30 زيارة بحيث يتم احتساب الزيارات التي استخدمها المشترك ولنفترض استخدم من مدة الاشتراك اسبوع أي بمعدل 7 زيارات فيتبقى له 23 زيارة ، وهنا عند تسجيله الدخول والخروج سيتم خصم 1 من عدد الـ 23 فيتبقى له 22 زيارة وهنا سيكون الإشعارات لديك نوعان :-

    - الإشتراكات المحدودة أو الزمنية يتم التنبيه قبل اسبوع مثلاً.

    - الإشتراكات الغير محدودة أو الرصيدية يتم التنبيه قبل 7 زيارات مثلاً متبقية في رصيد المشترك.

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

    🔹 طبعاً هنا نستطيع الإستفادة من فكرة تحويل أو تحديث الإشتراك من زمني أو محدود إلى الغير محدود من ناحية مادية ( لصالح صاحب المنشئة )

    موضوع تحويل نوع الإشتراك أمر يسير بلا شك ، واحتساب الرصيد المتبقي أمر أيسر إن شاء الله عليكم 😇 .

     

    هي مجرد أفكار بصوت عالٍ 🤗 .

  10. كانت فكرتي في برنامجي سابقاً ، انه يتم تسجيل الحضور من خلال رقم المشترك الغير متكرر . وعند طلب أحد المشتركين ايقاف اشتراكه بشكل مؤقت لأسباب كالسفر مثلاً ، كنت اقوم بتفعيل Pause كحقل موجود في جدول تفاصيل الإشتراك للمشترك ، بحيث انه لنفترض ان المشترك طلب ايقاف عضويته لمدة غير محددة . فمن خلال الزر المسؤول عن تحديث الحقل من No الى Yes لهذا المشترك يتم ايقاف العضوية بحيث لو تم ادخال رقم المشترك في لوحة تسجيل الحضور تظهر رسالة ان المشترك في فترة انقطاع ، وكان الأمر يعود للمسؤول بأنه عند ادخال رقم المشترك في نموذج عرض تفاصيل حساب مشترك ، يظهر له ان هذا الحساب متوقف مؤقتاً ، فيظهر زر إعادة تفعيل بحيث انه عند النقر عليه يتم إحتساب مدة الإنقطاع من تاريخ التوقيف ( وهي قيمة كان يحدثها زر إيقاف الإشتراك مؤقتاً ) الى تاريخ التفعيل ويتم اضافة هذه الايام الى مدة الاستراك + إعادة قيمة حقل الحالة من Yes  الى No مرة أخرى . أي أن الحساب غير مجمد أو موقوف .

    هذه هي الفكرة الأفضل التي وجدتها أثناء العمل وهي احتساب عدد الأيام ولكن بشكل ديناميكي .

     

    أي أنه لو اراد المشترك اعادة ايقاف الاشتراك مؤقتاً مرة أخرى فسيقوم الكود بتحديث حقل تاريخ الإيقاف المؤقت و حقل حالة الإشتراك من No  الى Yes مرة أخرى .

     

     

    أتمنى أن أكون قد وُفقت في توضيح الفكرة :smile: .

  11. مشاركة مع المهندس @Moosak ، وتطبيقاً لفكرته بعين أخرى .

    قم بإنشاء مديول جديد ، والصق به الكود التالي مع تغيير القيم حسب حاجتك ..

    Public Function CalculateMargin(Amount As Double) As Double
        Select Case Amount
            Case Is <= 100
                CalculateMargin = Amount * 0.05
            Case 101 To 200
                CalculateMargin = Amount * 0.1
            Case 201 To 300
                CalculateMargin = Amount * 0.15
            Case 301 To 400
                CalculateMargin = Amount * 0.2
            Case 401 To 500
                CalculateMargin = Amount * 0.25
            Case 501 To 600
                CalculateMargin = Amount * 0.3
            Case 601 To 700
                CalculateMargin = Amount * 0.35
            Case 701 To 800
                CalculateMargin = Amount * 0.4
            Case 801 To 900
                CalculateMargin = Amount * 0.45
            Case Else
                CalculateMargin = Amount * 0.15
        End Select
    End Function

    الآن من خلال استعلام تحديث ان كنت تريد تحديث قيمة الحقل "هامش الربح" في جدولك . أنشئ استعلام تحديث ( Update ) ، وقم باختيار الجدول "2025" ، ثم اختر الحقل الخاص بهامش الربح = "هامش الربح" ؛ الآن في خانة تحديث إلى ( Update To) سيتم استدعاء الدالة من المديول السابق :-

    CalculateMargin([Price])

    والنتيجة :- يتم ضرب قيمة السعر في النسبة المئوية التي حددناها في المديول . وهذا مثال بملف مرفق على الفكرة ..

    Database1.accdb

     

    • Like 1
  12. 1 ساعه مضت, عبده الطوخى 1970 said:

    هل يوجد تصميم افضل للبرنامج من التصميم الحالى 

     

    موضوع التصميم يا صديقي هذا يعود لرؤيتك ونظرتك .. من ناحية التصميم يوجد الكثير من الأفكار التي قد تجدها في المنتدى .

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

     

    أتمنى أن تجد أفكار تثير شغفك في ابتكار تصميم حديث ( إن صح التعبير ) :wub:

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

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

        [Forms]![Frm_Data_entry]![Frm_Fatura_Main].[Form]![Net_Teams] = [Forms]![Frm_Data_entry]![Frm_Fatura_Main].[Form]![Total_Main_Meter] - [Forms]![Frm_Data_entry]![Frm_Fatura_Sub].[Form]![Total_Sub_Meter]

    وشوف النتيجة اذا صحيحة أو لأ :excl:

  14. 15 ساعات مضت, sm44ms said:

    ممكن

    اخي العزيز @sm44ms ، انت ما شاء الله عضو مميز ، ولا بد لك من معرفة قوانين المنتدى بإرفاق ملف و الأهم هو العنواااان . ان يكون ذا صلة واضحة لنوع الاستفسار .

     

    على العموم جرب هذه الفكرة

     

    Private Sub KH_Click()
        ' إعادة تعيين جميع المربعات لتكون فارغة
        ClearAllLists
    
        ' تعبئة القوائم للنماذج المختلفة عند الضغط على KH
        Me.lstForms1.AddItem "شاشة اصدار البطاقات;FO1"
        Me.lstForms2.AddItem "شاشة تجديد البطاقات;FO2"
        Me.lstForms3.AddItem "شاشة تعديل بيانات البطاقات;FO3"
        Me.lstForms4.AddItem "شاشة تعديل بيانات اساسية فرعية;FO4"
        Me.lstForms5.AddItem "شاشة اصدار بطاقات المتقاعدين;FO5"
        Me.lstForms6.AddItem "شاشة البطاقات المنتهية;FO6"
        Me.lstForms7.AddItem "شاشة الملف الشخصي العام;FO7"
    End Sub
    
    Private Sub TW_Click()
        ' إعادة تعيين جميع المربعات لتكون فارغة
        ClearAllLists
    
        ' تعبئة القوائم للنماذج الخاصة بـ TW عند الضغط على TW
        Me.lstForms1.AddItem "شاشة الملف التاريخي العام;TW1"
        Me.lstForms2.AddItem "حركة الملفات التاريخية;TW2"
        Me.lstForms3.AddItem "الملف التاريخي;TW3"
        Me.lstForms4.AddItem "حالة المعاملات التاريخية;TW4"
        Me.lstForms5.AddItem "الشاشة قيد الاجراء;TW5"
        Me.lstForms6.AddItem "شاشة قيد الاجراء 2;TW6"
        Me.lstForms7.AddItem "شاشة الملف ;TW7"
    End Sub
    
    Private Sub ClearAllLists()
        ' إعادة تعيين جميع مربعات القوائم إلى الحالة الافتراضية
        Me.lstForms1.RowSource = ""
        Me.lstForms1.Value = Null
        Me.lstForms2.RowSource = ""
        Me.lstForms2.Value = Null
        Me.lstForms3.RowSource = ""
        Me.lstForms3.Value = Null
        Me.lstForms4.RowSource = ""
        Me.lstForms4.Value = Null
        Me.lstForms5.RowSource = ""
        Me.lstForms5.Value = Null
        Me.lstForms6.RowSource = ""
        Me.lstForms6.Value = Null
        Me.lstForms7.RowSource = ""
        Me.lstForms7.Value = Null
    End Sub
    
    Private Sub lstForms1_AfterUpdate()
        HandleFormOpen Me.lstForms1
    End Sub
    
    Private Sub lstForms2_AfterUpdate()
        HandleFormOpen Me.lstForms2
    End Sub
    
    Private Sub lstForms3_AfterUpdate()
        HandleFormOpen Me.lstForms3
    End Sub
    
    Private Sub lstForms4_AfterUpdate()
        HandleFormOpen Me.lstForms4
    End Sub
    
    Private Sub lstForms5_AfterUpdate()
        HandleFormOpen Me.lstForms5
    End Sub
    
    Private Sub lstForms6_AfterUpdate()
        HandleFormOpen Me.lstForms6
    End Sub
    
    Private Sub lstForms7_AfterUpdate()
        HandleFormOpen Me.lstForms7
    End Sub
    
    Private Sub HandleFormOpen(lst As Control)
        ' تحقق من العنصر المحدد في مربع القائمة
        Dim selectedIndex As Integer
        selectedIndex = lst.ListIndex
    
        If selectedIndex = -1 Then
            MsgBox "يرجى اختيار عنصر من القائمة.", vbExclamation
            Exit Sub
        End If
    
        ' تحديد المفتاح الخاص بكل مجموعة من النماذج
        Dim prefix As String
        If Me.KH.Visible Then
            prefix = "FO"  ' النموذج المختار من KH
        ElseIf Me.TW.Visible Then
            prefix = "TW"  ' النموذج المختار من TW
        End If
    
        ' فتح النموذج بناءً على الفئة المختارة
        Select Case selectedIndex
            Case 0
                OpenFormWithPrefix prefix & "1"
            Case 1
                OpenFormWithPrefix prefix & "2"
            Case 2
                OpenFormWithPrefix prefix & "3"
            Case 3
                OpenFormWithPrefix prefix & "4"
            Case 4
                OpenFormWithPrefix prefix & "5"
            Case Else
                MsgBox "النموذج غير موجود."
        End Select
    End Sub
    
    Private Sub OpenFormWithPrefix(formName As String)
        If Not IsFormOpen(formName) Then
            DoCmd.OpenForm formName
        End If
    End Sub
    
    Private Function IsFormOpen(formName As String) As Boolean
        ' التحقق إذا كان النموذج مفتوح بالفعل
        On Error Resume Next
        IsFormOpen = (CurrentProject.AllForms(formName).IsLoaded)
        On Error GoTo 0
    End Function
    
    Private Sub Form_Load()
        ' إعادة تعيين مربعي القوائم عند فتح النموذج
        Me.lstForms1.RowSource = "" ' تفريغ مربع القائمة الأول
        Me.lstForms2.RowSource = ""
        Me.lstForms3.RowSource = ""
        Me.lstForms4.RowSource = ""
        Me.lstForms5.RowSource = ""
        Me.lstForms6.RowSource = ""
        Me.lstForms7.RowSource = ""
    End Sub

    ما تم هو إضافة منطق لفتح النماذج بناءً على الاختيارات المختلفة ، بالإضافة إلى تخصيص الفتح حسب المجموعة المختارة .

     

  15. 1️⃣ فيما يخص التبويب Print Options :-

    P1.png.c81f46be56ef8de374067a4772f5f9c9.png

    • الأجزاء المظللة باللون الأصفر ( Top , Bottom , Left , Right ) :
      وظيفتها التحكم بهوامش الصفحة المراد طباعتها .
    • الأجزاء المظللة باللون الأزرق ( Print Data Only ) :
      يتم طباعة البيانات فقط دون تنسيقات أو إضافات ( مثل الخطوط ، العناوين ، أو النصوص الثابتة ) .
    • الأجزاء المظللة باللون الأخضر ( Print Form Only ، Print Datasheet Only ) :
      * Print Form Only : لطباعة جزء النموذج فقط .
      * Print Datasheet Only : لطباعة جزء الجدول أو ورقة البيانات فقط .
      باختصار هذا الخيار مخصص للنماذج المنقسمة (Split Form) ، حيث يمكن طباعة عرض واحد فقط من النموذج

       




    2️⃣ أما التبويب Columns :-


    P2.png.81947157b846fa3840c387370586418a.png

    • الأجزاء المظللة باللون الأخضر Grid Settings تتيح لك التحكم بعدد الأعمدة المطبوعة في الورقة . على سبيل المثال كما في ( الكتيبات أو التقارير المصفوفة )

      Number of Columns ( عدد الأعمدة ) :-

      يحدد عدد الأعمدة التي يتم تقسيم الصفحة إليها عند الطباعة . القيمة الافتراضية هي 1 ، ويمكنك زيادتها لطباعة البيانات في عدة أعمدة ( مثل طباعة قائمة عناوين ) .

      Row Spacing ( تباعد الصفوف ) :-

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

      Column Spacing ( تباعد الأعمدة ) :-

      يحدد المسافة بين الأعمدة . يستخدم عند تعيين أكثر من عمود لضمان وجود فراغات مناسبة بينها .
       

    • الأجزاء المظللة باللون البنفسجي Column Size :

      Width ( العرض ) :-

      يحدد عرض كل عمود . وهو ما قد يؤثر على حجم البيانات المعروضة في العمود .

      Height ( الإرتفاع ) :-

      يحدد ارتفاع العمود . يستخدم لتحديد مساحة القيمة المعروضة داخل العمود.

      Same as Detail ( مطابق للتفاصيل ) :-

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

    • الأجزاء المظللة باللون البرتقالي Column Layout :
       

      Down , then Across ( الإتجاه من الأعلى للأسفل ، ثم عبر الأعمدة ) :

      حيث يتم ملء البيانات من الأعلى إلى الأسفل في العمود الأول ، ثم ينتقل إلى العمود التالي .

      Across , then Down (عبر الأعمدة أولاً ، ثم الإتجاه من الأعلى للأسفل ) :

      حيث يتم ملء البيانات في الصف الأول من كل الأعمدة ، ثم ينتقل إلى الصف التالي .
       



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

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

     

    • Like 2
  16. 18 دقائق مضت, tiger wanted said:

    من فضلك ارجو الايضاح فى انتظار الرد 

    هل جربت الكود يا صديقي أولا ...

     

    الذي تم هو فقط تعريف المتغير db كما يلي

    Dim db As DAO.Database
    Set db = CurrentDb()

     

    لم اقم بتجربته ، ولكن هذا ما توضح لي ، وانت صاحب التجربة للعودة لنا بالنتيجة .

  17. 12 دقائق مضت, jo_2010 said:

    فى استعلام

    انشئ استعلام جديد ، والصق هذا الاستعلام SQL وجرب النتيجة

     

    SELECT [Tbl_Tests 2025].Tcode, [Tbl_Tests 2025].Tname, [Tbl_Tests 2025].Out_Lab, IIf([Out_Lab]<50,75,IIf([Out_Lab] Between 51 And 100,100,IIf([Out_Lab] Between 101 And 150,125,Null))) AS NewField
    FROM [Tbl_Tests 2025];

     

×
×
  • اضف...

Important Information