Ahmed.IQ قام بنشر أبريل 19, 2022 قام بنشر أبريل 19, 2022 السلام عليكم ورحمة الله وبركاته ,, رمضان كريم كل عام وانتم بخير نسئل الله ان يتقبل صيامكم وقيامكم وان يتقبل صالح الاعمال ان يجعل كل ما تقدموه في ميزان حسناتكم وان يجعل اعمالنا واعمالكم رحمه وشفاعه لنا يوم القيامة , لدي استفسار انا قمت بعمل فكشن عملها انها تتحق من ان الفورم النشط الحالي Public frm As String Function IsFormLoaded(StrForm As String) As Boolean If frm = StrForm Then IsFormLoaded = True Exit Function End If End Function هذا المديول الي عامله يعمل على انه يتاكد من ان الفورم الي مفتوح حاليا مين وهوا شغال وانا عامل كود عن فتح النموذج وهما ثلاثة نماذج بقول فيه ان frm = form.name هنا راح نحصل على اسم الفورم في الشرط داخل الاستعلام انا كاتب الجملة بالشكل التالي IIf(IsFormLoaded(F_Asset_Addnew),[Forms]![F_Asset_Addnew]![AssetID], IIf(IsFormLoaded(F_Asset_Addnew_withoutfilter),[Forms]![F_Asset_Addnew_withoutfilter]![AssetID], [Forms]![F_Asset_Edit]![AssetID])) المشكلة هيا اني لما افعل الاستعلام مثل احتاج الى طباعة التقرير يقوم بالتعامل مع الشرط على انه تم تحقيقة كله ويبداء يظهر لي حقل ادخل قيمة للنموذجين الغير مفتوحين لو فرضنا انا كنت فاتح النموذج F_Asset_Addnew فاسيظهر لي مربع ادخال ويطلب مني ان ادخل القيمة في النموذج الاخر [Forms]![F_Asset_Addnew_withoutfilter]![AssetID] وايضا يظهر لي ان ادخل القيمة في النموذج الاخير [Forms]![F_Asset_Edit]![AssetID] الفكرة من الموضوع لماذا اقوم بعمل 3 استعلامات وثلاث تقارير لغرض الطباعة ليتم طباعة البيانات بشرط المعرف فا اردت ان قوم بعمل استعلام واحد وتقرير واحد يغطي لي الثلاث نماذج لانها تعتبر نفس البيانات
ابوبسمله قام بنشر أبريل 19, 2022 قام بنشر أبريل 19, 2022 (معدل) وعليكم السلام ورحمه الله وبركاته الله اكرم وانت طيب اخى احمد اللى فهمته من كلامك انك عاوز تاخد المعرف من اى نموذج من الثلاثه ووضعه كمعيار بالاستعلام لفتح التقرير بناء على المعرف فى استعلام واحد وتقرير واحد قم بانشاء مديول Public intID As Long Function goID() As Long goID = intID End Function وفى حدث فى الحالى لكل من النماذج الثلاث قم باسناد قيمه المعرف للمتغير كالتالى intID = Me.ID وفى الاستعلام وفى المعايير لحقل المعرف goID() جرب ووافنى بالنتيجه بالتوفيق تم تعديل أبريل 19, 2022 بواسطه احمد الفلاحجي
Ahmed.IQ قام بنشر أبريل 19, 2022 الكاتب قام بنشر أبريل 19, 2022 اخ احمد شكراً على ردك ,, سؤال ماذا تقصد بال TestId هل اقوم بتعريف متغير ؟ وتكون goID(testid as long)
ابوبسمله قام بنشر أبريل 19, 2022 قام بنشر أبريل 19, 2022 58 دقائق مضت, Ahmed.IQ said: اخ احمد شكراً على ردك ,, سؤال ماذا تقصد بال TestId هل اقوم بتعريف متغير ؟ وتكون goID(testid as long) سورى خطأ مطبعى 😀 هى وتم التعديل goID 1
Eng.Qassim قام بنشر أبريل 19, 2022 قام بنشر أبريل 19, 2022 (معدل) وعليكم السلام دالة التحقق من النموذج النشط Function IsFormLoaded(StrForm As String) As Boolean Dim frm As Form For Each frm In Forms If frm.Name = StrForm Then IsFormLoaded = True Exit Function End If Next End Function نعمل سبروتين لفتح التقرير حسب المعيار لديك.. نقوم باستدعائه من زر في النماذج الثلاث Sub openR() If IsFormLoaded("F_Asset_Addnew") Then DoCmd.OpenReport "Asset_AddnewR", acViewPreview, "AssetID=" & [Forms]![F_Asset_Addnew]![AssetID] ElseIf IsFormLoaded("F_Asset_Addnew_withoutfilter") Then DoCmd.OpenReport "Asset_AddnewR", acViewPreview, "AssetID=" & [Forms]![F_Asset_Addnew_withoutfilter]![AssetID] Else DoCmd.OpenReport "Asset_AddnewR", acViewPreview, "AssetID=" & [Forms]![F_Asset_Edit]![AssetID] End If End Sub لاني حاولت مع الاستعلام فلم افلح تم تعديل أبريل 19, 2022 بواسطه Eng.Qassim 1
Ahmed.IQ قام بنشر أبريل 19, 2022 الكاتب قام بنشر أبريل 19, 2022 اخ قاسم طريقة الاخ احمد فعاله وهذا ما كنت اريد ايضا سأقوم بتجربة ما طرحت شكراً لك 1
ابوبسمله قام بنشر أبريل 19, 2022 قام بنشر أبريل 19, 2022 55 دقائق مضت, Ahmed.IQ said: اخ قاسم طريقة الاخ احمد فعاله وهذا ما كنت اريد ايضا سأقوم بتجربة ما طرحت شكراً لك جزاك الله خيرا اخى ومهندسنا العزيز @Eng.Qassim ع مشاركتك معنا الحلول واثراء الموضوع 🌹 ويوجد طريقه اخرى من باب اثراء الموضوع وتنوع الحلول باستخدام TempVar انشى مديول جديد وضع تعريف المتغير فقط Public intID As TempVar ثم فى حدث الحالى للنماذج قم بالاسناد كالتالى TempVars!intID = Me.ID.Value ثم فى الاستعلام وفى المعيار للمعرف [TempVars]![intID] بالتوفيق 1 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.