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

كشكول VBA ... متجدد


أبو آدم

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

أحتاج لخيار آخر غير InputBox بحيث يكون قابل للسيطرة و متناسقاً مع النظام من حيث الشكل وتنسيق النماذج !!

 

هذه هينة بإذن الله ...

 

قم بإنشاء نموذج بالحجم الذي تجده مناسبا

قم بانشاء مربع نص بإسم Text000

قم بانشاء زر أمر بإسم ComClose وسمه OK

قم بانشاء زر أمر بإسم ComCancel وسمه Cancel

 

وفي محرر الفيجوال للنموذج ضع مجموعة الكودات التالية :

 

 

 

Private Sub ComClose_Click()
If IsNull(Me.Text000) Or Me.Text000 = "" Then
MsgBox ("You did not provide anything!")
Else
MsgBox ("You entered: '" & Me.Text000 & "' as the value!")
End If
DoCmd.Close acForm, Me.Name
End Sub


Private Sub ComCancel_Click()
MsgBox ("You pressed Cancel!")
DoCmd.Close acForm, Me.Name
End Sub




Private Sub Form_Timer()
DoCmd.Close acForm, Me.Name
End Sub


Private Sub Text000_Change()
Me.TimerInterval = 0
End Sub

 

التطبيق بسيط وفعاّل

عند فتح النموذج وعدم التفاعل معه لمدة 10 ثواني يغلق تلقائياً

عند إدخال أي نص في مربع النص تظهر الحروف على شكل نجمة (كلمة سر)

بالموافقة على النص المدخل OK تظهر رسالة توضح النص المدخل ، وهنا يمكننا وضع الكود المناسب للتطبيق من حيث إعتماد القيمة أو رفضها ...

في حال ترك مربع النص فارغاً وضغط OK تظهر سالة تفيد بانه لم يتم إدخال أي قيمة

في حال الضغط على الزر Cancel يتم إشعارنا برسالة بخيارنا ويتم إغلاق النموذج

 

جرب .... 

 

 

:welcomeani:

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

إخوتي الفضلاء

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

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

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

attachicon.gifThanks.jpg

وشكرا للجميع تقديركم وتشجيعكم لي للمتابعة ....

 

في المشاركة 39 كنت تحدثت عن تعذر قبول المشاركات ، وقد رأيت اليوم ما لم أرى بالأمس ...

يتم فتح الموضوع للمشاركة ، والتفاعل

 

والله من وراء القصد ... وهو حسبي 

 

...... :signthankspin:  :yes:  :welcomeani: 

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

  • 2 weeks later...

بين النموذج و التقرير : إظهار التقرير وتصديره لمسار معين بصيغة  PDF


 

لدينا تقرير لعميل ، نود الإطلاع على التقرير Preview وبعد تدقيق التقرير والتأكد من المعلومات ،
نختار بين الرفض أو تصديره لمسار معين (حيث يتم حفظ تقارير هذا العميل ) على
الخادم (السيرفر) أو غيره ... !!



في النموذج وخلف زر أمر ننسخ الكود التالي :

 


 

Private Sub Command56_Click()
On Error GoTo Err_Command56_Click

    Dim stDocName As String

    stDocName = "Rep_ACC_Tracker"
    DoCmd.OpenReport stDocName, acPreview

Exit_Command56_Click:
    Exit Sub

Err_Command56_Click:
    MsgBox Err.Description
    Resume Exit_Command56_Click
    
End Sub

 


وفي محرر الفيجوال للتقرير ، ننسخ الكود التالي :


 

 

Private Sub Report_Deactivate()

Dim LResponse As Integer
Dim MyFiLeName As String

    If Not NoData Then  ' checks for no data event to prevent a mis fire
        DoEvents
        MyFiLeName = "D:\Customer reports\ACC\" & "Rep_ACC_Tracker" & Format(Now, "dd-mm-yyyy hhnnss") & ".pdf"
        DoEvents
        LResponse = MsgBox("Do you wish to Save Your Adobe File to a ACC file location", vbYesNo, "Save Now or loose it")
        DoEvents
        If LResponse = vbYes Then
         
          DoCmd.OutputTo acOutputReport, "Rep_ACC_Tracker", acFormatPDF, MyFiLeName, True
         DoEvents
        Else
       End If
End If
End Sub

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

شكرا لك كثيرا استاذي الكبير

استفدت من مثالك كثيرا

 

وعملت تحديثات باستخدام أمر زر وبنفس الكود بما يناسبني كالتالي :

 

 

Private Sub Command18_Click()


Dim LResponse As Integer
Dim MyFiLeName As String

    If Not NoData Then  ' checks for no data event to prevent a mis fire

        DoEvents
        LResponse = MsgBox("Do you wish to Save the report", vbYesNo, "Save Now or loose it")
        
        DoEvents
        If LResponse = vbYes Then
        
        DoEvents
        MyFiLeName = "D:\Customer reports\" & Format([TabCompName]) & Format(Now, "dd-mm-yyyy hhnnss") & ".pdf"
         
         
' هنا يمكننا اظهار عنوان موقع الملف المحفوظ

        MsgBox "The report was safed successfully" & vbCrLf & MyFiLeName, vbInformation
         
         
