بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
-
Posts
946 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
10
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو Amr Ashraf
-
نرحب بالأخ عمرو اشرف ( Amr Ashraf ) فى انضمامه الى فريق الخبراء
Amr Ashraf replied to ابوخليل's topic in قسم الأكسيس Access
بارك الله فيك اخى الكريم -
السلام عليكم .. اول خطوة تحول مصدر بيانات القائمة الى 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
-
السادة الافاضل .. بالنسبة لمشكلة عدم عمل الكود على النموذج الفرعى Subform تم حلها بدون تعديل فى الموديول .. شرح الحل اذا قمت بمناداة الموديول عند حدث بعد التحديث لحقول النموذج الفرعى فما سيتم انه سيقوم بالحاق نفس السجل متكرر بنفس عدد التعديلات وبالتالى اذا قمنا ب4 تعديلات فإن اول 3 تعديلات سيتم تكرارهم 4 مرات والتعديل الاخير لن يتم تكراره وذلك لأن القيم المخزنة هى قيم السجل بالكامل وليس حقل واحد وبالتالى عند الحاقها بالجدول سيقوم بتقسيم السجل الى سطور وبهذا يتم التكرار .. انظر للمثال كما تلاحظ تم تكرار التعديل الاول مرتين والثانى لم يتم تكراره لأن ليس هناك تعديلات بعده وبالتالى لكى تعمل الطريقة يجب ان يتم استدعاء الكود فى حدث Before Update للنموذج الفرعى نفسه وليس الحقول بداخله وايضا نفس الموضوع للنموذج الرئيسى وبهذا سيقوم بتسجيل التعديلات التى تتم على النموذج الرئيسى والنموذج الفرعى وذلك بدون تعديل على الاكواد فى شئ . مرفق التعديل على مرفق الاستاذ @moamen salem , انظر التعديل @عمر ضاحى Dynamic Audit Trail + Subforms - Amr Ashraf v3.0.accdb
-
لأن الحقل 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
-
وقلت تحت حتة كود صغير على فكرة تشتغل من غير اكواد بس الليبل هيختفى بمجرد اختيار عنصر من القائمة ومش هيظهر تانى غير لو قفلنا النموذج وفتحناه . مش لازم يبقى فارغ يكفى انه يبقى فيه اى عنصر تانى بخلاف القائمة وبمجرد الانتقال هتشتغل تمام بدون مشاكل وأكيد مفيش نموذج هيبقى فيه قائمة بس لوحدها كده 😄 .. والترتيب Tab Order تكون القائمة مش اول حاجة فى الترتيب . جرب وقولى .
-
يبقى من المناقشات يا اخوان استنتجنا ان هناك طريقتين بدون اكواد لعمل المطلوب : الطريقة الاولى كما قال الاستاذ @ناقل والاستاذ موسى على خطوتين الخطوة الاولى كتابة العنوان فى حقل التنسيق فى خصائص الكومبوبوكس 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
-
مشكلة فى تقرير (مطلوب عمل حقل تجميعي للاجماليات)
Amr Ashraf replied to عمر ضاحى's topic in قسم الأكسيس Access
عليكم السلام ورحمة الله وبركاته .. فى ذيل التقرير انتا كاتب =Nz(Sum([TotalAOT]),0) استبدلها ب =Nz(Sum([Total]),0) النتيجة ا دوال الدمج مثل الجمع والعدد والمتوسط الخ .. فى التقرير ليس باسم عنصر التحكم ولكن باسم مصدر البيانات . بالتوفيق