-
Posts
7118 -
تاريخ الانضمام
-
Days Won
208
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو ابو جودي
-
ماشاء الله استاذى الجليل ومعلمى القدير الاستاذ @Barna انا انسان معقد , وافكارى مثلى
-
تعديل رقم (2).. افضل واسرع بعد التمعن فى الاكواد واحساسى بعدم الرضا عن النتيجة السابقة بفضل الله تعالى تم تغيير الفكرة للأفضل اولا الروتين العام فى الوحدة النمطية: يقوم بعمل دوران على النص لتعريته من اى شئ يخالف المستخدم داخل الروتين عن طريق استخدام الـ Unicode Public Function StripSpChars(strString As String) As String Dim lngCtr As Long Dim intChar As Integer If strString & "" = "" Then Exit Function For lngCtr = 1 To Len(strString) intChar = AscW(Mid(strString, lngCtr, 1)) If intChar = 13 Or _ intChar = 32 Or _ intChar = 40 Or _ intChar = 41 Or _ intChar = 45 Or _ intChar = 46 Or _ intChar = 58 Or _ intChar = 91 Or _ intChar = 93 Or _ intChar = 95 Or _ intChar = 171 Or _ intChar = 187 Or _ intChar = 1548 Or _ intChar >= 1569 And intChar <= 1594 Or _ intChar >= 1601 And intChar <= 1610 Or _ intChar >= 1648 And intChar <= 1649 Or _ intChar >= 1632 And intChar <= 1641 Or _ intChar >= 48 And intChar <= 57 Then StripSpChars = StripSpChars & ChrW(intChar) End If Next lngCtr StripSpChars = Trim(StripSpChars) End Function ثانيا : الاكواد داخل النموذج روتين فرعى لتغيير مصدر التحكم لمربع النص فقط الذى يحتوى على النص + حركات التشكيل - تيم تغيير مصدر التحكم لمربع النص فقط الذى يحتوى على النص + حركات التشكيل حسب حالة المرجع X الذى تم الاعلان عنه فى بناء الروتين Sub GoRecdSource(ByRef x As Boolean) Select Case x Case Is = False Me.txtnass.ControlSource = "[nass]" lblChkCase.Caption = ChrW("1573") & ChrW("1582") & ChrW("1601") & ChrW("1575") & ChrW("1569") & ChrW("32") & ChrW("1581") & ChrW("1585") & ChrW("1603") & ChrW("1575") & ChrW("1578") & ChrW("32") & ChrW("1575") & ChrW("1604") & ChrW("1578") & ChrW("1588") & ChrW("1603") & ChrW("1610") & ChrW("1604") Case Is = True Me.txtnass.ControlSource = "=StripSpChars([nass])" lblChkCase.Caption = ChrW("1573") & ChrW("1592") & ChrW("1607") & ChrW("1575") & ChrW("1585") & ChrW("32") & ChrW("1581") & ChrW("1585") & ChrW("1603") & ChrW("1575") & ChrW("1578") & ChrW("32") & ChrW("1575") & ChrW("1604") & ChrW("1578") & ChrW("1588") & ChrW("1603") & ChrW("1610") & ChrW("1604") End Select End Sub وبعد اذن استاذى الجليل ومعلمى القدير و والدى الحبييب الاستاذ @jjafferr النظر الى التعديل الجديد لرؤية التعديل الجديد وابداء الرأى عن هذه الفكرة وإرشادى الى ما ينقص تمام العمل واخيرا مرفق التطبيق 12446-1 (3).accdb
-
الحل الامثل تبعا للمرفق ان شاء الله اولا الروتين العام فى الوحدة النمطية: يقوم بعمل دوران على النص لتعريته من اى شئ يخالف المستخدم داخل الروتين عن طريق استخدام الـ Unicode Public Function StripSpChars(strString As String) As String Dim lngCtr As Long Dim intChar As Integer If strString & "" = "" Then Exit Function For lngCtr = 1 To Len(strString) intChar = AscW(Mid(strString, lngCtr, 1)) If intChar = 13 Or _ intChar = 32 Or _ intChar = 40 Or _ intChar = 41 Or _ intChar = 45 Or _ intChar = 46 Or _ intChar = 58 Or _ intChar = 91 Or _ intChar = 93 Or _ intChar = 95 Or _ intChar = 171 Or _ intChar = 187 Or _ intChar = 1548 Or _ intChar >= 1569 And intChar <= 1594 Or _ intChar >= 1601 And intChar <= 1610 Or _ intChar >= 1648 And intChar <= 1649 Or _ intChar >= 1632 And intChar <= 1641 Or _ intChar >= 48 And intChar <= 57 Then StripSpChars = StripSpChars & ChrW(intChar) End If Next lngCtr StripSpChars = Trim(StripSpChars) End Function ثانيا : الاكواد داخل النموذج الاعلان عن متغير للاحتفاظ برقم السجل الحالى من خلال الحقل txtid Dim idRec As Integer روتين فرعى للذهاب للسجل حسب قيمة المتغير السابق idRec للحافظ على الذهاب الى السجل الحالى Sub GoRec() With Me.Recordset .FindFirst "ID=" & idRec End With End Sub روتين فرعى لتغير مصدر بيانات النموذج - يحتفظ الروتين برقم السجل الحالى بالحاق الرقم الى المتغير idRec - تيم تغيير جملة بناء الاستعلام حسب حالة المرجع X الذى تم الاعلان عنه فى بناء الروتين - تغيير عنوان مربع الاختيار تبعا لحالة مصدر البيانات المطلوب استخدانه Sub GoRecdSource(ByRef x As Boolean) idRec = txtid Select Case x Case Is = False Me.RecordSource = "SELECT book.nass, book.id, book.part, book.page FROM book;" GoRec lblChkCase.Caption = ChrW("1573") & ChrW("1582") & ChrW("1601") & ChrW("1575") & ChrW("1569") & ChrW("32") & ChrW("1581") & ChrW("1585") & ChrW("1603") & ChrW("1575") & ChrW("1578") & ChrW("32") & ChrW("1575") & ChrW("1604") & ChrW("1578") & ChrW("1588") & ChrW("1603") & ChrW("1610") & ChrW("1604") Case Is = True Me.RecordSource = "SELECT StripSpChars([book]![nass]) AS nass, book.id, book.part, book.page FROM book;" GoRec lblChkCase.Caption = ChrW("1573") & ChrW("1592") & ChrW("1607") & ChrW("1575") & ChrW("1585") & ChrW("32") & ChrW("1581") & ChrW("1585") & ChrW("1603") & ChrW("1575") & ChrW("1578") & ChrW("32") & ChrW("1575") & ChrW("1604") & ChrW("1578") & ChrW("1588") & ChrW("1603") & ChrW("1610") & ChrW("1604") End Select End Sub الكود المستخدم على مربع الاختيار يتم استدعاء الروتين الفرعى المختص بتغيير مصدر بيانات النموذج تبعا لحالة مربع الاختيار الذى يدرج قيمته الى المتغير المستخدم كمرجع فى الروتين الفرعى السابق GoRecdSource (ChkCase) ما سبق اجتهاد شخصى >>---> قد تكون هناك طرق افضل وفى انتظار رأى استاذى الجليل ومعلمى القدير الاستاذ @Barna واخيرا مرفق التطبيق 12446-1 (2).accdb
-
يمكنكم استخدام الروتين الاتى لإزالة اى حركات تشكيل ويتم استدعاءه كم خلال StripSpCharsOnly("النص") 'OR in Forms StripSpCharsOnly(txtName) 'or in Query StripSpCharsOnly(FildeName) Public Function StripSpCharsOnly(strString As String) As String Dim lngCtr As Long Dim intChar As Integer If strString & "" = "" Then Exit Function For lngCtr = 1 To Len(strString) intChar = AscW(Mid(strString, lngCtr, 1)) If intChar = 32 Or _ intChar >= 1569 And intChar <= 1594 Or _ intChar >= 1601 And intChar <= 1610 Or _ intChar >= 1648 And intChar <= 1649 Then StripSpCharsOnly = StripSpCharsOnly & ChrW(intChar) End If Next lngCtr StripSpCharsOnly = Trim(StripSpCharsOnly) End Function مثال فى المرفق : Strip Special Characters.zip
-
ممكن يختفى والاصل اللى بالتشكيل عندك اصلا هات مرفق واعرفق ازاى
-
كود جعل زر خيار True بناء علي وضع قيمة في حقل نص
ابو جودي replied to حسين العربى's topic in قسم الأكسيس Access
الملف موجود فى مشاركة الباش مهندس @Eng.Qassim ورابط المرفق مرة أخرى Converter Arabic and Unicode (v. 3).accdb -
ممكن مرفق يختوى على النموذج فقط .؟
-
بناء على طلب احد الاخوة شرح تفصيلى لدالة: DLookup Function الوصف-Description : ترجع الدالة DLookup قيمة حقل واحد إذا لم يكن هناك سجل يلبي المعايير أو إذا كان المجال لا يحتوي على أي سجلات، ترجع الدالة DLookup القيمة Null إذا كان هناك أكثر من حقل ترجع الدالة DLookup التكرار الأول لذلك يجب تحديد معايير تضمن أن تكون قيمة الحقل التي يتم إرجاعها بواسطة الدالة DLookup فريدة قد تحتاج إلى استخدام قيمة مفتاح أساسي للمعايير او قيمة فريدة للتأكد من أن الدالة DLookup ترجع قيمة فريدة بناء الجملة الدالة-Syntax DLookup : يختلف بناء الجملة الخاص بوظيفة DLookup الشكل العام البسيط لبناء الجملة يكون كالتالى DLookup("FieldName" , "TableName") وعندما نريد بناء جملة ترجع قيمة حقل من جدول بناء على قيمة محددة لابد ان يحتوى بناء الجملة على معيار الشكل العام لبناء الجملة كالتالى DLookup("FieldName" , "TableName" , "Criteria") و لابد من الاخذ فى الاعتبار انه سوف نعتمد فى بناء جملة DLookup من هذا النوع الذى يعتمد على معيار على نوع البيانات المستخدم فى هذا المعيار انواع البيانات المستخدمة فى المعيار هى لا تخرج عن الثلاث انواع الاتية (رقم - نص - تاريخ - Numeric - String - Date ) ودائما تلك الجزئية هى مصدر القلق والخطأ والتساؤل ولكى نبسطها DLookup("FieldName" , "TableName" , "Criteria = n") '|Numeric DLookup("FieldName" , "TableName" , "Criteria = 'S'") '|String DLookup("FieldName" , "TableName" , "Criteria = #D#") '|Date بكل بساطه فى بناء الجملة الرئيسي عندما نستخدم معيار يحتوى على نوع بيانات من النوع رقم فقط تم وضع علامة = بعد Criteria ثم الرقم بدون اى اضافات عندما نستخدم معيار يحتوى على نوع بيانات من النوع نص فقط تم وضع علامة = بعد Criteria ثم النص بين علامتين تنصيص مفرده ' عندما نستخدم معيار يحتوى على نوع بيانات من النوع تاريخ فقط تم وضع علامة = بعد Criteria ثم التاريخ بين علامتين هاش # يستخدم ما سبق عندما نكتب قيمة المعيار بطريقة مباشرة وعندما يكون المعيار مستمد من عنصر موجود اما حقل فى استعلام او مربع نص فى نموذج يكون بناء الجملة كالأتى DLookup("FieldName" , "TableName" , "Criteria =" & [ObjectName]) '|Numeric DLookup("FieldName" , "TableName" , "Criteria ='" & [ObjectName] & "'") '|String DLookup("FieldName" , "TableName" , "Criteria =#" & [ObjectName] & "#") '|Date ملاحظة هامة عند التعامل مع التاريخ لابد ان يكون تنسيق التاريخ فى المعيار على الطريقة الأمريكية mm/dd/yyyy -------------------------------------------------------------------------------------------------------------------------- وعندما يكون المعيار مستمد من متغير يتم اسناد قيمة المعيار اليه داخل محرر الأكواد يكون بناء الجملة كالأتى ولا ننسى عند التعامل مع التاريخ لابد ان يكون تنسيق التاريخ فى المعيار على الطريقة الأمريكية mm/dd/yyyy Dim MyVariable As String Dim stLinkCriteria As String MyVariable = 1 stLinkCriteria = "[FldCriteria]=" & MyVariable '|Numeric 'MyVariable = "Mahmoud" 'stLinkCriteria = "[FldCriteria] ='" & MyVariable & "'" '|String 'MyVariable = "03/01/1982" 'stLinkCriteria = "[FldCriteria] =#" & MyVariable & "#" '|Date stLinkCriteria = "[FldCriteria]=" & MyVariable '|Numeric 'stLinkCriteria = "[FldCriteria] ='" & MyVariable & "'" '|String 'stLinkCriteria ="[FldCriteria] =#" & MyVariable & "#" '|Date DLookup("FieldName", "TableName", stLinkCriteria) مثال متقدم : احضار بيانات دفعة واحدة من اكثر من حقل عن طريق المصفوفات من خلال الـ DLookup على طريقة استاذى الجليل ومعلمى القدير و والدى الجبيب الاستاذ @jjafferr Dim strDLookupFlds As String Dim stLinkCriteria As String Dim MyVariable As String Dim Arry() As String Dim ChosFld As String MyVariable = 1 stLinkCriteria = "[FldCriteria]=" & MyVariable '|Numeric 'MyVariable = "Mahmoud" 'stLinkCriteria = "[FldCriteria] ='" & MyVariable & "'" '|String 'MyVariable = "03/01/1982" 'stLinkCriteria = "[FldCriteria] =#" & MyVariable & "#" '|Date strDLookupFlds = DLookup("[Fld1] & '|' & [Fld2] & '|' & [Fld3] & '|' & [Fld4] & '|' & [Fld5] & '|' & [Fld6] & '|' & [Fld7] & '|' & [Fld8]& '|' & [Fld9]", "[tblName]", stLinkCriteria) Arry = Split(strDLookupFlds, "|") Debug.Print strDLookupFlds ChosFld = Arry(0) Debug.Print ChosFld 'Arry(0) = Fld1 'Arry(1) = Fld2 'Arry(2) = Fld3 'Arry(3) = Fld4 'Arry(4) = Fld5 'Arry(5) = Fld6 'Arry(6) = Fld7 'Arry(7) = Fld8 'Arry(8) = Fld9
- 6 replies
-
- 4
-
-
- dlookup
- dlookup function
- (و9 أكثر)
-
كود جعل زر خيار True بناء علي وضع قيمة في حقل نص
ابو جودي replied to حسين العربى's topic in قسم الأكسيس Access
-
شرح : نبذة عن الاستعلامات الفرعية SubQueries وامثلة عملية عليها
ابو جودي replied to Amr Ashraf's topic in قسم الأكسيس Access
ماشاء الله شرح مبسط ومنسق ولا اروع طيب احيانا بيكون فى استعلام داخل استعلام لكن فى الحقول وليس فى المعيار هل يمكن التطرق اليه -
-- الوقت والتاريخ تاريخ آخر يوم فى الشهر المحدد LastDayInMonth(01/01/2022) Public Function LastDayInMonth(ByVal AnyDate As Date) As Date LastDayInMonth = DateSerial(Year(AnyDate), Month(AnyDate) + 1, 0) End Function ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- عدد ايام الشهر المحددد NumofDays(01/01/2022) Public Function NumofDays(ByVal AnyDate As Date) NumofDays = Day(DateSerial(Year(AnyDate), Month(AnyDate) + 1, 0)) End Function
-
اتفضل
-
اتفضل يتم وضع النص المراد الظهور له فى كل صفخة فى الـ PageFooterSection Database11.accdb
-
تغيير قيمة مربع نص بناء على قيمة مربع تحرير وسرد
ابو جودي replied to Hassanshami's topic in قسم الأكسيس Access
اعتقد الحل موجود بإجابة الباش مهندس @Eng.Qassim فى المرفق الذى رفعه بمشاركته Select Case State Case Is = "موقف": Me.S1 = "0" Case Is = "غياب": Me.S1 = Me.الراتب - (Me.الراتب * 0.2) Case Is = "مباشر": Me.S1 = Me.الراتب End Select -
بارك الله فى عمرك استاذى الجليل
-
المساعدة بان احضر قيمة من فورم اخر
ابو جودي replied to ahmedhassan1948's topic in قسم الأكسيس Access
شهادة اعتز بها جزاكم الله خيرا بس تعديل بسيط لو كان مربع السرد comType بلا قيم Dim MyWher As String Dim A As String Dim x() As String A = DLookup("[p1] & '|' & [p2] & '|' & [p3] & '|' & [p4] & '|' & [p5] & '|' & [p6] & '|' & [p7] & '|' & [p7]& '|' & [p9]", "[PlatPrice]") x = Split(A, "|") Select Case Nz(comType, "") Case Is = "": MyWher = "" Case Is = "click": MyWher = x(0) Case Is = "Engagement": MyWher = x(1) Case Is = "impressions": MyWher = x(2) Case Is = "IGTV": MyWher = x(3) End Select If MyWher = "" Then TargetPlas.Value = "": Exit Sub TargetPlas.Value = MyWher * txtCost.Value -
انا اريد الاخرى لتعم الفائدة يمكن افضل من فكرتى ونتعلم منها احسك تقول ايش هاد الرخم مشكلته انحلت ومازال رخم بس اوعاك تأتى بفكرة قديمة لى من المنتدى
-
شاركوني في تهنئة فريق العمل بنجمها الجديد ، ابو جودي
ابو جودي replied to jjafferr's topic in قسم الأكسيس Access
جزاكم الله خيرا الكرام اسال الله تعالى القبول وان يجعلنى عند حسن ظنكم بى -
المساعدة بان احضر قيمة من فورم اخر
ابو جودي replied to ahmedhassan1948's topic in قسم الأكسيس Access
تمام الان جرب الكود الاتى يا باش مهندس @Eng.Qassim Dim A As String Dim x() As String A = DLookup("[p1] & '|' & [p2] & '|' & [p3] & '|' & [p4] & '|' & [p5] & '|' & [p6] & '|' & [p7] & '|' & [p7]& '|' & [p9]", "[PlatPrice]") x = Split(A, "|") 'MyWher = x(0) 'Debug.Print MyWher Select Case Nz(comType, "") Case Is = "": MyWher = "" Case Is = "click": MyWher = x(0) Case Is = "Engagement": MyWher = x(1) Case Is = "impressions": MyWher = x(2) Case Is = "IGTV": MyWher = x(3) End Select TargetPlas.Value = MyWher * txtCost.Value المرفق ACC_2.accdb -
انشاء نموذج لتوليد سجلات بناءا على معطيات
ابو جودي replied to عمر ضاحى's topic in قسم الأكسيس Access
نعم قمت بعمل متغير باسم MyErfMsg وبعدين تقتح التطبيق الاتى اكتب به ما تريد كتابته باللغة العربية ثم قم بتحويله ونسخه واسناد ما تم نسخه الى المتغير Converter Arabic and Unicode (v. 3).accdb -
المساعدة بان احضر قيمة من فورم اخر
ابو جودي replied to ahmedhassan1948's topic in قسم الأكسيس Access
فى هذا الكود x(0) = p1 x(1) = p2 x(2) = p3 x(3) = p4 x(4) = p5 x(5) = p6 x(6) = p7 x(7) = p8 x(8) = p9 Dim MyWher As String Dim A As String Dim x() As String A = DLookup("[p1] & '|' & [p2] & '|' & [p3] & '|' & [p4] & '|' & [p5] & '|' & [p6] & '|' & [p7] & '|' & [p7]& '|' & [p9]", "[PlatPrice]") x = Split(A, "|") 'MyWher = x(0) 'Debug.Print MyWher Select Case Nz(comType, "") Case Is = "": MyWher = "" Case Is = "click": MyWher = x(0) Case Is = "Engagement": MyWher = x(1) Case Is = "impressions": MyWher = x(2) Case Is = "IGTV": MyWher = x(3) End Select Dim Myx As String Myx = "2.5" TargetPlas.Value = MyWher * Myx -
المساعدة بان احضر قيمة من فورم اخر
ابو جودي replied to ahmedhassan1948's topic in قسم الأكسيس Access
وليه الحلقة التكرارية المفروض الكود سيتم تنفيذه على كل سجل مستقبلا قد يكون فقط الان لان السجلات لم تأخذ القيم المفروضة واانا والله الى الان مش فاهمه لو فهمت هو عاوز ايه ان شاء الله اضع له الاجابة تفصيلا انا احاول وضع الاجابة بدون التعرض لادراج قيم الى متغيرات والتى تستوجب فتح الفورم الاول ولا حتى بدون متغيرات والتى تستلزم فتح الفورم الاول اثناء العمل انا عملت له كود يحضر كل القيم على طريقة استاذى الجليل ومعلمى القدير و والدى الجبيب الاستاذ @jjafferr بس باقى توظيف الكود للتعامل مع الحالات المختلفة وهو مصر انه ياخدنا جميعا للارتباط بقيم الفورم والجميع جزاهم الله خيرا فكروا بناء على طلبه انا شايف ان القيم ثابته وسجل واحد فقط لذلك اخرجت نفسى من العمل مع التعاطى للبيانات من خلال الفورم -
مش فاهمك على فكرة انت عارف انا فهمى تقييل ع العموم المرفق النهائى بدون المشكل وبدون اى زيادات التجارب اللى كانت ع الاكواد Converter Arabic and Unicode (v. 3).accdb
-
المساعدة بان احضر قيمة من فورم اخر
ابو جودي replied to ahmedhassan1948's topic in قسم الأكسيس Access
اتفضل تجربة Dim MyWher As String Dim A As String Dim x() As String A = DLookup("[p1] & '|' & [p2] & '|' & [p3] & '|' & [p4] & '|' & [p5] & '|' & [p6] & '|' & [p7] & '|' & [p7]& '|' & [p9]", "[PlatPrice]") x = Split(A, "|") 'MyWher = x(0) 'Debug.Print MyWher Select Case Nz(comType, "") Case Is = "": MyWher = "" Case Is = "click": MyWher = x(0) Case Is = "Engagement": MyWher = x(1) Case Is = "impressions": MyWher = x(2) Case Is = "IGTV": MyWher = x(3) End Select Dim Myx As String Myx = "2.5" TargetPlas.Value = MyWher * Myx غير قيمة Myx كما تريد -
المساعدة بان احضر قيمة من فورم اخر
ابو جودي replied to ahmedhassan1948's topic in قسم الأكسيس Access
القيمة (x) فين مكانها ؟! من اين تأتى بهذه القيمة