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

عبد الفتاح كيرة

الخبراء
  • Posts

    3,015
  • تاريخ الانضمام

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

  • Days Won

    4

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

  1. 18 دقائق مضت, Shivan Rekany said:

     

    استأذن من استاذنا @عبد الفتاح كيرة

    ما رأيك عن هذا

    هل هذا ماتريد

    Capture.PNG.8243ca056533dfffa7831da2d25d3b72.PNG

     

    تفضل بدون استئذان أستاذ @Shivan Rekany

    منكم نستفيد

    أرسل المرفق لنتعلم

     

    • Like 1
  2. يمكنك تعديل تصميم الجداول

    مثلا جدول الهدايا يكون حقوله هكذا

    رقم

    رقم الطالب

    الهدية الأولى

    الهدية الثنية

    الهدية الثالثة

    فيكون لكل طالب سجل واحد أفقى به جميع الهدايا التى حصل عليها

    و حينئذ يمكن تجميع الحقول بسهولة

    *ملحوظة

    تسمية حقل بمسمى  no خطأ

    فى مواضع معينة سيفسر أكسيس اسم الحقل على أنه = "لا"

     

     

     

    • Like 1
  3. 3 ساعات مضت, أمير2008 said:

    طالما أن الأسماء المشتركة  في الجدولين الأول T1  و الجدول الثاني T2  لها نفس ID

    فيمكنك عمل استعلام توحيد :

    استعلام لكافة الأسماء بالجدول الأول عدا المودود بالجدول الثاني + استعلام لكافة الأسماء بالجدول الثاني

    
    SELECT [T1].Id,[T1].name
    FROM T1 LEFT JOIN T2 ON [T1].ID = [T2].ID
    WHERE (((Exists (SELECT * FROM T2 where [T2].[id]=[T1].[id] ))=False));
    union
    SELECT [T2].Id,[T2].name
    FROM T2 LEFT JOIN T1 ON [T2].ID = [T1].ID;

     

    لو حذفت الشرط

    WHERE (((Exists (SELECT * FROM 2 where [2].[id]=[1].[id] ))=False));

    لا فرق

    جرب

  4. أخى @waelgma عليكم السلام و رحمة الله تعالى و بركاته
    مرحبا بك

    اكتسب هذه المعلومات

    like  تستخدم مع النجمة  للبحث فى حقل نصى

    و ليس كما استخدمتها فى حقل id

     

     

    استخدم الاستعلام الفرعى بكل بساطة

    ضع فى خانة المعيار من الاستعلام بدلا من جملة like ما يلى

    Not In (SELECT [1].ID
    FROM 1)

    أخبرنا بالنتائج

    عفوا

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

    ولا أظن هذا طلب الأخ

    ولو كان كذلك

    فالجملة هى

    SELECT [1].ID, [1].name
    FROM 1
    union
    
    
    SELECT [2].ID, [2].name
    FROM 2;

    و النتيجة كما بالصورة

    union.PNG.f7db2ee66be738803786ab46bd73afce.PNG

  5. الإخوة الأساتذة الكرام

    المشكلة لدينا لم تكن جلب أسماء التقارير

    المشكلة كانت جلب التسميات التوضيحية للتقارير

    لأن أسماء التقارير قد تكون غير مفهومة للمستخدم

    وقد توصلنا لحل مذهل لهذه المشكلة

    باستخدام وظيفة تفتح التقرير مع بارامتر الإخفاء فى وضع التصميم للحصول على التسمية التوضيحية لكل تقرير

    وتعبئة الكمبوبوكس بعمودين :اسم التقرير و تسميته التوضيحية

    وهذا قدر من النجاح له عيوبه

    لكنها للآن طريقة فريدة

    أدعو الأساتذة لتطويرها

    أو استبدالها بطريقة أفضل

    لكن تكون فى نفس إطار حل المشكلة الذى ذكرته

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

    هذا هو السؤال

  6. هناك طريقة أخرى ربما نفكر فيها لاحقا إن شاء الله

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

    و نعمل استعلاما يجعل هذا الجدول دائم التحديث

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

    و الله المستعان

    • Like 1
  7. الحمد لله الذى بنعمته تتم الصالحات

    بالمناسبة أبا جودى

    لم تعمل الوظيفة من خلال الاستعلام

    لأن بها سطرا يستدعى التقرير فى حالة التصميم

    و هذا لا يتم إلا من خلال vba

     

  8. الان, ابوخليل said:

    سلمت اناملك استاذ عبدالفتاح

    لايوجد ""لا يمكن"" في بيئة البرمجة

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

    يبدو أن هذه هى الطريقة الوحيدة للحصول على التسمية التوضيحية للتقرير

  9. أبشروا بما يسركم جميعا

    بفضل الله

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

    الثانى اسم التقرير

    والأول التسمية التوضيحية للتقرير الموجودة بنافذة الخصائص

    والتشغيل

    بارك الله فيكم

    إنجاز رائع بفضل الله ثم بفضل اقتراحات أبى خليل

    تفضل

    جلب أسماء التقارير و أسمائها التوضيحية العربية و تشغيلها من كمبوبوكس

    كود أسماء كل 8التقارير.rar

     

    • Like 3
  10. أبشر بما يسرك أبا خليل

    هذه وظيفة مخصصة لجلب التسمية التوضيحية للتقارير

    Public Function GetReportCaption(RptName As String) As String
    Static RptCaptions As Collection

        If RptCaptions Is Nothing Then Set RptCaptions = New Collection
        On Error Resume Next
        GetReportCaption = RptCaptions(RptName)
        If Err.Number = 0 Then Exit Function
        On Error GoTo 0

        DoCmd.OpenReport RptName, acViewDesign, , , acHidden
        RptCaptions.Add Reports(RptName).Caption, RptName
        DoCmd.Close acReport, RptName

        GetReportCaption = RptCaptions(RptName)
    End Function
     

    وهذا استدعاؤها من نفس كود الكمبوبوكس

    Private Sub Form_Load()
    Dim newvallist As String, myrpt As String
    newvallist = ""
    Dim obj As AccessObject

    For Each obj In CurrentProject.AllReports
    myrpt = GetReportCaption(obj.Name)
    newvallist = newvallist + Chr(34) + myrpt + Chr(34) + ";"
    Next obj
    Me.objCombo.RowSource = "value list"
    Me.objCombo.RowSource = newvallist
    Me.objCombo.Value = Me.objCombo.ItemData(1)
    End Sub
     

    طبعا أنا مؤقتا وضعت التسمية التوضيحية مكان اسم التقرير

    المطلوب الآن

    هو 

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

    ووضع التسمية فى العمود الثانى له

    يعنى خطوة واحدة إضافية و نعلن الانتصار بعون الله

    المرفق

    كود أسماء كل 7التقارير.rar

     

    • Like 2
  11. 56 دقائق مضت, ابوخليل said:
    منذ ساعه, ابا جودى said:

     

    تفضل  تم التعديل

    كود أسماء كل التقارير4.rar

    هذا غير فعال مع قاعدة بها 50 تقريرا مثلا

    يبدو أن التسمية التوضيحية غير عنوان التقرير

    caption  = عنوان التقرير

    و يمكن الوصول إليها من داخل التقرير

    me.caption= "أبو خليل"

    أما الوصف أو التسمية التوضيحية فلا

  12. أعتقد أننا نضيف فى الكود حقلا ثانيا

    و نحاول الوصول إلى خاصية التسمية التوضيحية للتقرير

    و هى إحدى خواص التقرير كالاسم و الطول و العرض .....الخ

    نملأ  بها الحقل الثانى

    التشغيل يبقى تبعا للحقل الأول مع إخفاء و إظهار الثانى الذى به التسمية

    و الله أعلم

     

     

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

    هذا كود منقول من أحد الكتب

    يجلب أسماء كل التقارير فى القاعدة

    ويشغلها من كمبوبوكس

    الكود

    فى حدث عند التحميل للنموذج
    Private Sub Form_Load()
    Dim newvallist As String
    newvallist = ""
    Dim obj As AccessObject
    For Each obj In CurrentProject.AllReports
    newvallist = newvallist + Chr(34) + obj.Name + Chr(34) + ";"
    Next obj
    Me.objCombo.RowSource = "value list"
    Me.objCombo.RowSource = newvallist
    Me.objCombo.Value = Me.objCombo.ItemData(0)
    
    
    End Sub
    ثم فى حدث بعد التحديث للكمبوبوكس
    لفتح التقارير حسب الاسم المختار
    Private Sub objCombo_AfterUpdate()
    DoCmd.OpenReport Me.objCombo, acViewPreview
    End Sub

    الملف المستخدم 2003   -  2007

    كود أسماء كل تقارير القاعدة الحالية.rar

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

    كود أسماء كل 8التقارير.rar

    • Like 3
  14. اسمح لى

    البحث بدالة dlookup فى عشرة حقول

    فى جدول أو استعلام "code" 

    بشرط [pn]=forms!frm_dataentry!Combopn

     

    الفاصل "|"

    لاستخدامه فى تقسيم الحقول بعد ذلك بدالة split 

    و هى تطلب 

    1 - النص المراد تقسيمه

    2 - علامة معينة تفصل عندها 

    والعلامة هنا هى "|" 

    بعد التقسيم ترجع عشرة قيم  

    تخزن فى عشرة متغيرات فى المصفوفة

    نعيد إسنادها للحقول المطلوبة مرة أخرى

     

     

    • Like 2
  15. الآن فى الملف الأصلى كتب فى مصدر بيانات مربع النص

    =DLast("[zdate]";"Transactions";"[Qty in]<>0")

    جاءت النتيجة

    21/03/2017

    وهى خطأ

    و باستخدام دالة الأخ أبي إبراهيم

    جاءت النتيجة

    13/04/2017  و هى صواب

    مع أن  جملة الاستعلام  واحدة

    هل من تفسير لذلك

    يعنى التعبير لا يعمل فى مصدر بيانات مربع النص

    و تعمل من خلال الكود

    هل هناك ميزة للعمل من خلال الأكواد فى مثل هيك حالة؟

    is.PNG.faaf6d3154403a970b0aaa041d936ac9.PNG

     

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

    لما رأيت هذه المشاركة خشيت أن تتوه فى الزحام

    من إبداعات الأستاذ جعفر

    الكود مع تعليقى عليه

    فى رأس التقرير

    ترى الناتج فى عرض الطباعة

    Private Sub ReportHeader_Format(Cancel As Integer, FormatCount As Integer)
    'الإعلان عن مصفوفة نصية
    Dim x() As String
        'جلب آخر قيمة مضافة بدلالة حقل الترقيم التلقائى
        'بشرط  [qty_in]<>0
        
        MX = DMax("[ID]", "Transactions", "[Qty in]<>0")
        'البحث فى حقل مكون من حقلين بينهما فاصل
        'الحقلان هما أنفسهما المطلوبان فى مربعى نص فى التقرير
        'استخدام نتيجة mx كشرط
        '
        
        DL = DLookup("[add_doc] & '|' & [zdate]", "Transactions", "[ID]=" & MX)
        'التقسيم لفصل العمودين
        x = Split(DL, "|")
        Me.Text53 = x(0)
        Me.Text48 = x(1)
    End Sub

    رابط المشاركة

     

    • Like 3
×
×
  • اضف...

Important Information