بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
9975 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
406
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
وعليكم السلام 🙂 رجاء ارفاق مثال بسيط بقاعدة بيانات ، وسيكون ذو فائدة كبيرة للحل 🙂 جعفر
-
مشكلة الترقيم بعد توزيع ملف اكسس على الاجهزة على الشبكة
jjafferr replied to qathi's topic in قسم الأكسيس Access
وعليكم السلام 🙂 الحل بأن تضع هذا الكود في حدث ، وبعد اخذ الرقم التالي مباشرة تحفظ السجل ، وعلى افتراض ان اسم الحقل هو Sinf ، يصبح الكود هكذا : بدلا عن =IIf(IsNull(DMax("[id]";"items")+1);1;DMax("[id]";"items")+1) استخدم if len(me.Sinf & "")=0 then me.Sinf = nz(DMax("[id]","items"),0) +1 docmd.runcommand accmdsaverecord end if . جعفر -
قد يكون الاخ عبدالعليم cckills2010 لم يأخذ النسخة الاخيرة من الملف ، من هنا : https://www.officena.net/ib/topic/63134-احضار-محتويات-فولدر-خارجى-الى-البرنامج/?do=findComment&comment=505661 فقد تم تعديل مجموعة اشياء فيه ، وكود الحصول على امتداد الملف يقرأ الاسم من النهاية بإستخدام الدالة InStrRev : FileExt = Mid(strFileNames(i), InStrRev(strFileNames(i), ".") + 1) . وصورة الملف الذي به خطأ ، الاسم ليس به نقاط ، مما يجعلنا ننظر الى امرين آخرين ، هل اسم الملف/المسار : 1. فيه الخطأ الموجود كما تم شرحه هنا : . 2. بسبب وجود مسافات فارغة في الاسم/المسار ، ولحل هذا الخطأ ، يجب علينا وضع المسار/الاسم بين "" ، هكذا : File_Path = chr(34) & File_Path & chr(34) حيث ان Chr(34) = " . جعفر
-
مكشلة في قياس الفورم عندة تغيرة الى حاسبة اخرى
jjafferr replied to yousifja's topic in قسم الأكسيس Access
وعليكم السلام اخي يوسف 🙂 واهلا وسهلا بك في المنتدى 🙂 رجاء مراجعة قوانين المنتدى للإستفادة القصوى من المنتدى : https://www.officena.net/Tips/Questions.htm لوسمحت تشرح طلبك اكثر ، فالطلب غير واضح ، وياريت صورة من المكان اللي فيه المشكلة 🙂 جعفر -
1. كيف تقوم بربط الاكسس بعدة محافظات ؟ في حال ان جميع هذه المحافظات تخزن البيانات في نفس قاعدة البيانات "الاكسس" ، اي انها مشتركة بينهم بطريقة ما ، فنعم الافضل لك الانتقال الى SQL Server ، لأن الاكسس معمول لشبكة صغيرة متصلة بأسلاك الشبكة ، ولا يكون الاتصال عن طريق wifi ولا الانترنت ، ولكن وقبل الانتقال الى SQL Server ، قم بتغيير القرص الصلب الى SSD سريع وشوف اذا السرعة اصبحت معقولة ، فهذا الخيار هو الاسرع والاقل تكلفة (وقتا وقيمةً) ، وانا اقول لك هذا من تجربة ، في عمل مثل العمل الذي تقوم به شركتك ، بحوالي 10-15 مستخدم ، ولم يكن هنا اي بطئ في البرنامج ، 2. اذا لم تغير الاستعلامات الى stored procedures ، فلن تستفيد من سرعة الـ SQL Server ، وقد يكون البرنامج ابطأ ، 3. هذا صحيح ، حتى ولو تم وضع الاكسس على السيرفر ، فسيكون في مجلد مشاركة كذلك ، ولكن السيرفر الحقيقي فيه قوة في اجهزته وطريقة عمل التخزين Raid ويكون المعالج CPU بطاقة كبيرة وبه يتفرغ اكثر للبرامج ، والمستخدمين. لا تفهم من كلامي اني احاول احباطك من الانتقال الى SQL Server ، ولكني لا اريدك ان تعتقد بأنك ممكن تنتقل بسهوله وكل شيء سيكون مثل ما حلمت به !! نصيحتي هو ان يواصل المستخدمين العمل على الاكسس (بعد تغيير قرص الجداول الى SSD) ، وتبدأ العمل على برنامجك على SQL Server ، وتحل المشاكل اللي تظهر لك ، الى ان تصل الى مرحلة تكون راضي عنها ، وخلالها تكون قد تعرفت على طريقة عمل SQL Server والسيرفر 🙂 جعفر
-
وعليكم السلام 🙂 الرابط التالي فيه مجموعة روابط لربط الاكسس بالـ SQL : . ولو اني غير مؤهل للرد على هذا السؤال ، بسبب اني لم اقم بالربط ، ولكن عندي معلومات قد تفيدك 🙂 1. أ. اذا كانت بيانات SQL Server على سيرفر حقيقي على الشبكة ، بينما بيانات وجداول الاكسس على كمبيوتر في مجلد مشاركة على الشبكة ، فهذه المقارنة غير عادلة ، فعمل السيرفر يكون افضل بكثير من مجلد مشاركة ، ولو وضعت الاكسس على سيرفر حقيقي فستلاحظ ان الاكسس اصبح اسرع ، ب. حتى اذا استعملت مجلد مشاركة ووضعت فيه بيانات وجداول الاكسس : تأكد بأن المجلد ليس على القرص الذي به تنصيب الوندوز (انا قلت القرص وليس البارتيشن) ، لذا يجب ان تكون الجداول على قرص آخر في الكمبيوتر ، واذا اردت افضل الاقراص ، فعليك بقرص SSD ، فالسرعة ستكون واضحة ، وهناك بعض انواع الـ SSD الاسرع من الأخرى ، ج. معظم مشاكل بطئ الاكسس تكون بسبب عدم وجود فهرسة للحقول: اللي فيها علاقة بين الجداول : سواء في نافذة العلاقات ، او في الاستعلام ، او في ربط النموذج الرئيسي بالنموذج الفرعي ، او التقرير الرئيسي بالتقرير الفرعي ، اللي تستعمل كمعيار ، سواء في الاستعلام ، او في الكود ، د. نقل البيانات من جداول الاكسس الى جداول الـ SQL Server : لن يجعل برنامجك اسرع ، بل قد يجعله ابطأ ، لذلك يجب عليك عمل استعلاماتك على SQL Server بـ stored procedures ، يجب حذف اوامر الاكسس من الاستعلام ، والاوامر التي لا تعمل في SQL Server ، مثل NZ ، واخواتها Dlookup ، و اوامر اخرى ، الـ SQL Server لا يعطيك جميع سجلات الجدول في الاستعلام (الاكسس يعطيك جميع السجلات) ، لذا يجب عمل تغيير في البرنامج ليتناسب مع هذا السياق ، 2. نعم : في الاكسس: باستعمال SSMA الذي يأتي مع SQL Server ، تنصيب برنامج SSMA :https://docs.microsoft.com/en-us/sql/ssma/access/sql-server-migration-assistant-for-access-accesstosql?view=sql-server-ver15 انت تعمل جداولك في SQL Server ثم تستورد البيانات فقط من الاكسس ، سواء بالنسخ/لصق (يجب التأكد من هذه الخطوة) ، او عن طريق استعلام الحاقي ، ولكن وقبل نقل البيانات بين البرنامجين ، يجب ان تكون البيانات في جداول الاكسس متماشية مع تلك في الـ SQL Server . ولكن سؤالي هو ، ليش تريد ان تنتقل الى SQL Server ؟ هناك اسباب جوهرية ومهمة للنقل ، ولكن بطئ البرنامج في الشبكة ليس واحد منهم ، فالاكسس قد يكون اسرع 🙂 جعفر
-
عدم ظهور الشعار او الصورة عند طباعة التقرير
jjafferr replied to ABDELRAHMAN ALFAHOUM's topic in قسم الأكسيس Access
وعليكم السلام 🙂 تأكد ان صورة الشعار ليست كبيرة (الطول و العرض) ، فأنت بحاجة الى صورة في حدود 500 - 600 بكسل فقط ، واي حجم كبير قد يسبب لك مشكلة اختفاء الصورة !! جعفر -
وعليكم السلام 🙂 في الرابط التالي فيه مرفق : . المرفق فيه نموذج واستعلام يقومان بطلبك ، اقرأ الموضوع من : جعفر
-
السلام عليكم 🙂 سؤال الموضوع كان: وقد قام الاخ حسام بالرد عليه 🙂 اما الطلب الاضافي ، فقد تستفيد من هذا الموضوع: جعفر
-
وعليكم السلام 🙂 هذا كان مجرد مثال من صاحب الموضوع 🙂 اليك مثال حقيقي ، وقد حصلت على السند عند البحث في الانترنت : انت مسؤول مخزن ، واستلمت قائمة المواد حسب سند الاخراج المرفق: . لما تريد ان تدخل المواد من 1 الى 6 في برنامج المخازن ، فيجب عليك ان تدخل المعلومات التاليه في كل سجل: . لهذا السبب ، وبإستخدام الكود اعلاه ، نضع الحقول اللي في المربع ، في النموذج الرئيسي ، وكلما عملنا سجل جديد في النموذج الفرعي ، تلقائيا يتم تسجيلها في السجل الجديد في النموذج الفرعي ، ويبقى عليك ادخال اسم المادة والوحدة والكمية فقط 🙂 في هذا المثال ، ولأن عدد الحقول هو 10 حقول ، وعدد الحقول التي يتم ادخالها تلقائيا هي 6 حقول ، فأنت وفرت 60% من وقت ادخال البيانات ، وبالدقة المطلوبة 🙂 جعفر
-
السلام عليكم 🙂 اخي محمد أبو عبدالله ، اذا تسمح لي استعمل قاعدة بياناتك ، واعمل تغيير على الكود ، لجلب البيانات بطريقة اخرى ، من النموذج الرئيسي مباشرة 🙂 الكود : Private Sub Command11_Click() If Len(Me.txtName & "") = 0 Then MsgBox "يحب اختيار اسم العميل اولاً", vbInformation, "officena" Me.txtName.SetFocus ElseIf Len(Me.txtTel & "") = 0 Then MsgBox "يحب اختياررقم التليفون اولاً", vbInformation, "officena" Me.txtTel.SetFocus ElseIf Len(Me.txtAddress & "") = 0 Then MsgBox "يحب اختيار العنوان اولاً", vbInformation, "officena" Me.txtAddress.SetFocus Else 'to make a New Record in the SubForm, it has to be in Focus Me.frm2.SetFocus DoCmd.GoToRecord , , acNewRec 'now take the values from the Main Form Me.frm2!XName = Me.txtName Me.frm2!XTel = Me.txtTel Me.frm2!XAddress = Me.txtAddress 'save the SubForm Record so that the Record Count shows correctly If Me.frm2.Form.Dirty Then Me.frm2.Form.Dirty = False MsgBox "تم اضافة البيانات بنجاح ان شاء الله ", , "officena" End If End Sub . اما عدد السجلات ، فنعمل حقل في النموذج الفرعي ، في قسم Form Footer (ولا يعمل العد او الجمع بهذه الطريقة ، إلا في هذا القسم) ، ونجعله يعد عدد اي حقل ، ويمكننا لاحقا ان نجعله مخفي : . وفي النموذج الرئيسي ، يكون لدينا حقل نص ، ومصدر بياناته هو حقل العد الموجود في النموذج الفرعي : . جعفر 1280.DB_test.accdb.zip
-
طلب اضافة عمود ترقيم تلقائي لاستعلام
jjafferr replied to أبو يحيى الجبلاوي's topic in قسم الأكسيس Access
وفي هذا الموضوع اكثر من طريقة : . وسبق ان عملت لك رد عن الترقيم ، هنا 🙂 . جعفر -
وعليكم السلام 🙂 بدل ان تستعمل الرقم الموجب ، استعمل علامة ناقص (-) قبل الرقم ، حتى يعرف البرنامج انك تريد طرح هذه المدة ، هكذا : جعفر
- 1 reply
-
- 1
-
-
السلام عليكم 🙂 انا استعمل اكسس 2010 ، 32بت ، على وندوز 10 64بت ، وبإستعمال المرفق الاخير للأخ @alsihran : 1. عند زيادة البيانات (يعني البيانات الموجودة في المرفق) ، هذه النتيجة : 2. وحين تكون قليلة . والسبب في ظهور عدة اسطر للحقل بدل سطر واحد فقط ، هو تمكين اعدادات الحقول والقسم "قابل للنمو" الى نعم ، بينما لو جعلناها لا . فالنتيجة سطر واحد فقط ، بغض النظر عن كمية البيانات : . جعفر
-
الفائدة الاعم والتي من اجلها تم عمل المنتديات ، هي كما قالها الاستاذ محمد : اما فائدة الدخول متخفي ، فمثلا لما اكون على سفر وادخل المنتدى ، لغرض البحث عن شيء معين ، ولا اريد ان يتتبع الاعضاء وقت دخولي ذلك الوقت ، فأدخل متخفي جعفر
-
شكرا جزيلا دكتور محمد 🙂 جعفر
-
وبدون لمس البرنامج ، وبعد استيراد البيانات الى الجدول meetingAttendanceList ، نعمل استعلام ليكون مصدر بيانات للتقرير ، في هذا الاستعلام نفكك الحقل TimesStamp الى حقل تاريخ D1 وحقل وقت T1 (يعني حقول تاريخ وليس حقول نص) ، وبعدها يمكنك عمل ما تشاء في جمعهما 🙂 . . جعفر 1279.ImportExcel.accdb.zip
-
كيف نأخذ التاريخ من أول سجل وأخر سجل ونضعهم في رأس الصفحة للتقرير
jjafferr replied to alsihran's topic in قسم الأكسيس Access
-
كيف نأخذ التاريخ من أول سجل وأخر سجل ونضعهم في رأس الصفحة للتقرير
jjafferr replied to alsihran's topic in قسم الأكسيس Access
السلام عليكم 🙂 في الواقع ، هذا السؤال من الاسئلة التي تُثار بين الحينه والاخرى ، واليك السبب في عدم امكانية الحصول على قيمة ذيل الصفحة ، في رأس الصفحة : التقرير عندك فيه 3 اقسام : . خلينا نشوف قيم التاريخ لصفحة: . والآن خلينا نشوف التاريخ ، بالطريقة اللي اقسام التقرير تشوفه ، بإستخدام حدث التنسيق لكل قسم: Private Sub PageHeaderSection_Format(Cancel As Integer, FormatCount As Integer) Debug.Print "Header= " & Me.Edate End Sub Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) Debug.Print " Detail= " & Me.Edate End Sub Private Sub PageFooterSection_Format(Cancel As Integer, FormatCount As Integer) Debug.Print "Footer= " & Me.Edate Debug.Print End Sub . والنتيجة لصفحتين : Header= 18-Oct-20 Detail= 18-Oct-20 Detail= 19-Oct-20 Detail= 20-Oct-20 Detail= 21-Oct-20 Detail= 22-Oct-20 Detail= 23-Oct-20 Detail= 24-Oct-20 Detail= 25-Oct-20 Detail= 26-Oct-20 Detail= 27-Oct-20 Detail= 28-Oct-20 Detail= 29-Oct-20 Detail= 30-Oct-20 Detail= 31-Oct-20 Detail= 01-Nov-20 Detail= 02-Nov-20 Detail= 03-Nov-20 Detail= 04-Nov-20 Detail= 05-Nov-20 Detail= 06-Nov-20 Detail= 07-Nov-20 Detail= 08-Nov-20 Footer= 07-Nov-20 Header= 08-Nov-20 Detail= 08-Nov-20 Detail= 09-Nov-20 Detail= 10-Nov-20 Detail= 11-Nov-20 Detail= 12-Nov-20 Detail= 13-Nov-20 Detail= 14-Nov-20 Detail= 15-Nov-20 Detail= 14-Jan-21 Detail= 15-Jan-21 Detail= 16-Jan-21 Detail= 17-Jan-21 Detail= 18-Jan-21 Detail= 19-Jan-21 Detail= 20-Jan-21 Detail= 21-Jan-21 Detail= 22-Jan-21 Detail= 23-Jan-21 Detail= 24-Jan-21 Detail= 25-Jan-21 Detail= 26-Jan-21 Detail= 27-Jan-21 Footer= 26-Jan-21 . من هنا نلاحظ ان رأس الصفحة يرى اول سجل ، بينما ذيل الصفحة يرى آخر سجل ، والتقرير يطبع / يُظهر رأس الصفحة قبل ان تكون البيانات وصلت الى ذيل الصفحة (يعني ذيل الصفحة لا يحتوي على اي قيمة حينها ، لما رأس الصفحة يحصل على القيمة) ، لهذا سبب ما نحصل على التاريخين معا في رأس الصفحة !! ------------------------------------------------------------------------------------------------------- الآن وبعد ان عرفنا طريقة عمل التقرير ، خلينا نستفيد منه في عمل المطلوب : خلينا نفتح التقرير بطريقة مخفية ، نأخذ قيمة سجل رأس صفحة التقرير وذيل صفحة التقرير لكل صفحة ، نحفظهم في مصفوفة Array ، ثم نفتح التقرير بالطريقة العادية ونأخذ بيانات رأس وذيل التقرير من المصفوفة ، ونضعهم في التقرير ، في رأس الصفحة 🙂 1. عمل نموذج لحصر البيانات بين قيمتين (مع اننا لسنا بحاجة الى هذه الخطوة ، ولكن لأن جدولك في سجلات بدون قيم تواريخ ، فهذا يعمل خلل في الكود) ، ونعمل استعلام يصفي بيانات الجدول حسب تواريخ النموذج ، ويكون هذا الاستعلام مصدر بيانات التقرير: . 2. النقر على زر فتح التقرير في النموذج ، يحتوي على هذا الكود : والذي يعمل مصفوفة لـ 100 صفحة في التقرير (اذا تقريرك يحتوي على صفحات اكثر ، فقط اجعل هذا الرقم اكبر ، ما يضر اذا تركته = 200 او اكثر) 'accept adding dates Add_Dates = True 'initilize the arrays with a larg number of pages ReDim Fd(100) 'first E_date ReDim Ld(100) 'last E_date 'open the Report in Hidden mode, to put the E_dates in an array DoCmd.OpenReport "rpt_chfit", acViewPreview, , , acHidden 'close the Hidden Report DoCmd.Close acReport, "rpt_chfit" 'stop adding dates Add_Dates = False 'now open the Report in the normal way DoCmd.OpenReport "rpt_chfit", acViewPreview . وهناك وحدة نمطية تحتفظ بقيم المصفوفة ، حتى تكون متوفرة لجميع كائنات البرنامج: Option Compare Database Option Explicit Public Add_Dates As Boolean Public Fd() As Date 'first E_date Public Ld() As Date 'last E_date . والتقرير فيه هذا الكود: Private Sub PageHeaderSection_Format(Cancel As Integer, FormatCount As Integer) If Add_Dates = True Then 'add the array items, based on the Report page number Fd(Me.Page) = Me.F_Edate Else 'show the results Me.myF_Edate = Fd(Me.Page) Me.myL_Edate = Ld(Me.Page) End If End Sub Private Sub PageFooterSection_Format(Cancel As Integer, FormatCount As Integer) If Add_Dates = True Then 'add the array items Ld(Me.Page) = Me.L_Edate End If End Sub Private Sub Report_Close() If Add_Dates = False Then 'Empty the array ReDim Fd(0) 'first E_date ReDim Ld(0) 'last E_date End If End Sub . فإذا قيمة Add_Dates = True في النموذج ، فيعمل التقرير المخفي لعمل المصفوفة ، بينما عندما تتغير قيمة Add_Dates ، فيقوم التقرير بإظهار قيم المصفوفة في التقرير الغير مخفي ، وعند اغلاق التقرير ، نقوم بحذف بيانات المصفوفة 🙂 لذلك ، وللحصول على النتائج الصحيحة ، يجب تشغيل التقرير من النموذج ، حتى يقوم الكود بما يجب 🙂 . . جعفر 1277.addDateHideRport.accdb.zip -
تفضل طريقة تحويل جملة الاستعلام SQL من الكود الى استعلام ، ومن ثم من الاستعلام الى الكود مرة اخرى : 1. ادخل في نموذج login حتى يكون لدينا اسم المستخدم في المتغير TempVars!mm في ذاكرة الكمبيوتر (وتظل هذه القيمة في ذاكرة الكمبيوتر الى اغلاق برنامج الاكسس) ، ولنختار المستخدم محمد مثلا (ومافي داعي للنقر على زر "دخول") : . 2. نفتح النموذج form2 ، ونذهب الى حدث النقر على الزر "ادفع" حتى نرى الكود : DoCmd.RunSQL "INSERT INTO المبيعات ( [كود الصنف], [اسم الصنف], المورد, [سعر البيع], اللون, المقاس, التاريخ, [نظام الدفع] ) SELECT فرعى.[كود الصنف], فرعى.[اسم الصنف], فرعى.المورد, فرعى.[سعر البيع], فرعى.اللون, فرعى.المقاس, Date() AS D, ""نقدي"" AS s FROM فرعى;" . نريد ان نعمل تغيير في جملة SQL هذه ، ونضيف "اسم المستخدم" فيها ، والموجدو في المتغير TempVars!mm ، أ. نعطي جملة SQL الى متغير ، ولنسميه mySQL ، ثم في اسفل نافذة الكود VBE ، في نافذة Immediate (ولفتح هذه النافذة Ctrl+G) ، نرى جملة الـ SQL كما يراها البرنامج : dim mySQL as string mySQL= "INSERT INTO المبيعات ( [كود الصنف], [اسم الصنف], المورد, [سعر البيع], اللون, المقاس, التاريخ, [نظام الدفع] ) SELECT فرعى.[كود الصنف], فرعى.[اسم الصنف], فرعى.المورد, فرعى.[سعر البيع], فرعى.اللون, فرعى.المقاس, Date() AS D, ""نقدي"" AS s FROM فرعى;" debug.print mySQL DoCmd.RunSQL mySQL . ب. انقر على الزر "ادفع" ، فنرى جملة SQL في النافذة : . ج. ننسخ هذه الجملة (بما ان الجملة فيها كلمات عربية ، فيجب ان تكون لغة لوحة المفاتيح بالعربية ، حتى نرى الكلمات العربية بالطريقة الصحيحة ، وإلا فهذه الكلمات ستتحول الى حروف اغريقية!!) اذا تم نسخ الجملة التي فيها كلمات عربية ، ولوحة المفاتيح بالانجليزي: . فعند لصقها في الاستعلام (او حتى في المنتدى) ، ستكون هكذا: . لذا يتوجب تغيير لوحة المفاتيح الى العربية . د. نفتح استعلام جديد ، ونطلب منه فتح نافذة الاستعلام في وضع SQL . . هـ. ثم نلصق جملة SQL التي نسخناها من نافذة VBE Immediate ، الى هذا الاستعلام: . ثم نعرض الاستعلام بوضع التصميم ، حتى يسهل علينا فهم جملة SQL : . فيصبح الاستعلام هكذا: . و. وبتغيير كلمة "نقدي" الى 'نقدي' (لأننا في الاستعلام نستخدم الخط الواحد ' وليس خطين " للنص) ، واضفنا حقل "اسم المستخدم" . ز. والآن نحول الاستعلام الى جملة SQL ، وننسخه الى الكود في VBE (ولو اني دائما افضل استعمال الاستعلام بدل الكود ، ولكن الامر راجع اليك) : . . ح. ونضعه في الكود : 'mySQL = "INSERT INTO المبيعات ( [كود الصنف], [اسم الصنف], المورد, [سعر البيع], اللون, المقاس, التاريخ, [نظام الدفع] ) SELECT فرعى.[كود الصنف], فرعى.[اسم الصنف], فرعى.المورد, فرعى.[سعر البيع], فرعى.اللون, فرعى.المقاس, Date() AS D, ""نقدي"" AS s FROM فرعى;" mySQL = "INSERT INTO المبيعات ( [كود الصنف], [اسم الصنف], المورد, [سعر البيع], اللون, المقاس, التاريخ, [نظام الدفع], [اسم المستخدم] )" mySQL = mySQL & " SELECT فرعى.[كود الصنف], فرعى.[اسم الصنف], فرعى.المورد, فرعى.[سعر البيع], فرعى.اللون, فرعى.المقاس, Date() AS D, 'نقدي' AS s, '" & [TempVars]![mm] & "' AS T" mySQL = mySQL & " FROM فرعى;" Debug.Print mySQL DoCmd.RunSQL mySQL . مع ملاحظة تغيير المتغير الى نص ، حتى يأخذ قيمته مباشرة من TempVars!mm : . . والآن نستخدم النموذج form2 ونجرب الزر: . والنتيجة : . جعفر 1275.المحل نسخة تجريبية.accdb.zip