Lamyaa قام بنشر يونيو 26, 2022 قام بنشر يونيو 26, 2022 السلام عليكم ورحمة الله وبركاته كيف أجعل اسم التقرير متغير (الملون بالأحمر) كيف استخدم المتغير strReportName بدلا عن اسم التقرير "ct17R2" Dim strReportName As String strReportName = Me.ReportName ' فتح التقرير DoCmd.OpenReport strReportName, acViewReport ' تغيير مصدر التقرير برمجيا Reports![ct17R2].Report.RecordSource = "qryStudents"
متقاعد قام بنشر يونيو 26, 2022 قام بنشر يونيو 26, 2022 (معدل) السؤال مبهم قليلا ولكن وفق فهمي للسؤال لديك تقرير اذا فتح التقرير من نموذج ا يكون اسم التقرير تقرير 1 مثلا ومصدر بياناته الجدول aa واذا فتحناه من نموذج ب يكون اسم التقرير تقرير 2 ومصدره استعلام 1 مثلا اذا كان فهمي صحيح ممكن استخدام البارامتر السادس في امر فتح التقرير حيث ان امر فتح يحتوي على سته معلمات بالترتيب ReportName View FilterName WhereCondition WindowMode 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 تم تعديل يونيو 26, 2022 بواسطه مبرمج سابق 4 1
Eng.Qassim قام بنشر يونيو 26, 2022 قام بنشر يونيو 26, 2022 وعليكم السلام مشاركة مع اخي @مبرمج سابق وحسب فهمي ايضا .. استخدم الكود التالي لتنسب اسم التقرير للمتغير Reports(strReportName).Caption = "ct17R2" 1
متقاعد قام بنشر يونيو 26, 2022 قام بنشر يونيو 26, 2022 والله ياعم قاسم انا فهمي على قدي في 26/6/2022 at 10:11, Lamyaa said: Dim strReportName As String strReportName = Me.ReportName Expand اذا اردنا متغيير عام نضع الامر التالي في بداية اي وحدة نمطية Public x As String ثم في امر فتح نضع x = "اسم التقرير" DoCmd.OpenReport x, acViewPreview 1 1
Moosak قام بنشر يونيو 26, 2022 قام بنشر يونيو 26, 2022 " إذا عُرِفَ السبب بطل العجب " أول ما تبادر لذهني بعد قرائتي للموضوع : ما الهدف من ذلك ؟ والجواب عن هذا السؤال هو ما سيفتح لنا باب الحل المناسب🙂 1 1
Eng.Qassim قام بنشر يونيو 26, 2022 قام بنشر يونيو 26, 2022 في 26/6/2022 at 14:08, مبرمج سابق said: والله ياعم قاسم انا فهمي على قدي Expand ههههه والله انا فهمت هيك...على كل حال زيادة في المعلومات واثراء الموضوع 1
متقاعد قام بنشر يونيو 26, 2022 قام بنشر يونيو 26, 2022 في 26/6/2022 at 16:30, Eng.Qassim said: على كل حال زيادة في المعلومات واثراء الموضوع Expand نعم احسنت اخي قاسم الحقيقة ان الموضوع فعلا يحتاج ايضاح كما اشار مستر @Moosak على كل حال كمداخلة اخيرة الى ان تتضح الامور للاخوة نحتاج احيان الى اعادة تسمية كائن في قاعدة البيانات سواء كان جدول او استعلام او فورم او تقرير او وحدة نمطية ونرغب ان يتم التغيير عن طريق الكود DoCmd.Rename "r_2", acReport, "companies" في هذا الامر لدينا ثلاث معلمات NewName هنا يساوي r_2 ObjectType وهو نوع الكائن و هنا تقرير " بعض قدامي المبرمجين بدلا من تحديد نوع الكائن يضع القيمة للكائن وهنا رقم 3 " OldName وهو اسم التقرير القديم companies تحياتي ولنا لقاء في موضوع اخر 1
Eng.Qassim قام بنشر يونيو 26, 2022 قام بنشر يونيو 26, 2022 في 26/6/2022 at 19:03, مبرمج سابق said: تحياتي ولنا لقاء في موضوع اخر Expand خلينا بهذا الموضوع استاذ خالد ... بصراحة لا اعرف لماذا نلجأ الى تغيير اسم التقرير ؟
Lamyaa قام بنشر يونيو 26, 2022 الكاتب قام بنشر يونيو 26, 2022 في 26/6/2022 at 11:40, مبرمج سابق said: السؤال مبهم قليلا ولكن وفق فهمي للسؤال لديك تقرير اذا فتح التقرير من نموذج ا يكون اسم التقرير تقرير 1 مثلا ومصدر بياناته الجدول aa واذا فتحناه من نموذج ب يكون اسم التقرير تقرير 2 ومصدره استعلام 1 مثلا اذا كان فهمي صحيح ممكن استخدام البارامتر السادس في امر فتح التقرير حيث ان امر فتح يحتوي على سته معلمات بالترتيب ReportName View FilterName WhereCondition WindowMode 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 Expand أستاذي الفاضل جزيل الشكر والتقدير على تفاعلكم يبدو أنني لم أوفق في شرح المطلوب بشكل جيد يوجد لدي عدة تقارير : 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" آملأن أكون قد استطعت توضيح المطلوب في 26/6/2022 at 13:50, Eng.Qassim said: وعليكم السلام مشاركة مع اخي @مبرمج سابق وحسب فهمي ايضا .. استخدم الكود التالي لتنسب اسم التقرير للمتغير Reports(strReportName).Caption = "ct17R2" Expand جزيل الشكر على تفاعلك لا أقصد تغيير عنوان التقرير إنما اسم التقرير قبل تغيير مصدره .. كما أشرت أنني ربما لم أوفق في شرح المطلوب وبينته في تعقيبي السابق .. 1
Lamyaa قام بنشر يونيو 26, 2022 الكاتب قام بنشر يونيو 26, 2022 في 26/6/2022 at 19:03, مبرمج سابق said: نعم احسنت اخي قاسم الحقيقة ان الموضوع فعلا يحتاج ايضاح كما اشار مستر @Moosak على كل حال كمداخلة اخيرة الى ان تتضح الامور للاخوة نحتاج احيان الى اعادة تسمية كائن في قاعدة البيانات سواء كان جدول او استعلام او فورم او تقرير او وحدة نمطية ونرغب ان يتم التغيير عن طريق الكود DoCmd.Rename "r_2", acReport, "companies" في هذا الامر لدينا ثلاث معلمات NewName هنا يساوي r_2 ObjectType وهو نوع الكائن و هنا تقرير " بعض قدامي المبرمجين بدلا من تحديد نوع الكائن يضع القيمة للكائن وهنا رقم 3 " OldName وهو اسم التقرير القديم companies تحياتي ولنا لقاء في موضوع اخر Expand فكرة تغيير اسم التقرير رائعة في حال كانت التقرير ذا تصميم واحد، ولكن في حالة كان التقرير مختلف فلن ينفع
Lamyaa قام بنشر يونيو 26, 2022 الكاتب قام بنشر يونيو 26, 2022 في 26/6/2022 at 14:08, مبرمج سابق said: والله ياعم قاسم انا فهمي على قدي اذا اردنا متغيير عام نضع الامر التالي في بداية اي وحدة نمطية Public x As String ثم في امر فتح نضع x = "اسم التقرير" DoCmd.OpenReport x, acViewPreview Expand الفكرة أستاذي ليست في جعل المتغير عاما أو خاصاً .. الفكرة كيف أمرر هذا المتغير على هذا السطر البرمجي: ففي الحالة العادية يتم كتابة اسم التقرير مباشرة Reports![rptStudents].Report.RecordSource = "qryStudents2" ولكن في حال كان اسم التقرير متغيير بناء على تغير المعطيات فكيف يمكن تمرير هذا المتغير على السطر التالي: Reports![X].Report.RecordSource = "qryStudents2"
ابو جودي قام بنشر يونيو 26, 2022 قام بنشر يونيو 26, 2022 طيب ممكن تجربة المرفق الاتى لانه يبدو لى ان التقرير نريده ان يقتح على اكثر من مصدر بيانات حسب الحالة ان لم افهم الموضوع جيدا برجاء مرفق حتى اسطيع الفهم >>---> صعيدى بيفهم بالعافية Chang Record Sources Report.mdbFetching info... 2 1
Eng.Qassim قام بنشر يونيو 26, 2022 قام بنشر يونيو 26, 2022 في 26/6/2022 at 20:39, ابو جودي said: صعيدى بيفهم بالعافية Expand والصعايدة غالية علية 😂 يا سلاااام ...دة انا اموت في الصعايدة 2
ابو جودي قام بنشر يونيو 26, 2022 قام بنشر يونيو 26, 2022 في 26/6/2022 at 20:24, Lamyaa said: كما أشرت أنني ربما لم أوفق في شرح المطلوب وبينته في تعقيبي السابق .. Expand انا اريد مرفقا انا لم افهم اى شئ 1
Barna قام بنشر يونيو 26, 2022 قام بنشر يونيو 26, 2022 في 26/6/2022 at 20:39, ابو جودي said: طيب ممكن تجربة المرفق الاتى لانه يبدو لى ان التقرير نريده ان يقتح على اكثر من مصدر بيانات حسب الحالة ان لم افهم الموضوع جيدا برجاء مرفق حتى اسطيع الفهم >>---> صعيدى بيفهم بالعافية Expand ترى كلنا نحب الصعايدة والنعم فيهم .... اسمح لي استخدم مثالك بطريقة اخرى للفائدة واثراء الموضوع باستخدم هذا الكود .... 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.mdbFetching info... 3 1
ابو جودي قام بنشر يونيو 26, 2022 قام بنشر يونيو 26, 2022 في 26/6/2022 at 21:16, Barna said: اثراء الموضوع باستخدم هذا الكود .... Expand جزاكم الله خيرا استاذى الجليل ومعلمى القدير الاستاذ @Barna واسمح لى ممكن نختصر الكود ليكون Dim qdf As DAO.QueryDef Dim strSQL As String CurrentDb.QueryDefs.Delete "qr1" If com1 = "التقرير الاول" Then strSQL = "SELECT tblA.* FROM tblA;" ElseIf com1 = "التقرير الثاني" Then strSQL = "SELECT tblB.* FROM tblB;" End If Set qdf = CurrentDb.CreateQueryDef("qr1", strSQL) DoCmd.OpenReport "rptFlayReport", acViewPreview ولارد بضاعتكم اليكم بطريقة مختلفة بعض الشئ تجنبا لاستخدام الحروف العربية , واضفاء مرونة أكبر فى حال اردنا تمرير اسم التقرير من خلال الكود الافكار كثيرة وتتصارع وتتلاحق فى رأسي بسبب عدم فهمى الهدف والمطلوب تحقيقة بصورة مباشرة من السؤال بسبب غموض الهدف ولكن على حال تبقى الحاجة هى ام الاختراع وفهم السؤال هو شطر الجواب Chang Record Sources Report Barna V2.mdbFetching info... 1 1
متقاعد قام بنشر يونيو 27, 2022 قام بنشر يونيو 27, 2022 في 26/6/2022 at 20:13, Eng.Qassim said: لينا بهذا الموضوع استاذ خالد ... بصراحة لا اعرف لماذا نلجأ الى تغيير اسم التقرير ؟ Expand استاذي القدير قاسم الامر موجود ضمن اوامر فيجول بيسك وهو موجود بالصيغة الموضحة بالرد السابقة وايضا موجود ضمن اوامر RunCommand ولكن طريقة العمل تختلف الاول يغير الاسم مباشرة والاخر يحتاج الى "SelectObject" والفكرة تحديد الكائن و جعل الاسم قابل للتعديل اي انه اشبه ما يكون بتحديد جدول ثم النقر على f2 بلوحة المفاتيح . اما لماذا نلجأ لتغيير الاسم احيانا حدث معين يتطلب ذلك على كل حال بالنسبة للموضوع والحل المقدم من الاساتذة والذي يرتكز على حذف واعادة انشاء الاستعلام الا يؤدي الى زيادة حجم قاعدة البيانات على المدى البعيد حيث ان معلوماتي ان الاكسس لا يستعيد مساحة الكائن المحذوف الا بعد الضغط والاصلاح مع اعجابي بالفكرة تحياتي 1 1
متقاعد قام بنشر يونيو 27, 2022 قام بنشر يونيو 27, 2022 (معدل) ماشي يا استاذة خلينا نتصور الامر حسب فهمي عندك 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 واذا كنت لم افهم فاعتذر مقدما تحياتي تم تعديل يونيو 27, 2022 بواسطه مبرمج سابق 1 1
ابو جودي قام بنشر يونيو 27, 2022 قام بنشر يونيو 27, 2022 في 27/6/2022 at 08:59, مبرمج سابق said: عندك 10 تقارير مبنية على استعلامين اثنين مثلا q_1 و q_2 وعندك فورمين اثنين كل فورم فية قائمة باسماء التقارير العشرة وعندك حقل نصي عند اختيار التقرير من القائمة يكتب اسمه في الحقل النصي وعند امر فتح التقرير يتم فتح التقرير المكتوب اسمه في الحقل النصي ويكون مصدر سجلاته الاستعلام q_1 طالما فتحناه من فورم 1 ويكون مصدرة q_2 اذا فتحناه من فورم2 اذا كان فهمي صحيح ممكنى عمل ذلك وبكود مختصر نحتاج الى متغير في بداية الاكواد اي يمكن استخدامه في كافة احداث النموذج Expand تسلم الايادى يا @مبرمج سابق يا عالم يا معقدين شايفين البساطة ما شاء الله 1
kanory قام بنشر يونيو 27, 2022 قام بنشر يونيو 27, 2022 على العموم كل هذه توقعات منكم .. وشكرا الله لكم .... لكن تتوقف الاجابة على رد السائل او ارفاق مرفق واضح لما يريد فعله بالضبط .. 2 1
متقاعد قام بنشر يونيو 27, 2022 قام بنشر يونيو 27, 2022 في 27/6/2022 at 12:56, ابو جودي said: شايفين البساطة ما شاء الله Expand هذا بعض مما لديك استاذ @ابو جودي في 27/6/2022 at 13:00, kanory said: على العموم كل هذه توقعات منكم .. وشكرا الله لكم Expand صحيح كلامك استاذ العزيز @kanory تتوقف الاجابة على رد السائل او ارفاق مرفق واضح لما يريد فعله بالضبط مع ذلك اجدني ملزم بايضاح امر وهو ان مشاركاتي ليس الهدف منها تقديم دعم فني او معالجة مشكله في مرفق ولكن اجد استفسار معين ثم اضع رد لكيفية معالجة الامر من وجهة نظري وبابسط صورة ممكنه فان تم الاخذ به والا فليعتبر رفع للموضوع وفي احيان اخرى اجد استاذ قدير وضع حل احترافي يعجبني فاشارك بحل اخر وبابسط صورة ممكنه كاثراء للموضوع وليس بديلا للحل المحترف فالاساتذة في هذا الموقع اكبر من ان يعدل عملهم مبرمج سابق جل معلوماته قديمة وحلوله اكل الدهر عليها وشرب مع ذلك فان للعلم زكاة وزكاته بذله للناس وتعليمهم اياه اللهم اجعلنا واياكم ممن تعلم العلم وعلمه تحياتي وتقديري لك ولعل لنا لقاء في موضوع اخر 🌹 1 1
تمت الإجابة ابو جودي قام بنشر يونيو 27, 2022 تمت الإجابة قام بنشر يونيو 27, 2022 في 27/6/2022 at 13:50, مبرمج سابق said: مبرمج سابق جل معلوماته قديمة وحلوله اكل الدهر عليها وشرب Expand اولا بارك الله فى عمرك وعلمك وعملك وجزاكم كل خير ثانيا انا اقل طويلب علم ولست مبرمجا على الاطلاق مجرد هاو ثالثا كنت ابلور فكرة من الامس شبيه بفكرة حضرتك استخدمت الروتين الاتى فى وحدة نمطية 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).mdbFetching info... 1
متقاعد قام بنشر يونيو 27, 2022 قام بنشر يونيو 27, 2022 في 27/6/2022 at 14:15, ابو جودي said: اولا بارك الله فى عمرك وعلمك وعملك وجزاكم كل خير Expand امين اللهم اجعلنا واياكم ممن طال عمره وحسن عمله في 27/6/2022 at 14:15, ابو جودي said: ثانيا انا اقل طويلب علم ولست مبرمجا على الاطلاق مجرد هاو Expand اربعة ممن قادوا الثورة الرقميه ليسوا مبرمجين بل بعضهم لا يتعدى تاهيلة التعليم الثانوي المهم الرغبة والمثابرة والابتكار خلال عملي لاربعين عام صادفت مبرمجين لا يحسنوا كتابة سطر واحد والبعض عمله الفعلي تشتيت الاخرين وعمل معي مبرمج كان لنا المرجع اذا استغلق امر ومؤهله العلمي دبلوم محاسبة وحاليا مدير قاعدة بيانات لواحدة من اكبر المؤسسات في المنطقة في 27/6/2022 at 14:15, ابو جودي said: ثالثا كنت ابلور فكرة من الامس شبيه بفكرة حضرتك Expand ماشاء الله تبارك الله متميز دائما يا محمد 🌹 تحياتي 1
Eng.Qassim قام بنشر يونيو 27, 2022 قام بنشر يونيو 27, 2022 في 27/6/2022 at 15:04, مبرمج سابق said: اربعة ممن قادوا الثورة الرقميه ليسوا مبرمجين بل بعضهم لا يتعدى تاهيلة التعليم الثانوي Expand بصراحة استاذ خالد ..الاخوة المصريين يشهد لهم بالبنان في ذلك وانا بصراحة تعلمت منهم الكثير ...سواء في اختصاصي الهندس (المدني ) او في البرمجة ..اصحاب علم وخلق وجدية في ايصال المعلومة لن انسى فضل الاخوة السعوديين ...اصحاب كرم منقطع النظير ام الاخوة العمانيين ام السوريين ..ام ام ربي يحفظ امتنا الاسلامية والعربية 3
متقاعد قام بنشر يونيو 27, 2022 قام بنشر يونيو 27, 2022 في 27/6/2022 at 19:09, Eng.Qassim said: بصراحة استاذ خالد ..الاخوة المصريين يشهد لهم بالبنان في ذلك Expand الكل فيهم الخير والبركة وكلنا اخوة انا ايضا افتخر اني تتلمذت على يد معلمين من مصر والسودان والاردن وسوريا وفلسطين و مدرس واحد عراقي درسني النحو والصرف ومنه عرفت الجواهري والبياتي واحببت ناظم الغزالي اسمه استاذ هشام رجل خلوق قليل الكلام وان تحدث تتمنى الا يصمت الله يهديك ياقاسم كل ما اغلقت متصفحي عن هذا الموضوع وكتبت الى لقاء في موضوع اخر اعدتني اليه مره بسؤال ومرة بذكريات جميلة مع الاعتذار لصاحبة الموضوع عن الدخول في حوارات جانبية تحياتي 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.