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

Lamyaa

02 الأعضاء
  • Posts

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

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

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

  1. 4 ساعات مضت, أبو إبراهيم الغامدي said:

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

    لنقم بتغيير طريقة السؤال على النحو التالي..

    ماهو المبلغ الذي إذا أضفنا عليه الضريبة (%15) صار (1000)؟

    وللإجابة على هذا السؤال؛ يجب أن نفهم أنه لا يمكن أن نضرب النسبة المجردة (0.15) في (1000) لسببين

    الأول أن هذه العملية تعيد (%15) بالنسبة إلى (1000) وليس إلى المبلغ المطلوب إضافة النسبة إليه ليصبح ألفا..

    الثاني أن ناتج هذه العملية يعيد مبلغ النسبة إلى الأف، وحاصله (150). وهنا لا يمكن بتاتا  القول أن المبلغ المطلوب هو (1000-150)! هذا فضيع..

     إذا ماذا نعمل؟! وكيف نجيب على السؤال؟!

    في العمليات المحاسبية لا نستخدم النسبة المجردة (0.15) بل نستخدم (1.15)!

    إذا أردنا أن نعيد مبلغ 1000 مضافاً إليه ضرييبة %15 فستكون العملية الحسابية: 1000*1.15  

    إذا أردنا أن نعرف المبلغ الذي إذا أضفنا إليه %15 صار 1000 فستكون العملية الحسابية: 1.15/1000

    MSACCESS_TuTgEEVssp.gif.704ad0c96016245b2ca0dc50b3511042.gif

    أرجو أن تكون الفكرة وصلت!

    أستاذي الفاضل @أبو إبراهيم الغامدي

    جزالك الله خيرا .. قلت ما لم أستطع أن أقوله وأجبت فأجدت

    بارك الله فيك .. بالفعل هو ما كنت أحتاج إلى فهمه

     

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

    تحمل الضريبة.accdb

    • Like 3
  2. 10 ساعات مضت, احمد الفلاحجي said:

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

    اتفضلى استاذه @Lamyaa ان شاء الله يكون ما تريدين

    image.png.9457059db8fbe75936604e4a5bafaea7.png

    Private Sub FullPrice_LostFocus()
    
    x = Val(Me.FullPrice) * 0.15
    
    z = x * 0.15
    
    Me.Price = Val(Me.FullPrice - x) + z
    Me.VAT = Val(Me.FullPrice * 0.15) - z
    Me.Amount = Val(Me.Price) + Val(Me.VAT)
    
    End Sub

    بالتوفيق

    تحمل الضريبة.accdb 544 kB · 1 download

    أستاذي الفاضل @احمد الفلاحجي

    جزيل الشكر والتقدير لك .. بارك الله فيك

    مجموع قيمة الخدمة + الضريبة يجب أن يكون نتيجة حاصل ضرب قيمة الخدمة بدون الضريبة * 15% والناتج يجب أن يكون مساويا لقيمة الخدمة قبل تطبيق الضريبة

    MwRlqiO.png

    أقدر وأثمن جهودك أستاذي الفاضل .. لك مني خالص الدعاء

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

     

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

    nqvVTiV.png

    مثال: قيمة الخدمة قبل تطبيق الضريبة 1000

    أريد تقسيم هذا 1000 إلى الحقلين قيمة الخدمة بدون الضريبة وإلى حقل الضريبة

    حينما فكرت في تطبيق الخصم المباشر من 1000 بمقدار 15% كان الناتج:

    1000*0.15 = 150 وبالتالي

    حقل قيمة الخدمة = 1000 - 150 = 850

    حقل الضريبة = 150

    المجموع = 1000

    ولكن الإشكالية أن الضريبة تطبق على حقل قيمة الضريبة مما يجعل الناتج غير صحيح فحينما أضيف الضريبة سيكون الناتج:

    850*0.15 = 127.5

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

    127.5+850 = 977.5

    أي أن الناتج مختلف عن قيمة الخدمة قبل تطبيق الضريبة

    977.5 <> 1000

    في محاولة بائسة قمت بتغيير طريقة احتساب الضريبة الأولية بالضرب في 0.13 ولكن المجموع أصبح بالزيادة .. (يمكن الاطلاع على الملف المرفق)

    يا الله صداااع

    هل من طريقة يمكن من خلالها توزيع قيمة الخدمة بحيث يكون مجموع (قيمة الخدمة *0.15 + قيمة الخدمة)  مساويا إلى قيمة الخدمة قبل تطبيق الضريبة.

     

    لدي إحساس أن الفكرة لن تصل 😞

     

     

    تحمل الضريبة.accdb

  4. 48 دقائق مضت, Mohameddd200300 said:

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

    يعني ابغا اختصار  في الكود  لما اضغط على زر في النموذج  يضغطلي زر الوندز  وا حرفm مع بعض  

    زي اختصار كنتر وa. وز كذا   شكرا لك 

     

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

    Option Explicit
    
    Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long
    
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Private Const KEYEVENTF_KEYUP = &H2

    وفي كود الزر ضع :

       'مثلا أنت تريد Win+M
       
        keybd_event 91, 0, 0, 0
        keybd_event 77, 0, 0, 0
        DoEvents
    
        keybd_event 91, 0, KEYEVENTF_KEYUP, 0
        keybd_event 77, 0, KEYEVENTF_KEYUP, 0
        DoEvents

     

     

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

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

    في حال كان هناك أكثر من فرع فيمكن أن تتم عملية مزامنة بين الفروع والمقر الرئيسي أو ما يسمى في بعض البرامج العالمية (Pulling) وذلك من خلال تسجيل عمليات المبيعات و المشتريات والحركات الأخرى في جداول إضافية يتم مزامنتها من السيرفر الرئيسي (الجهاز الذي تم تثبيت النسخة الأساسية).

    وللمعلومية في كثير من الأحيان يكون MSSQL Express كافيا.

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

    أما عن سؤالك الثاني:

    نعم سيحتاج كل فرع أن تثبت نسخة واحدة من سيرفر MSSQL  على أحد الأجهزة والبقية يتم ربطهم به.

    قارن بين قواعد البيانات الأخرى فقد تجد ضالتك في نوع آخر من القواعد مثل SQLite

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

    http://erikej.blogspot.com/2011/01/comparison-of-sql-server-compact-4-and.html

     

    • Like 4
  6. منذ ساعه, Eng.Qassim said:

    لا ... السؤال واضح ست لمياء

    يريد ربط قاعدة البيانات على mysql  في نظام Mac

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

     

    شرح اليوتيوب الذي وضعته هو إلى MSSQL وليس MySQL

  7. 19 ساعات مضت, AHMED0155079 said:

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

    كل عام وانتم بخير

    لو سمحتوا عندي مشكله بربط اكسيس بي mysql حيث ان الامر يعمل بشكل جيد علي ويندوز انما لا استطيع التشغيل علي نظام ماك 

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

     

    شكرا مقدماً

     

     

    برنامج قواعد البيانات ميكروسوفت أكسيس لا يعمل على الماك !

    قد يكون السؤال غير واضح

  8. 12 ساعات مضت, احمد الفلاحجي said:

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

    كل عام وحضرتك طيبه استاذه @Lamyaa عيدك مبارك

    بسبب الحقول الفارغه

    اتفضلى تم التعديل فالكود والاستعلام

    Private Sub cmdFilter_Click()
    
    DoCmd.ApplyFilter "", "[ID] Like '*" & [txtID] & "*'" & _
    " AND [SName] Like '*" & [txtSName] & "*'" & _
    " AND [Gender] Like '*" & [txtGender] & "*'" & _
    " AND nz([A1],'') Like '*" & [txtA1] & "*'" & _
    " AND nz([A2],'') Like '*" & [txtA2] & "*'" & _
    " AND nz([A3],'') Like '*" & [txtA3] & "*'" & _
    " AND nz([A4],'') Like '*" & [txtA4] & "*'" & _
    " AND nz([A5],'') Like '*" & [txtA5] & "*'" & _
    " AND nz([A6],'') Like '*" & [txtA6] & "*'" & _
    " AND nz([A7],'') Like '*" & [txtA7] & "*'" & _
    " AND nz([A8],'') Like '*" & [txtA8] & "*'" & _
    " AND nz([A9],'') Like '*" & [txtA9] & "*'"
    
    
    End Sub

    بالتوفيق

     

    Filters(1).accdb 1.59 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a · 4 downloads

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

    5 ساعات مضت, مبرمج سابق said:

    ماشاء الله استاذ احمد

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

    " AND [Gender] Like '*" & [txtGender] & "*'" & _

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

    والامر يعمل بدون مشاكل والسبب انها استخدمت حرف f للانثى و m للذكر

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

    لذا في مثل هذه الحالات عندما نستخدمة الكلمة كاملة لا نستخدم * مع like وانما نستخدم nz مع النجمة ليكون الامر

    " AND [Gender] Like '" & Nz([txtGender], "*") & "'" & _

    مجرد ايضاح بسيط ربما يفيد احدكم

    اخيرا قد يقول قائل انا اريد استخدام female و male ولكن لا ارغب في كتابة الكلمة كاملة ارغب فقط بكتابة الحرف الاول فقط فما هو الحل

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

    تحياتي

     

     

    النجمة1.png

    النجمة2.png

    أستاذي الفاضل .. جزيل الشكر والتقدير على إثراءك الرائع والمفيد

    كل عام وأنتم بخير .. وتقبل الله طاعاتكم

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

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

     

    هذه صورة توضيحية:

    jLbQC7A.png

    وهذه هو الكود الذي استخدمه للفلترة:

    Private Sub cmdFilter_Click()
    
    DoCmd.ApplyFilter "", "[ID] Like '*" & [txtID] & "*'" & _
    " AND [SName] Like '*" & [txtSName] & "*'" & _
    " AND [Gender] Like '*" & [txtGender] & "*'" & _
    " AND [A1] Like '*" & [txtA1] & "*'" & _
    " AND [A2] Like '*" & [txtA2] & "*'" & _
    " AND [A3] Like '*" & [txtA3] & "*'" & _
    " AND [A4] Like '*" & [txtA4] & "*'" & _
    " AND [A5] Like '*" & [txtA5] & "*'" & _
    " AND [A6] Like '*" & [txtA6] & "*'" & _
    " AND [A7] Like '*" & [txtA7] & "*'" & _
    " AND [A8] Like '*" & [txtA8] & "*'" & _
    " AND [A9] Like '*" & [txtA9] & "*'"
    
    
    End Sub

    مثلا يوجد لدي خمسة سجلات لديها في الحقل A3 قيمة A

    حينما اضغط زر تطبيق الفلتر يظهر لي سجلين فقط ، حتى لو جعلت جميع الحقول فارغة وطبقت الفلترة لن يظهر إلا سجلين فقط

     

    sKkdOYk.png

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

     

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

    Filters.accdb

  10. 23 ساعات مضت, Moosak said:

    هناك حيلة صغيرة يا أخي @waledstar سأعلمك إياها بدون الحاجة لبرامج خارجية 🙂 

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

    وثم تفصل بينها بأداة فاصل الصفحات (image.png.a6c0d661c21983789471012d0605d910.png) .. فيظهر لك الشكل النهائي بهذه الطريقة :

    image.png.f7ff792da734a7c42ba27ad1f56541a2.png

    بعدها تقوم بتصدير التقرير التجميعي على صيغة PDF فيحصل المطلوب ☺️

    وهذا مثال للطريقة :

    Many Reports in 1 PDF.accdb 520 kB · 16 downloads

    الفكرة جميلة وجديدة علي..  ولكن لاحظت أن هناك صفحة فارغة بين كل تقرير!

  11. في 28‏/6‏/2022 at 03:28, waledstar said:

    انا فعلا نزلت البرنامج ممتاز جدا ونفذت الكود على سطر CMD وبالفعل تم عمل دمج لاكثر من ملف PDf
    https://drive.google.com/file/d/1EM6IQUr0I8ugusnlC48OZWNE7YUzOsdf/view?usp=sharing

     

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

    عن طريق الشل

     

    أنا أستخدمه بهذه الطريقة:

    Dim wsh As Object
    Dim str2PDF As String
    Set wsh = VBA.CreateObject("WScript.Shell")
    Dim waitOnReturn As Boolean: waitOnReturn = True
    Dim windowStyle As Integer: windowStyle = 1
    
    str2PDF = "cmd.exe /C 2PDF.exe -src " & Chr$(34) & " C:\Temp4\*.pdf" & Chr$(34) & " -dst " & Chr$(34) & "c:\temp5" & Chr$(34) & " -pdf multipage:append combine:" & Chr$(34) &  "اسم الملف التجميعي.pdf" & Chr$(34) & " , windowStyle, waitOnReturn"
    txtCMD = str2PDF
    
    wsh.Run str2PDF
    

    بحيث الملفات التي أود دمجها تم حفظها مسبقا في مجلد c:\temp4

    ويتم حفظ الملف الناتج في مجلد c:\temp5

  12. 7 ساعات مضت, ابو جودي said:

    اولا بارك الله فى عمرك وعلمك وعملك وجزاكم كل خير :fff:

    ثانيا انا اقل طويلب علم ولست مبرمجا على الاطلاق مجرد هاو

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

    استخدمت الروتين الاتى فى وحدة نمطية

    Function OpenReport(ByRef rptName As String, ByRef qryName As String)
    
    On Error GoTo ErrorHandler
    
      DoCmd.OpenReport rptName, acViewPreview, , , , qryName
      
    procDone:
      Exit Function
    ErrorHandler:
        MsgBox$ Err.Number & ": " & Err.Description
        Resume procDone
    End Function

    على ان يتم استدعاءه بالسطر الاتى 

    OpenReport("rpt2", "Query2")

    نفس فكرة حضرتك

    طبعا بسبب الغموض وعدم التوضيح الكافى كنت فى انتظار اضافة المرفق 

    Chang Record Sources Report VBA(V3).mdb 456 kB · 4 downloads

    ما شاء الله يا أبا جودي .. كعادتك تبلور الأفكار وتخرج بالخلاصة .. بارك الله فيك ونفع بك 🌹

    منذ ساعه, Eng.Qassim said:

    اذن انت من جيل (عيرتني بالشيب وهو وقار ) ...

    ولست من جيل .. (اشهد الا امرأة اتقنت اللعبة الا انت )

    اعتزازي واحترامي للست لمياء

    😁😂 سرني تواجدكم

    منذ ساعه, أبو عبدالله الحلوانى said:

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

    حقيقة كنت مار من هاهنا 👉 👈 فسمعت صوت احدهم ينادي علي الصعايدة فلبيت فكان النداء لصعيدي (مش من بلدنا :biggrin:)

    عموما لا بأس فالصعايدة كلهم أخوة :biggrin:

    وبعد اعتقد ان أختنا تريد شيئا كهذه الفكرة - ان كان فهمي لما تعني صحيحا فهي ايضا صعيدية - لان الصعايدة يفهمون بعض :biggrin:

    123.gif.936669fd901e26208d65603b7836b34f.gif

     

    PassRepName.accdb 1.1 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a · 4 downloads

    فكرة رائعة وهي تؤدي المطلوب بشكل رائه .. فلك مني جزيل الشكر والتقدير 🌹

    • Thanks 1
  13. في 27‏/6‏/2022 at 00:16, Barna said:

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

    Dim db As DAO.Database
    Dim qdf As DAO.QueryDef
    Dim strSQL1 As String, strSQL2 As String
    Set db = CurrentDb
    db.QueryDefs.Delete "qr1"
        If com1 = "التقرير الاول" Then
            strSQL1 = "SELECT tblA.ID, tblA.fld FROM tblA;"
            Set qdf = db.CreateQueryDef("qr1", strSQL1)
        ElseIf com1 = "التقرير الثاني" Then
            strSQL2 = "SELECT tblB.ID, tblB.fld FROM tblB;"
            Set qdf = db.CreateQueryDef("qr1", strSQL2)
        End If
    DoCmd.OpenReport "rptFlayReport", acViewPreview

    وهذا المثال .....

     

    Chang Record Sources Report.mdb 344 kB · 3 downloads

    الفكرة تعمل بشكل ممتاز .. جزيل الشكر والتقدير على مجهودك

    12 ساعات مضت, مبرمج سابق said:

    ماشي يا استاذة خلينا نتصور الامر حسب فهمي

    عندك 10 تقارير مبنية على استعلامين اثنين مثلا q_1 و q_2

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

    وعند امر فتح التقرير يتم فتح التقرير المكتوب اسمه في الحقل النصي ويكون مصدر سجلاته الاستعلام q_1 طالما فتحناه من فورم 1 ويكون مصدرة q_2 اذا فتحناه من فورم2

    اذا كان فهمي صحيح ممكنى عمل ذلك وبكود مختصر

    نحتاج الى متغير في بداية الاكواد اي يمكن استخدامه في كافة احداث النموذج

    Dim x As String

    في حدث بعد التحديث للقائمة نضع الامر التالي

    Me.tx2 = Me.c2.Column(0)
    x = Me.tx2
    
    tx2 هو الحقل النصي
    co القائمة المنسدلة
    x هو المتغير

    في زر فتح التقرير نضع الامر التالي

    Dim strSQL As String
    strSQL = "q_1"
    DoCmd.OpenReport x, acViewPreview, , , , strSQL

    وفي النموذج الثاني نغير q_1 الى q_2

    ثم نفتح التقارير في وضع التصميم وحدث فتح التقرير نضع الامر التالي

    Me.RecordSource = Me.OpenArgs

    واذا كنت لم افهم فاعتذر مقدما

    تحياتي

    أستاذي الفاضل الطريقة التي ذكرتها أفادتني كثيرا .. بسيطة وعملية .. لك جزيل الشكر والتقدير 🌹

  14. 6 ساعات مضت, مبرمج سابق said:

    والله ياعم قاسم انا فهمي على قدي

    اذا اردنا متغيير عام نضع الامر التالي في بداية اي وحدة نمطية

    Public x As String

    ثم في امر فتح نضع

    x = "اسم التقرير"
    DoCmd.OpenReport x, acViewPreview

     

    الفكرة أستاذي ليست في جعل المتغير عاما أو خاصاً .. الفكرة كيف أمرر هذا المتغير على هذا السطر البرمجي:

    ففي الحالة العادية يتم كتابة اسم التقرير مباشرة

    Reports![rptStudents].Report.RecordSource = "qryStudents2"

    ولكن في حال كان اسم التقرير متغيير بناء على تغير المعطيات فكيف يمكن تمرير هذا المتغير على السطر التالي:

    Reports![X].Report.RecordSource = "qryStudents2"

     

  15. منذ ساعه, مبرمج سابق said:

    نعم احسنت اخي قاسم

    الحقيقة ان الموضوع فعلا يحتاج ايضاح كما اشار مستر @Moosak

    على كل حال كمداخلة اخيرة الى ان تتضح الامور للاخوة

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

    ونرغب ان يتم التغيير عن طريق الكود

    DoCmd.Rename "r_2", acReport, "companies"

    في هذا الامر لدينا ثلاث معلمات

    NewName هنا يساوي r_2

    ObjectType وهو نوع الكائن و هنا تقرير " بعض قدامي المبرمجين بدلا من تحديد نوع الكائن يضع القيمة للكائن وهنا رقم 3 "

    OldName وهو اسم التقرير القديم companies

    تحياتي ولنا لقاء في موضوع اخر

     

    فكرة تغيير اسم التقرير رائعة في حال كانت التقرير ذا تصميم واحد، ولكن في حالة كان التقرير مختلف فلن ينفع

  16. 8 ساعات مضت, مبرمج سابق said:

    السؤال مبهم قليلا

    ولكن وفق فهمي للسؤال

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

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

    اذا كان فهمي صحيح ممكن استخدام البارامتر السادس في امر فتح التقرير

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

    1. ReportName
    2. View
    3. FilterName
    4. WhereCondition
    5. WindowMode
    6. OpenArgs

    والسادس هو مايهمنا

    والفكر ارسال قيمة محددة مع امر الفتح على سبيل المثال

    DoCmd.OpenReport "companies", acViewPreview, , , , 1
    
    او هكذا
    
    DoCmd.OpenReport "companies", acViewPreview, OpenArgs:=1

    وفي امر فتح للتقرير

    If Me.OpenArgs = 1 Then
    Me.Report.Caption = "test"
    Me.Report.RecordSource = "q_1"
    Else
    Me.Report.Caption = "kh"
    Me.Report.RecordSource = "companies"
    End If

     

     

    111.png

    333.png

     

    أستاذي الفاضل جزيل الشكر والتقدير على تفاعلكم

     

    يبدو أنني لم أوفق في شرح المطلوب بشكل جيد

     

    يوجد لدي عدة تقارير : rptStudents, rptStudents3, rptStudents5, rptStudents6,... etc

    مصدر البيانات لهذه التقارير إما qryStudents1 أو qryStudents2

    اسم التقرير المراد فتحه مكتوب في حقل نصي Me.txtReportName (يتك كتابة اسم التقرير آليا عند تغيير ComboBox)

     

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

    'قمت بتعريف متغير لتخزين اسم التقرير فيه

    Dim strReportName As String

    strReportName = Me.txtReportName

    ' سأقوم بفتح التقرير بناء على الاسم الموجود في المتغير


    DoCmd.OpenReport strReportName, acViewReport

     

    ' والآن أريد أن أمرر مصدر البيانات للتقرير الذي تم تحديده (أي تقرير)

    وأن أجعل مصدره هو الاستعلام qryStudents1:


    Reports![ct17R2].Report.RecordSource = "qryStudents1"

    أي أنني سأحتاج تغيير اسم التقرير الذي لونته بالأحمر.

     

    وسأقوم بتطبيق الخطوات كلها في نموذج آخر frmStudents2

    ولكن سيتغير مصر الاستعلام إلى استعلام آخر

    Reports![ct17R2].Report.RecordSource = "qryStudents2"

     

    آملأن أكون قد استطعت توضيح المطلوب

    6 ساعات مضت, Eng.Qassim said:

    وعليكم السلام

    مشاركة مع اخي @مبرمج سابق

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

    Reports(strReportName).Caption = "ct17R2"

     

    جزيل الشكر على تفاعلك

     

    لا أقصد تغيير عنوان التقرير إنما اسم التقرير قبل تغيير مصدره ..

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

    • Confused 1
  17. السلام عليكم ورحمة الله وبركاته

     

    كيف أجعل اسم التقرير متغير (الملون بالأحمر)

    كيف استخدم المتغير strReportName  بدلا عن اسم التقرير "ct17R2"

     

    Dim strReportName As String

    strReportName = Me.ReportName

    ' فتح التقرير
    DoCmd.OpenReport strReportName, acViewReport

    ' تغيير مصدر التقرير برمجيا
    Reports![ct17R2].Report.RecordSource = "qryStudents"

     

  18. 13 ساعات مضت, MuhammedKhaled25 said:

    البرنامج لا يعمل مع صيغه accdb ما حل هذه المشكله

    خذ نسخة احتياطية من قاعدة البيانات

    أعد تسمية امتداد ملف قاعدة البيانات إلى mdb

    بعدها يمكنك تطبيق الحماية

    بعد الانتهاء قم بإعادة تسمية امتداد القاعدة إلى accdb

  19. 8 ساعات مضت, jjafferr said:

    وعليكم السلام 🙂

     

    تستطيع استعمال التسمية بطريقتين:

    1.

    image.png.b0e308179f42367a232582497794c607.png

    .

    و

    2.

    image.png.6b93c69f9183307180aa4dacf67d7a59.png

    .

    ثم تختار :

    image.png.53da7d3d03c770e34f053756a6cc34e6.png

    .

    جعفر

    أستاذ جعفر

    شكر لتعقيبك

     

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

×
×
  • اضف...

Important Information