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

ابو جودي

أوفيسنا
  • Posts

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

  • Days Won

    208

كل منشورات العضو ابو جودي

  1. وزيادة فى الخير فكرة تانى اسهل للمبتدئين أمثالى ونصيحة لا تقم بالغاء حقل الترقيم الاساسى ID من الجداول فتح نافذة بناء على أكثر من شرط 2003.accdb بعد اذن حضرتك يا باش مهندس @Eng.Qassim تعديل ثغنون stLinkCriteria = "[Sys_ID]=" & Me![Sys_ID] & " And [Sys_Year]=" & Me![Sys_Year] & " and [Sys_Type]='" & Me![Sys_Type] & "'" الافضل فى وضع مسافة بين علامة التنصيص وكلمة And لتكون " And بدلا من "And
  2. السلام عليكم استاذ @محمد مدحت اهلا بيك مبدئيا بدون زعيق قبل أى شئ انا مررت على القاعدة والموضوع مرور الكرام بصراحة من فضلك جرب المرفق او تمام قول الحمد لله ولو لا قدر الله مش تمام سامحنى لان انا الى الان لم افهم اى شئ test(2).zip
  3. السلام عليكم ورحمة الله تعالى وبركاته استاذ @حسام نصير ممكن تجربة المرفق الاتى اولا ولى عودة ان شاء الله وكان لى فى العمر بقية هذه تجربة جديدة فقط لقراءة النصوص العربية واعتقد انها تعتمد على وجود اللغة العربية ك Speech ضمن الويندوز لذا بعد تجربتكم رجاء أخبرنى هل تمت القراة بنجاح ام لا وفى حالة لم تتم القراءة رجاء أخبرنى بيانات الويندوز الذى تعمل عليه ؟ ومرفق ملف تطبيق يساعدك على تثبيت اللغة التى تريد قم بتجربته VoicesInstaller Test.accdb VoicesInstaller.zip
  4. للعلم هذا اختيار موقف وللعلم ان اردت النقر على هذا الباب ابتعد عن VB.Net هى ليست حديثه بدأت اللغة كما عرفت اولا بـالـ C ثم الـ C++ ثم الـ C# https://ar.wikipedia.org/wiki/سي%2B%2B ثم تم التطوير بعد ذلك https://ar.wikipedia.org/wiki/سي_شارب وذلك لتنافس Java ولغات البرمجة الاخرى
  5. مبارك اخي ناقل العيد ومبارك الترقية تستاهل كل خير ... شد حيلك للعلم هذا تكليف اكثر منه تشريف فى هذا المنتدى والذى كما اشار استاذى الجليل ومعلمى القدير و والدى الحبيب الاستاذ @jjafferr ان الخبراء اجاباتهم انضج وشرحهم اوضح وفي الاتجاه الصحيح وطبعا هذا لا يعنى ان الخبير ملم بكل الامور فالكمال لله سبحانه وتعالى وهو القائل جل وعلا وفوق كل ذى علم عليم ولكن القول الفصل هو ان الخبراء اجاباتهم انضج وشرحهم اوضح وفي الاتجاه الصحيح على سبيل المثال قد اجد هنا اسألة لا اعرف عنها شئ ولكن مع بعض البحث هنا وهناك وبفضل رب العزة سبحانه وتعالى والتفكير ووضح التحليل المناسب والتصور قد يرزقنى الله تعالى بوضع اجابة قد تكون اشمل من نتيجة البحث التى حصلتها وقد تكون اسهل وقد تكون اطول احيانا واصعب فى سياق الكود لكن قد يضفى ذلك عليها المرونة اللازمة التى تجهلعا تصلح للوصول للنتيجة بشكل مرن مع مختلف مسميات الجداول والحقول كما احاول جاهد فى الفترة الاخيرة عمل ذلك من خلال وضع اجابتى من خلال وظائف فى وحدات نمطية ليسهل استخدامها فى زوايا التطبيق بكل سهولة ويسر وفوق كل ذلك يزرقنى ربى بوضع الشرح اليسير لسيتفاد منها اقل طالب علم بدرجة المبتدئ وهنا تحضرنى مقولة وحكمة احبها جدا جدا جدا القارئ كالحالب والسامع كالشارب فمن يريد حلب الحليب يبذل الكثير من الجهد ليحصل على الحليب اما شارب الحليب لا يبذل اى جهد بل يشرب بكل سهولة ويستمتع وبالاسقاط لتلك الحكمة هنا الذى يفكر بالحل ويكتب الكود كالحالب والمتلقى للنتيجة كالشارب اسأل الله لى و لكم ولكل اساتذتى الافاضل المبجلين العون والقبول والسداد والصلاح والرشاد بالتوفيق .... الى الامام
  6. اتفضل قم بمشاهدة هذا الموضوع برنامج انتظار الدور
  7. راجع الموضوع الاتى عدم عرض التقرير إذا كان فارغ
  8. طيب سوى جدول باسم tblRegistrationDate وسوى بداخلة حقل من نوع تاريخ باسم RegistrationDate وسوى جدول للتجربة باسم tblData وسوى بداخله اى حقول من اى نوع بيانات تريدها للتجربة سوى نموذج مصدر بياناته الجدول tblData على ان يكون داخل النموذج فى الفوتر مثلا بعيد عن الحقول الرئيسية للجدول العناصر الاتية بالترتيب بالاسماء الاتية عدد 2 مربع نص + عدد 1 زر أمر مربع النص الاول يكون باسم txtRegistrationDate مربع النص الثانى يكون باسم txtDayDate زر الامر سمه ما شئت الاكواد المستخدمة تكون كالاتى اولا عند فتح النموذج txtRegistrationDate = Nz(DLast("[RegistrationDate]", "tblRegistrationDate")) وهذا لجلب آخر قيمة تاريخ سوف تقوم بتسجيلها داخل جدول tblRegistrationDate ثانيا مربع النص txtDayDate اعتبره تاريخ اليوم ضع فيه تاريخ اليوم للتجارب كما تريد قصدت فى الشرح استخدامه كمربع نص لتغير قيمة التاربخ لمرونة التجربة بعد ذلك استبدله بدالة Date() ثالثا على زر الامر عند النقر ضع الكود الاتى Select Case Nz(txtRegistrationDate, "") Case Is = "": Exit Sub Case 1 = Format(CVDate(txtDayDate), "dd/mm/yyyy") > Format(CVDate(txtRegistrationDate), "dd/mm/yyyy") Me.AllowAdditions = True Me.AllowEdits = True Me.AllowDeletions = True Case Else Me.AllowAdditions = False Me.AllowEdits = False Me.AllowDeletions = False End Select Me.Requery اعتذر لتقديم الاجابة النظرية فقط فى الوقت الراهن
  9. الكود يعمل بنجاح على الرغم من غرابة السؤال والاغرب منه تصور الافادة من تلك النتيجة قطعا اذا عرف السبب بطل العجب
  10. السلام عليكم اولا كل عام وانتم بخير استاذ @حسام نصير انت وكل اسرة ورواد المنتدى ثانيا : هذا القسم من المنتدى هو قسم تعليمى بحت لتبادل الخبرات وتيسير سبل العلم والمعرفة بشكل مجانى ابتغاء وجه الله عزوجل وتقديم المساعدات على اى تساؤلات بوجه عام للجميع على وجه العموم وليس على وجه الخصوص لا يتعلم فقط من يتقدم بالسؤال ولكن الجميع يستفاد من وضع الاجابات بشكل عام على كل التساؤلات فى حالة ان اردت الاقتصار فقط بالاجابة لشخصكم هناك اقسام تجارية قد تجد فيها مبتغاك الذى يحقق حلمك وحدك
  11. ولكن الكود السابق قد نلاقى من وراءه بعذ الاخطاء فى حالة عدم وجود بيانات دولة فى جدول Cuntries حقل text1 فى جدول1 لا يحتوى على اى قيم وتلك هى السيناريوهات التى قد تحدث نتيجتها اخطاء وتوقف الكود عن العمل والتى خطرت على بالى لتلاشى تلك الاخطاء يكون الكود كالأتى On Error GoTo ErrorHandler Dim i As Integer Dim LookFor As String Dim FullName As String Dim strErrMsgTitel As String Dim strMsgErrPrt1 As String DoCmd.GoToRecord , , acFirst For i = 1 To Me.Recordset.RecordCount LookFor = Trim(Nz(Me.text1)) FullName = DLookup("[LongName]", "[Cuntries]", "[ShortName] Like '*" & LookFor & "*'") If IsNull(Me.text1) Then: Me.text2 = vbNullString: Else Me.text2 = FullName DoCmd.GoToRecord , , acNext GoTo nxfor DoCmd.GoToRecord , , acNext nxfor: Next i procDone: Exit Sub ErrorHandler: strErrMsgTitel = ChrW("1582") & ChrW("1591") & ChrW("1571") strMsgErrPrt1 = ChrW("62") & ChrW("62") & ChrW("45") & ChrW("45") & ChrW("45") & ChrW("62") & ChrW("32") & ChrW("32") & ChrW("1607") & ChrW("1584") & ChrW("1607") & ChrW("32") & ChrW("1575") & ChrW("1604") & ChrW("1583") & ChrW("1608") & ChrW("1604") & ChrW("1577") & ChrW("32") & ChrW("1594") & ChrW("1610") & ChrW("1585") & ChrW("32") & ChrW("1605") & ChrW("1583") & ChrW("1585") & ChrW("1580") & ChrW("1577") & ChrW("32") & ChrW("1576") & ChrW("1580") & ChrW("1583") & ChrW("1608") & ChrW("1604") & ChrW("32") & ChrW("1575") & ChrW("1604") & ChrW("1583") & ChrW("1608") & ChrW("1604") Select Case Err.Number Case Is = 94 MsgBox$ LookFor & " " & strMsgErrPrt1, vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, strErrMsgTitel FullName = vbNullString Resume Next Case Else MsgBox$ Err.Number & ": " & Err.Description End Select Resume procDone db2_text (5).mdb
  12. ولو اخدت بالك انا قلت واسمح لى استاذى @Moosak طالما سبقتمونى اليها لانى كنت ناوى اقدم الفكرة الاخرى اليوم تعديل بسيط بوضع الكود على زر الامر كما يريد الاستاذ @سمير1404 Dim i As Integer Dim LookFor As String Dim FullName As String DoCmd.GoToRecord , , acFirst For i = 1 To Me.Recordset.RecordCount LookFor = Trim(Nz(Me.text1)) FullName = DLookup("[LongName]", "[Cuntries]", "[ShortName] Like '*" & LookFor & "*'") If IsNull(Me.text1) Then: Me.text2 = vbNullString: Else Me.text2 = FullName DoCmd.GoToRecord , , acNext GoTo nxfor DoCmd.GoToRecord , , acNext nxfor: Next i db2_text (4).mdb
  13. من عيونى تحت امرك اولا الدالة InStr هى تستخم لمعرفة موضع أول ظهور لسلسة نصية فى سلسلة نصية آخرى وهنا لاننا نريد الكلمة الأولى والتى تبدأ بعدها مسافة سوف نعتبر ان المسافة هى المرشد الذى نستخدمه نريد معرفة موضع المسافة الاولى فى السلسة النصية كلها وعندما نستخدم الدالة InStr بهذا الشكل InStr([text1] & ""," ") سوف تعيد لنا رقم موضع المسافة داخل السلسلة النصية ثانيا الدالة Left تستخدم هذه الداله لاستخلاص جزء من الجهه اليسرى من النص ونمرر لها وسيطين الوسيط الاول وهو source وهو النص الاصلى الوسيط الثانى وهو length هو طول النص الذى تريد استخلاصه من النص الاصلى من الجهه اليسرى من النص وبما اننا حصلنا على رقم موضع المسافة من الدالة السابقة سيكون هو الوسيط الثانى الـ length فتكون الدالة بهذا الشكل Left([text1],8-1) وطبعا لاننا نريد حذف المسافة اضفنا -1 وبالنسبة لباقى الكود Select Case اعتقد مفهوم انظر للمرفق الاتى فى الاستعلام Query1 سوف تتضح لكم الررية افضل db2_text (3).mdb جزاكم الله خيرا .. اهلا بك ولكن لى وجهة نظر صغيرة لم نضع القيم مرة اخرى فى الحقل text2 بينما فكرتى الأولى توفر لك استخدما البيانات وتوفير حقل فى الجدول لقد وضعت لكم الفكرة تفى بالغرض وتصل بكم لمبتغاكم بطريقة مباشرة مع امكانية الاستغناء عن الحقل text2 فى الجدول وتوفير حجم البيانات
  14. جرب هذا التعديل على الكود الخاص بالاستاذ @عمر ضاحى Dim i As Integer DoCmd.GoToRecord , , acFirst For i = 1 To Me.Recordset.RecordCount If Me.text1 Like "*" & "مصر" & "*" Then Me.text2 = "جمهورية مصر العربيه" ElseIf Me.text1 Like "*" & "السعودية" & "*" Then Me.text2 = "المملكة العربيه السعودية" ElseIf Me.text1 Like "*" & "الامريكية" & "*" Then Me.text2 = "الولايات المتحده الامريكيه" ElseIf Me.text1 Like "*" & "الاردنية" & "*" Then Me.text2 = "المملكة العربيه الهاشمية" End If DoCmd.GoToRecord , , acNext If NewRecord Then Exit Sub GoTo nxfor DoCmd.GoToRecord , , acNext nxfor: Next i
  15. وهذه فكرتى المتواضعة من خلال وظيفة داخل وحدة نمطية Function GoExt(strText As String) Dim strExtractionWord As String: strExtractionWord = Nz(Left([strText], InStr([strText] & "", " ") - 1), strText) Select Case strExtractionWord Case Is = strText: GoExt = strText Case Is = "مصر": GoExt = "جهورية" & " " & strText Case Is = "العربية": GoExt = "المملكة" & " " & strText Case Is = "المتحدة": GoExt = "الولايات" & " " & strText Case Is = "الاردنية": GoExt = "المملكة العربية" & " " & strText End Select End Function يتم استدعاء الوظيفة من خلال GoExt([text1]) ولا انصح بكتابة الأحرف العربية داخل محرر الاكود ممكن نستخدم اليونيكود او جدول واستخدام DLookup ويكون التطبيق كالاتى db2_text.mdb
  16. طيب ممكن حضرتك تنقل الاكواد من رأس الموضوع وتضعها بالقاعدة القديمة اللى كانت تفح معك وقم بالتجربة ولو ضبطت معك ارفعها فى ردك القادم
  17. وعليكم السلام ورحمة الله تعالى وبركاته تقبل الله ومنا ومنكم وجزاكم الله خيرا ممكن المرفق لو تكرمت انت عارف اخوك ضعيف بالنظرى
×
×
  • اضف...

Important Information