الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ما معنى ما يأتي[openargs] وغيرها

بدأه Azizmm في 12 يوليو 2009 · 3 رد · 703 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــه ،،

أهلاً ومرحباً .. أهلا بمن أتانا بتحية وسلام يريد الترحيب بأحلى الكلام .. يريد أن نعلن له الأنضمام .. إلى كوكبة أعضائنـا الكرام ،،

أود ان اطرح استفسار عن معنى ما يأتي:

فعند كتابة الأمر-OpenForm- تظهر نافدة بها عدة اشياء مطلوبه منها:FormName-OpenArgs

فحبذا لو تكرمتم وشرحتم لنا لتعم الفائدة للجميع معاني تلك المطلوبات وخاصة منها-:OpenArgs- وحبذا مع مثال

كما اود من لديه كتاب يوضح ذلك اكون شاكراً له معروفه

ومشكورين مشكورين

#2

للرفع

#3

اخي الفاضل

خاصية OpenArgs هي من ضمن خصائص امر الفتح سواء للنموذج او التقرير حيث تكون هذه الخاصية موجوده في اخر صيغة امر الفتح بهذه الطريقة

DoCmd.OpenForm(FormName, View, FilterName, WhereCondition, DataMode, WindowMode, OpenArgs)

هذا البارامتر ( OpenArgs ) يعني افتح النموذج او التقرير على الإسم او الرقم المحدد في هذه العباره

مثال :

يوجد لديك نموذجين النموذج الأول مثلا اسمه frmMain والنموذج الثاني اسمه مثلا frmEmployees الآن نريد ان نضع زر امر في النموذج frmMain بحيث يقوم بفتح النموذج frmEmployees ولكن نريد ان يفتح النموذج الثاني على اسم محدد وليكن مثلا zahrah

لذا نضع كود الفتح بهذه الطريقة

Private Sub Command0_Click()
DoCmd.OpenForm "frmEmployees", acNormal, , , , acWindowNormal, "zahrah"
End Sub

لاحظ كلمة zahrah في آخر الكود هذا هو باراميتر OpenArgs

الآن نتوجه الى النموذج الثاني frmEmployees ونضع عند حدث الفتح هذا الكود

Private Sub Form_Open(Cancel As Integer)
       If Not IsNull(Me.OpenArgs) Then
        Dim strA As String
        strA = Me.OpenArgs
        Dim RS As DAO.Recordset
        Set RS = Me.RecordsetClone
        RS.FindFirst "sName = '" & strA & "'"
        If Not RS.NoMatch Then
            Me.Bookmark = RS.Bookmark
        End If
    End If

End Sub

حيث sName هو اسم حقل الإسم في النموذج

و OpenArgs تم الحصول عليها من النموذج الأول حيث وضعنا في النموذج الأول عند فتح النموذج الثاني اسم zahrah

لهذا عند فتح النموذج الثاني سيتم فتحه على السجل الذي يحتوي على اسم zahrah بغض النظر عن موقع هذا السجل سواء الأول او المائة او الأخير فإنه يتم الفتح عليه مباشرة

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

بالتوفيق

تم تعديل هذه المشاركة بواسطة zahrah في 6 سبتمبر 2012 في 01:33

#4

لاحظ كلمة zahrah في آخر الكود هذا هو باراميتر OpenArgs

إلى هنا مفهوم

لكن لماذا نحتاج لوضع أكواد فى الفورم الثانى

أذلك لتحديد عنصر التحكم" اسم الحقل" المشتمل على البارامتر؟

يعنى البارمتر هو علامة نستخدمها لاحقا فى أحد حقول الفورم الثانى؟

عموما جهزت نموذجين

وضعت بالأول الكود التالى

If Me.NewRecord Then 'open form without passing anything in OpenArgs
   DoCmd.Close acForm, "table2"
    DoCmd.OpenForm "table2"
  Else 'pass EmpID and name in OpenArgs
      DoCmd.Close acForm, "table2"
     DoCmd.OpenForm "table2", , , , , , Forms!table1!Sname
  End If

و البارامتر هو قيمة حقل فى الفورم الأول

 DoCmd.OpenForm "table2", , , , , , Forms!table1!Sname

وليس قيمة محددة

ثم فى الفورم الثانى

نفتح بشرط أن يكون قيمة نفس الحقل فى الفورم الثانى

تساوى البارامتر

Private Sub Form_Open(Cancel As Integer)
    If Not IsNull(Me.OpenArgs) Then
        Dim strA As String
        strA = Me.OpenArgs
       Dim RS As DAO.Recordset
       Set RS = Me.RecordsetClone
       RS.FindFirst "sName = '" & strA & "'"
       If Not RS.NoMatch Then
           Me.Bookmark = RS.Bookmark
    End If
    End If
End Sub

و هذا باختصار

يفتح الفورم الثانى على قيمة حقل الاسم فى الفورم الأول

حسب السجل الذى نقف عليه

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

بدأت المعالم تتضح

وهذا مثالى أعددته لمن يريدtest-kemas.rar

post-205827-082471500 1346946010_thumb.p

المرفقات
Capture.PNG

تم تعديل هذه المشاركة بواسطة أبو لميس في 6 سبتمبر 2012 في 18:42

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…