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

هل من كود يغلق النموذج ويفتح التقرير ؟؟


الردود الموصى بها

3 دقائق مضت, الشربيني123 said:

كل سنة وانتم جميييييعااااااا طيبين  ... احبائي أعضاء المنتدى

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

اتفضل 
اذا بتستخدم اوفيس اصدار 2010 اليك هذا الكود
فرضنا عندك تقرير باسم rep1

DoCmd.BrowseTo acBrowseToReport, "rep1"

او اليك هذا الكود ستقدر تستخدم في كل اصدارات

DoCmd.OpenReport "Rep1", acViewPreview
DoCmd.Close acForm, Me.Name

 

  • Like 2
رابط هذا التعليق
شارك

والله انت راجل محترم ..فعلا التقرير rep1 و بأستخدم 2010

ربنا يزيدك علم ونور 

النمودج اسمه "خريطة البرنامج"  والتقرير " rep1

ممكن تكتب لي الكود  كاملا ....مع الشكر 

تم تعديل بواسطه الشربيني123
رابط هذا التعليق
شارك

51 دقائق مضت, jjafferr said:

اذا ممكن تعديل بسيط على كود أخي شفان:smile:


A = Me.Name
DoCmd.OpenReport "Rep1", acViewPreview
DoCmd.Close acForm, A

 

جعفر

استاذي الحبيب
ممكن تخبرني ما الفرق بينهما
انا دايما بستخدم كما انا كتبت وما فيه اي مشكلة ... هل هناك فرق ام ماذا ؟

منذ ساعه, الشربيني123 said:

النمودج اسمه "خريطة البرنامج"  والتقرير " rep1

ممكن تكتب لي الكود  كاملا ....مع الشكر 

اذا تفتتح التقرير من النموذج اي كود من الاكواد تستخدمه راح يعمل

هذا

DoCmd.BrowseTo acBrowseToReport, "rep1"

او هذا 

DoCmd.OpenReport "Rep1", acViewPreview
DoCmd.Close acForm, Me.Name

او كما كتبت استاذنا جعفر
هذا

54 دقائق مضت, jjafferr said:

A = Me.Name
DoCmd.OpenReport "Rep1", acViewPreview
DoCmd.Close acForm, A

تم تعديل بواسطه Shivan Rekany
  • Like 1
رابط هذا التعليق
شارك

الجملة Me.Name معناها اسم النموذج/التقرير ،

فلما تفتح نموذج/تقرير جديد وانت لم تغلق النموذج القديم ، وخصوصا اذا هذا النموذج/التقرير الجديد عنده حدث "عند التحميل او عند الفتح" ، فالجملة Me.Name لا تكون محفوظة للنموذج القديم ، وانما للنموذج/التقرير الجديد.

 

لذلك يُنصح ان:

  1. تحفظ اسم النموذج في متغير ثابت (مؤقتا ، مثل A) ،
  2. تفتح النموذج/التقرير الجديد ،
  3. ان تستخدم DoCmd.Close acForm, A للدلالة على ما تريد اغلاقه (خصوصا ان بعض المبرمجين للأسف يعطون نفس التسمية للنموذج والتقرير) ، فحينها لا يعرف الاكسس من يغلق ، فيغلق النموذج الجديد بدلا من القديم المطلوب اغلاقه.

وقد صادفت هذا الخطأ عدة مرات (ولم اعرف لماذا لم يتم فتح النموج/التقرير الجديد ، لأن الاكسس كان يفتحه ويُغلقه على طول) ، الى ان تعلمت ان ابرمج بهذه الطريقة:smile:

 

جعفر

  • Like 1
رابط هذا التعليق
شارك

6 دقائق مضت, jjafferr said:

فلما تفتح نموذج/تقرير جديد وانت لم تغلق النموذج القديم ، وخصوصا اذا هذا النموذج/التقرير الجديد عنده حدث "عند التحميل او عند الفتح" ، فالجملة Me.Name لا تكون محفوظة للنموذج القديم ، وانما للنموذج/التقرير الجديد.

يعني ... البرمجة عند الاكسس زعيفة جدا ولا يعرف Me.Name اذا تكتبه في محرر فيجوال للنموذج یعنی لا یعرف نفسه في اي نموذج نحن كتبناه !!؟
لكن انا استخدم هذه الطريقة وما صار معي اي مشكلة بعد ... لكن دائما اتبع طرائقك لاني اعرف من انت :smile:
تحياتي لك

  • Like 1
رابط هذا التعليق
شارك

اخي شفان

 

بحثت في احد برامجي الرئيسية ، وبالفعل رايت انني استخدمت هذه الطريقة اكثر من مكان ، مثلا:

    A = Me.Name
    Forms!frm_Main!cmb_Full_Name = ""
    Forms!frm_Main!cmb_Full_Name.Requery
    Forms!frm_Main!cmb_Full_Name2 = ""
    Forms!frm_Main!cmb_Full_Name2.Requery
    Forms!frm_Main!iFull_Name = ""
    
    DoCmd.Close acForm, "frm_All_Last_wo_COMM"
    DoCmd.Close acForm, A


و

    A = Me.Name
    
    Forms!frm_Personel_S!sfrm_Personel.Form.Requery
    Forms!frm_Personel_S!sfrm_Employee_Movement.Form.Requery
    Forms!frm_Personel_S!sfrm_Committees.Form.Requery
    Forms!frm_Personel_S!sfrm_Appreciation_Punishment.Form.Requery
    
    DoCmd.Close acForm, A

و

    A = Me.Name
    
    Forms!frm_Personel_S!sfrm_Personel.Form.Requery
    Forms!frm_Personel_S!sfrm_Employee_Movement.Form.Requery
    
    DoCmd.Close acForm, A

.

واستخدمت طريقتك مباشرة ، فتم اغلاق النموذج بطريقة صحيحة!!

فلا ادري اين صادفت هذه المشكلة ، وعليه اتبعت الطريقة الجديدة!!

 

فهذا معناه ان طريقتك المباشرة تعمل وبدون مشاكل:smile:

 

جعفر

 

  • Like 2
رابط هذا التعليق
شارك

12 دقائق مضت, jjafferr said:

فلا ادري اين صادفت هذه المشكلة

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

Docmd.Close

بدون ان نکتب اسم النموذج او نكتب Me.Name 
مثلا اذا نعطي امر فتح نموذج مثلا وبعدين نكتب هذا الكود مثلا 

DoCmd.OpenForm "form1", acNormal
DoCmd.Close


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

 

  • Like 2
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information