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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

كل منشورات العضو jjafferr

  1. السلام عليكم 🙂 من هذا الموضوع: اليك خلاصة طلبك : . والامر NZ معناه Null to Zero ، اي يحول حقل الـ Null وهو الحقل الذي لم يتم في ادخال اي معلومة ، وهو غير الحقل الذي تكون قد ادخلت فيه معلومة ثم حذفتها ، فالامر الاول يصيد هذه القيمة كذلك 🙂 جعفر
  2. وعليكم السلام 🙂 انا رديت على سؤالك قبل ان تسأله انت (ونسيت اذكر الجدول المؤقت) : جعفر
  3. وعليكم السلام 🙂 رجاء اعطاء تصور عن المطلوب ، فطرق العرض كثيرة 🙂 جعفر
  4. وعليكم السلام 🙂 . . الآن نريد معرفة رقم الزر F5 : Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) MsgBox KeyCode End Sub . وعند فتح النموذج ، نضغط على الزر F5 ، فنحصل على رقمه : . الآن نعود الى الحدث اعلاه ، ونخبر الاكسس ما نريد عمله عند الضغط على الزر F5 (الذي رقمه 116) : حدث النقر على الزر الاحمر "الرسالة Private Sub cmd_F5_Click() MsgBox "السلام عليكم" End Sub Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) If KeyCode = 116 Then Call cmd_F5_Click '<---- ننادي الحدث اعلاه End If End Sub . والنتيجة . جعفر 1315.Press_F5.accdb.zip
  5. وعليكم السلام 🙂 . . ثم في حدث عند تنسيق قسم التفصيل Detail من التقرير ، نضع هذا الكود الذي يخفي الحقل الفارغ ويجعل ارتفاعه = صفر اذا كان الحقل فارغ ، وإلا فيتركه كما هو : Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) On Error Resume Next Dim ctl As Control Dim txt As String Dim lbl As String For Each ctl In Me.Controls If ctl.ControlType = acComboBox Then txt = ctl.Name lbl = ctl.Name & "_تسمية" If Me(txt).Text = "" Then ctl.Visible = False ctl.Height = 0 Me(lbl).Visible = False Me(lbl).Height = 0 Else ctl.Visible = True ctl.Height = 0.2188 * 1440 Me(lbl).Visible = True Me(lbl).Height = 0.2188 * 1440 End If End If Next End Sub . والنتيجة . جعفر 1314.الجدولي اليومي.accdb.zip
  6. على كمبيوتر المبرمج يمكنك كتابة التسمية بالعربي هو جزء من الكود ، فلا ينبغي كتابة اي حرف من اللغة العربية في الكود 1. اليك رابط آخر قد يفيدك: اعمل برنامجك بعدة لغات وببساطة - قسم الأكسيس Access - أوفيسنا (officena.net) 2. مافي تحويل ، تكتبها في الجدول بالعربي 3. ومافي داعي تغيير اي شيء في كمبيوتر المستخدم 🙂 جعفر
  7. وعليكم السلام 🙂 لجعل برنامجك يعمل على جميع الكمبيوترات : 1. اعمله بأقل اصدارات الاكسس ، مثلا 2003 ، وإلا ، فالبرامج المعمولة على اكسس 2007 فما فوق ، لن تعمل مع الاكسس 2003 ، 2. نصب الاكسس الانجليزي ، ومافي مانع تنصب معاه حزمة اللغة العربية ، 3. جميع اسماء الكائنات (وليس البيانات) يجب ان تكون باللغة الانجليزية ، ومافي مشكلة في ان تكون المسميات Caption باللغة العربية ، 4. لا تكتب في الكود إلا باللغة الانجليزية 🙂 وهذا موضوع شبيه بموضوعك : هل من حل شافى لمشكلة اختلاف اعدادات اللغة بالويندز على الأجهزة المختلفة - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر
  8. وعليكم السلام 🙂 طريقة عرض التقرير الافضل ، هو التقرير الاسرع 🙂 اخذ بيانات الملف المرفق : مكتبة الموقع - ملف قاعدة بيانات اكسس يحتوي على 3,919,015 سجل ، لتجربة سرعة برنامجك - قسم الأكسيس Access - أوفيسنا (officena.net) واعمل التقرير بجميع الطرق التي تعرفها ، واعطنا نتيجة سرعة فتح كل واحد منهم ، كما عملته انا هنا : ومن هذه النتيجة ، سيعرف اخونا @عبدالقدوس48 الطريقة الافضل (حتى ولو كانت الطريقة الاعتيادية 🙂 ) جعفر
  9. وعليكم السلام 🙂 المثل يقول: العين تأكل قبل الفم ، وفي برنامجك ، العين تستمتع به قبل الاستعمال 🙂 عمل جميل 🙂 جعفر
  10. والله يا ابو خليل ، من كثر ما برنامجك لوسمحت تشرح لنا هذه الجزئية 😁 MsgBox fullName() 'وضعت هذه الرسالة للاستأناس وسط هذا الكم الهائل من الاكواد المعقدة الموجودة في المنتدى ، من زمان ما شفنا شيء بهذه البساطة 🥰 جعفر
  11. نعم 🙂 بدل عمل وحدة نمطية جديدة لكل جزء 🙂 جعفر
  12. طبعا في اسماء يجب التعامل معها بطريقة خاصة ، وتقدر تدخلها في الوحدة النمطية ، ولكن اليك ما تعمله الوحدة النمطية: Function SP(M, N) On Error GoTo err_SP Dim A As Integer 'testing If M = "äæÑÇáÏíä Úáã ÇáÏíä ÚÈÏ ÇáÍÝíÙ" Then A = 1 End If 'SP = Seperate Mother's name to its names 'M = Mothers name 'N = Which part of the name we are looking for Dim x() As String 'check if ÚÈÏ has a space after it, if not, add the space If InStr(M, "ÚÈÏ") > 0 Then M = Replace(M, "ÚÈÏ", "ÚÈÏ ") End If M = Replace(M, " ", " ") M = Replace(M, " ", " ") M = RTrim(M) M = LTrim(M) 'insert | to distinguish the combined names M = Replace(M, "ÚÈÏ ", "ÚÈÏ|") x = Split(M, " ") '1st name If N = 1 Then SP = x(0) '2nd name ElseIf N = 2 Then SP = x(1) '3rd name ElseIf N = 3 Then SP = x(2) '4th name ElseIf N = 4 Then SP = x(3) End If 'Remove the extra | SP = Trim(Replace(SP, "ÚÈÏ|", "ÚÈÏ ")) Exit Function err_SP: If Err.Number = 94 Then 'mother null SP = "" ElseIf Err.Number = 9 Then SP = "" Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function جعفر 1313.Test Four Name.mdb.zip
  13. انا كنت عامل كود بسيط لتفكيك الاسم ، يحسب حساب كلمة "عبد" ، فياريت ترفق لنا مرفق فيه بعض الاسماء علشان نجرب عليها 🙂 وطبعا ، ادخال الاسماء الاربعة مفككة هي الطريقة الصحيحة 🙂 جعفر
  14. انا اعمل لك البرنامج في الاكسس ، وتقريبا خلص ، ولكني واصل في التقرير : Positive ، negative ، All ;كيف طريقته ؟
  15. الحقول لم تكن Null وانما كانت فارغة !! استعمل هذا الاستعلام : . UPDATE Tabl_1 SET Tabl_1.A1 = f_A1(IIf(Len([A1] & "")=0,"|",[A1])), Tabl_1.A2 = f_A2(IIf(Len([A2] & "")=0,"|",[A2])), Tabl_1.A3 = f_A3(IIf(Len([A3] & "")=0,"|",[A3])), Tabl_1.A4 = f_A4(IIf(Len([A4] & "")=0,"|",[A4])), Tabl_1.A5 = f_A5(IIf(Len([A5] & "")=0,"|",[A5])); . جعفر 1312.Database2.accdb.zip
  16. كله تمام يا بشمهندس 🙂 جعفر
  17. اعطنا الملف وخلينا نشوف !! المفروض يشتغل على طول 🙂 جعفر
  18. انزل المرفق الذي به النسخة 2.02 ، فهي تدعم اللغة العربية ، او اتبع طريقة الاستاذ محمد ومرفقه 🙂 جعفر
  19. 😬 وانت عرفت ازاي ، يخرابي ، سر وانكشف 😬
  20. شوف يا أمير 🙂 الليلة كريسمس ، فالجماعة اللي يطيروا ، واللي اناديهم بالبخور ، ويجون يساعدوني ، مشغولين عني الليلة ، عماني واعرف شغلي 😁 فإذا اردت ان اساعدك ، فالمساعدة لازم تيجي منك مباشرة 😁 ارفق الكود اللي عندك فيه مشكلة ، او البرنامج ، لأني عملت التعديل على البرنامج اللي انت ارفقته 🙂 جعفر
  21. السلام عليكم 🙂 استاذ فايز ، اذا تذكر الاكواد الطويلة اللي كتبتها لك عند استيراد اكثر من صفحة من ملفات الاكسس ، او اكثر من ملف اكسس ، هذه الاكواد كانت لتنظيف البيانات من السجلات الفارغة (مثل السجل الاول الذي به الاسم ، ثم اخذ الاسم وبقية البيانات من السجل الاول واتسجيله لبقية السجلات التابعة للطالب 🙂 اما وقد رجعنا الى كود استيراد البيانات من الاكسل كما هي ، فوجب علينا ، ومثل ما قال اخي اباجودي ، فعلينا بتعبئة هذه البيانات ، لذا عملت استعلام تحديث ، ليقوم بتعبئة هذه البيانات ، بعد استيرادها مباشرة من ملف الاكسل ، هكذا : Private Sub command1_Click() Dim ImportFileName As String ImportFileName = CurrentProject.Path & "\CS_FinalMarksReport" & ".xlsx" CurrentDb.Execute ("Delete * From Tabl_1") If MsgBox("هل تريد استيراد البيانات من جديد ؟", vbYesNo + vbMsgBoxRight, "تنبيه") = vbYes Then DoCmd.TransferSpreadsheet acImport, 8, "Tabl_1", ImportFileName, True DoCmd.SetWarnings False '| DoCmd.OpenQuery "qry_Filled" '| <------- DoCmd.SetWarnings True '| MsgBox "تم استيراد البيانات بنجاح" Else MsgBox "تم إلغاء عملية الاستيراد " End If End Sub . وهذا هو الاستعلام : . وهذه جملة SQL الاستعلام: UPDATE Tabl_1 SET Tabl_1.A1 = f_A1(Nz([A1],"|")), Tabl_1.A2 = f_A2(Nz([A2],"|")), Tabl_1.A3 = f_A3(Nz([A3],"|")), Tabl_1.A4 = f_A4(Nz([A4],"|")), Tabl_1.A5 = f_A5(Nz([A5],"|")); . وهذه هي الوحدات النمطية التي تناديها للعمل: Option Compare Database Option Explicit Public p_A1 As String Public p_A2 As String Public p_A3 As String Public p_A4 As String Public p_A5 As String ' Public Function f_A1(A1 As String) As String If A1 = "|" Then f_A1 = p_A1 Else p_A1 = A1 f_A1 = p_A1 End If End Function Public Function f_A2(A2 As String) As String If A2 = "|" Then f_A2 = p_A2 Else p_A2 = A2 f_A2 = p_A2 End If End Function Public Function f_A3(A3 As String) As String If A3 = "|" Then f_A3 = p_A3 Else p_A3 = A3 f_A3 = p_A3 End If End Function Public Function f_A4(A4 As String) As String If A4 = "|" Then f_A4 = p_A4 Else p_A4 = A4 f_A4 = p_A4 End If End Function Public Function f_A5(A5 As String) As String If A5 = "|" Then f_A5 = p_A5 Else p_A5 = A5 f_A5 = p_A5 End If End Function . ومن هنا ، فيمكنك عمل استعلام عادي لأي شيء يخص البيانات ، مثل طلبك في هذا الموضوع 🙂 ونعم تستطيع استعمال الاستعلام لتعبئة بيانات جدولك الحالي ، وبدون استيراده مرة اخرى 🙂 جعفر 1312.Database2.accdb.zip
  22. جرب هذا التعديل If len(me.Filddate & "")=0 then Me.Allowedits = true else Me.Allowedits = false endif جعفر
×
×
  • اضف...

Important Information