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

Amr Ashraf

الخبراء
  • Posts

    946
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    10

كل منشورات العضو Amr Ashraf

  1. يا أستاذ يا أستاذ ممكن طريقة منع حذف القاعدة من الهارد ؟ لأنى احيان بمسح برامج واجى ادور عليها مش بلاقيها
  2. السلام عليكم .. اول خطوة تحول مصدر بيانات القائمة الى Value List الخطوة الثانية اضافة الكود التالى الى حدث AfterUpdate للكومبوبوكس الاول Private Sub cbo1_AfterUpdate() StrItem = Me.cbo1.Column(1) Me.Notce.AddItem (StrItem) ' اضافة الى آخر القائمة 'Me.Notce.AddItem (StrItem), 0 ' يتم تفعيلها والغاء السطر السابق اذا اردت الحاق القيمة فى اول القائمة وليس فى آخرها End Sub واضافة هذا الى الكومبوبوكس الثانى Private Sub cbo2_AfterUpdate() StrItem = Me.cbo2.Column(1) Me.Notce.AddItem (StrItem) ' اضافة الى آخر القائمة 'Me.Notce.AddItem (StrItem), 0 ' يتم تفعيلها والغاء السطر السابق اذا اردت الحاق القيمة فى اول القائمة وليس فى آخرها End Sub يتم اعلان متغير نصى StrItem فى بداية النموذج النتيجة هل هذا هو المطلوب ؟ مرفق القاعدة بعد التعديل ComboToListbox-Amr.accdb
  3. عليكم السلام ورحمة الله وبركاته .. وحشتنا مواضيعك يا استاذنا .. منور المنتدى ونتمنى تواجدك اكثر
  4. الموضوع كله معمول عشان تحط الكود فى اى نموذج يشتغل بدون اعدادات خاصة.. بالطريقة دى هنحتاج نعدل على كل النماذج او نعدل على الكود فى كل نموذج..
  5. هوا بالفعل لا يسجل اضافة سجلات هو فقط يسجل التعديلات على السجلات الموجودة بالفعل , ممكن تصورلى تقصد ايه من المثال الجديد
  6. عارف الموضوع ده بس مفيش ليه فكرة عندى لأنه بيجيب المصدر أياً كان هوا ايه جدول او استعلام عادى او جملة Sql , ممكن نفكر ليها فى طريقة اخرى بس حاليا معنديش
  7. السادة الافاضل .. بالنسبة لمشكلة عدم عمل الكود على النموذج الفرعى Subform تم حلها بدون تعديل فى الموديول .. شرح الحل اذا قمت بمناداة الموديول عند حدث بعد التحديث لحقول النموذج الفرعى فما سيتم انه سيقوم بالحاق نفس السجل متكرر بنفس عدد التعديلات وبالتالى اذا قمنا ب4 تعديلات فإن اول 3 تعديلات سيتم تكرارهم 4 مرات والتعديل الاخير لن يتم تكراره وذلك لأن القيم المخزنة هى قيم السجل بالكامل وليس حقل واحد وبالتالى عند الحاقها بالجدول سيقوم بتقسيم السجل الى سطور وبهذا يتم التكرار .. انظر للمثال كما تلاحظ تم تكرار التعديل الاول مرتين والثانى لم يتم تكراره لأن ليس هناك تعديلات بعده وبالتالى لكى تعمل الطريقة يجب ان يتم استدعاء الكود فى حدث Before Update للنموذج الفرعى نفسه وليس الحقول بداخله وايضا نفس الموضوع للنموذج الرئيسى وبهذا سيقوم بتسجيل التعديلات التى تتم على النموذج الرئيسى والنموذج الفرعى وذلك بدون تعديل على الاكواد فى شئ . مرفق التعديل على مرفق الاستاذ @moamen salem , انظر التعديل @عمر ضاحى Dynamic Audit Trail + Subforms - Amr Ashraf v3.0.accdb
  8. لأن الحقل ID عندك String او حقل نصى ولكن فى الموديول ID متعرف As Long وبالتالى الموديول بيتوقع لما يتم تمرير ID من النموذج انه هيكون رقم وليس حروف وارقام وبالتالى بيطلعلك الخطأ Type Mismatch ان الID متعرف كمتغير رقمى ولكن اللى بيطلع من النموذج متغير نصى . فهمت ؟ حل الموضوع كالتالى .. يتم تعديل الموديول ليقبل النص والرقم Public Function WriteAudit(frm As Form, StrID As String) As Boolean On Error GoTo err_WriteAudit Dim ctlC As Control Dim strSQL As String Dim bOK As Boolean bOK = False DoCmd.SetWarnings False ' For each control. For Each ctlC In frm.Controls If TypeOf ctlC Is TextBox Or TypeOf ctlC Is ComboBox Then If ctlC.Value <> ctlC.OldValue Or IsNull(ctlC.OldValue) Then If Not IsNull(ctlC.Value) Then strSQL = "INSERT INTO tblAudit ( ID, FieldChanged, FieldChangedFrom, FieldChangedTo, User, DateofHit, FrmName , FrmRcrdSrc ) " & _ " SELECT '" & StrID & "', " & _ "'" & ctlC.Name & "', " & _ "'" & ctlC.OldValue & "', " & _ "'" & ctlC.Value & "', " & _ "'" & GetUserName_TSB & "', " & _ "'" & Now & "' , " & _ "'" & M & "', " & _ "'" & r & "'" 'Debug.Print strSQL DoCmd.RunSQL strSQL End If End If End If Next ctlC WriteAudit = bOK exit_WriteAudit: DoCmd.SetWarnings True Exit Function err_WriteAudit: MsgBox Err.Description Resume exit_WriteAudit End Function لاحظ هذا السطر قديم Public Function WriteAudit(frm As Form, lngID As Long) As Boolean بعد التعديل Public Function WriteAudit(frm As Form, StrID As String) As Boolean جرب ووافنى بالنتيجة @Eng.Qassim لاحظ سبب المشكلة . Dynamic Audit Trail - Amr Ashraf v2.0.accdb
  9. بيقولى لا تملك صلاحية 😄 ولهذا عملت هذا الموضوع بهذه الطريقة من الاساس
  10. ممكن بعض الاخوة ميعجبهومش الطريقة ويعتقدوا انه اختبار او شئ من هذا القبيل .
  11. وقلت تحت حتة كود صغير على فكرة تشتغل من غير اكواد بس الليبل هيختفى بمجرد اختيار عنصر من القائمة ومش هيظهر تانى غير لو قفلنا النموذج وفتحناه . مش لازم يبقى فارغ يكفى انه يبقى فيه اى عنصر تانى بخلاف القائمة وبمجرد الانتقال هتشتغل تمام بدون مشاكل وأكيد مفيش نموذج هيبقى فيه قائمة بس لوحدها كده 😄 .. والترتيب Tab Order تكون القائمة مش اول حاجة فى الترتيب . جرب وقولى .
  12. لا شكر على واجب , لا تنسى موافاتنا بتحليلك للمشكلة . أحسنت كنت مستنى حد يذكرها .. ممكن تعديل الكود ليعمل فى الحالتين سأحاول عملها فى اقرب وقت ودمجها فى الموضوع . الموضوع فى بالى من الاول بس مستنى المناقشات .
  13. يبقى من المناقشات يا اخوان استنتجنا ان هناك طريقتين بدون اكواد لعمل المطلوب : الطريقة الاولى كما قال الاستاذ @ناقل والاستاذ موسى على خطوتين الخطوة الاولى كتابة العنوان فى حقل التنسيق فى خصائص الكومبوبوكس Format كالتالى @;"العنوان المطلوب" والخطوة الثانية تنسيق شرطى للكومبوبوكس فى حالة الفراغ كالتالى Expression Is IsNull([Combo])=True واختر التنسيق المطلوب . ملاحظات على الطريقة : تنسيق العنوان سيكون مثل تنسيق القائمة من حيث حجم الخط و المحازاة و مائل او عريض Bold . لن يمكنك تحديد تنسيق مختلف للعنوان فى هذه الحالة . الطريقة الثانية : طريقة العباقرة كما كشفها الاستاذ @أبو عبدالله الحلوانى عمل ليبل على القائمة وتحديد موقعه Bring To Front او جلب للأمام وممكن نزود حتة كود صغير After Update كالتالى 😄 If Not IsNull(Me.Combo0) Then Me.Label2.Visible = False Else Me.Label2.Visible = True End If طبعا خاصية Bring to Front او Send to Back لا يتم استخدامها الا فى وضع التصميم Design View وبالتالى سنستعين بخاصية الاظهار للعناصر للتحكم فى وقت ظهور واختفاء الليبل ولتكون النتيجة كما فى اول الموضوع . المزايا فى هذه الطريقة ان يمكنك تحديد تنسيق مختلف للعنوان من حيث حجم الخط او المحازاة او نوع الخط وهكذا . سامحونى على الطريقة من باب التسلية والنقاش بين الاخوة مرفق مثال به الطريقتين دمتم بخير Combo box Title.accdb
  14. استاذ 😆.. طريقة اطفال بس تقوم بالمطلوب فى الحالة دى
  15. عليكم السلام ورحمة الله وبركاته .. فى ذيل التقرير انتا كاتب =Nz(Sum([TotalAOT]),0) استبدلها ب =Nz(Sum([Total]),0) النتيجة ا دوال الدمج مثل الجمع والعدد والمتوسط الخ .. فى التقرير ليس باسم عنصر التحكم ولكن باسم مصدر البيانات . بالتوفيق
  16. يا هندسة هل تقصد جدول TblAudit ؟ .. هذا هو الجدول الوحيد المطلوب استيراده مع الموديولات اما باقى الجداول لا علاقة لها بالموضوع .. أيا كانت الجداول الموجودة فى القاعدة لن يتغير فى الكود أى شئ .. تشرفت بمرورك
  17. بس فيه حاجة مخدتش بالك منها ان تنسيق العنوان مختلف عن قيم القائمة المنسدلة .. ركز فى المثال هتلاقى قيم القائمة محازاة يسار ولكن العنوان محازاة فى المنتصف بالاضافة الى ان حجم الخط مختلف
  18. ارفق ما قمت به .. لا علاقة للجداول بالموضوع الفكرة كلها فى الاكواد .. الجدول الوحيد المطلوب هو TblAudit لتسجيل التغيرات به
  19. أحسنتم .. هذه طريقة ولكنها ليست ما استخدمته فى المثال لا طبعا .. قلت من باب التسلية وتشارك الافكار فقط
  20. السلام عليكم .. الاخوان الاعزاء سؤال من باب الترفيه والتسلية وتشارك الافكار فى نفس الوقت كيف يتم عمل التالى بدون اكواد طبعاً فى الآخر هقول الطريقة اللى عملتها بها بس اسمع آراء الاخوة دمتم بخير
  21. هوا بيسجل اسم المستخدم الخاص بالويندوز مش البرنامج.. وعامة زيادتها سهلة يبقوا الاتنين موجودين .. شرفنى مرورك
×
×
  • اضف...

Important Information