' وبهذا الكود يمكننا اظهار فقط معلومة الحفظ
' MsgBox "The report was safed successfully" & vbCrLf, vbInformation


         DoCmd.OutputTo acOutputReport, "TabCompanies", acFormatPDF, MyFiLeName, True
         DoEvents
         

        If LResponse = vbNo Then
        
       DoCmd.CancelEvent
        
        Else
       End If
End If
End If


End Sub

 

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

اجعل الأسطر المتكررة في وظيفة
إذا رأيت أن هناك أسطرا مكررة في الأكواد التي تكتبها فقم بتحويلها إلى وظيفة
وذلك لأن الكود الذي يتكرر مرة واحدة أسهل في صيانته واختباره واستخدامه والتعديل عليه ، بخلاف الكود
الذي يتكرر مرات عديدة.
ولتوضيح هذا نفرض أن لديك أسطر خمسة من كود تكررت في برنامجك عشرين مرة ، ثم رغبت في التعديل
عليها أو اكتشفت أن فيها خطأ ، حينئذ يلزمك أن تقوم بالتعديل عليها في 20 موضعا ، وربما تنسى بعض
المواضع أو تخطئ فيها فينتج عن هذا عدد من الأخطاء الأخرى.
أما إذا كنت استخدمت وظيفة كتبت فيها هذه الأسطر الخمسة وقمت باستدعائها في العشرين موضعا ، فسيكون
كل ما عليك هو التعديل في هذه الوظيفة
  • Like 2
رابط هذا التعليق
شارك

الاخوة الكرام السلام عليكم ورحمة الله : 

لدي مشكلة وارجو المساعدة .. من خلال سؤالي عن اكواد لبعض العمليات في اكسس 2010 وبالاعتماد على النسخ واللصق كنت استفيد واحقق المطلوب  لكن مشكلتي اني لم استطع فهم طريقة كتابة الكود بالرغم من محاولتي دراستها .. بالمختصر احتاج الى من يرشدني الى كتاب يشرح طريقة كتابة الكود في فيجوال بيسك وجزيتم خيرا

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

السلام عليكم
الاستاذ القدير الراائع / أبو آدم

بارك الله فيك

فكرة رائعة ... ومفيدة جدا جدا جدا للجميع

المبتدئين والمتمرسين وايضا الخبراء

اعانك الله علي استكمال المشوار فالمشوار طويل

وجعله الله في ميزان حسناتك

جزاك الله خيرا

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

  • 2 weeks later...
  • 2 weeks later...
  • 4 weeks later...
  • 1 month later...
  • 1 month later...
  • 2 weeks later...

الاخوة الكرام السلام عليكم ورحمة الله : 

لدي مشكلة وارجو المساعدة .. من خلال سؤالي عن اكواد لبعض العمليات في اكسس 2010 وبالاعتماد على النسخ واللصق كنت استفيد واحقق المطلوب  لكن مشكلتي اني لم استطع فهم طريقة كتابة الكود بالرغم من محاولتي دراستها .. بالمختصر احتاج الى من يرشدني الى كتاب يشرح طريقة كتابة الكود في فيجوال بيسك وجزيتم خيرا

 

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

  • 1 month later...

 

الاخوة الكرام السلام عليكم ورحمة الله : 

لدي مشكلة وارجو المساعدة .. من خلال سؤالي عن اكواد لبعض العمليات في اكسس 2010 وبالاعتماد على النسخ واللصق كنت استفيد واحقق المطلوب  لكن مشكلتي اني لم استطع فهم طريقة كتابة الكود بالرغم من محاولتي دراستها .. بالمختصر احتاج الى من يرشدني الى كتاب يشرح طريقة كتابة الكود في فيجوال بيسك وجزيتم خيرا

وانا اضم صوتي الي صوتك ... ففهم المنطق والقواعد العامة للكتابه هي مفتاح التعلم

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

  • 5 weeks later...

 

من خلال النموذج الرئيسي لدي نموذج فرعي إسمه frmSub

أريد تبديل النموذج الفرعي حسب الحاجة بين أكثر من نموذج فرعي frm_Sub_4  .. frm_Sub_3 .. frm_Sub_2.. frm_Sub_1 ... !!

 

بسيطة ...

 

خلف حدث عند الضغط  لزر أمر في النموذج الرئيسي نضع الكود التالي :

Me.frmSub.SourceObject = "frm_Sub_2"
 

أو

Me.frmSub.SourceObject = "frm_Sub_3"
 

وهكذا ....

 

..  :dance1:

 

 

استفادة عظيمة بارك الله فيك

هناك مشكلة

إذا كان النموذج الفرعى هو نموذج أجازات الموظف

فى حالة  عدم وجود سجل للموظف فى جدول الأجازات ( لأنه لم يأخذ أجازة)

عند عرض سجل هذا الموظف فى النموذج الرئيس

والتبديل إلى نموذج الأجازات

فإن النموذج الفرعى يفتح على سجل أول موظف له أجازة فى جدول الأجازات

ولا يفتح على الموظف الذى فى النموذج الرئيسى

إلا إذا كان له أجازة

فما الحل رحمك الله

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

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