بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
3856 -
تاريخ الانضمام
-
Days Won
158
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو Foksh
-
💫 تألق جديد.. @Foksh الأخ فادي ينضم لقائمة مشرفي أوفيسنا 🎉
Foksh replied to Moosak's topic in قسم الأكسيس Access
أستاذنا الحبيب أبو أحمد 💐 وفقكم الله في الدارين وغفر لكم .. شكراً على التهنئه 🤗 -
💫 تألق جديد.. @Foksh الأخ فادي ينضم لقائمة مشرفي أوفيسنا 🎉
Foksh replied to Moosak's topic in قسم الأكسيس Access
أخي طاهر ،، بارك الله فيك ، وغفر لك ولوالديك في الدنيا والآخرة. كلامك اللطيف دلالة على معدنك الطيب 🤗 شكراً لك من القلب على تهنئتك ، وأتمنى أن نراكم قريباً بجانبنا 💐 -
كلامك صحيح .. لم أقم بالتجربة على أرقام مختلفة .. في مديول :- Function MultiplyTime(ByVal tm As Date, ByVal factor As Long) As String Dim totalMinutes As Long totalMinutes = DateDiff("n", #12:00:00 AM#, tm) * factor MultiplyTime = Format(totalMinutes \ 60 & ":" & totalMinutes Mod 60, "hh:nn") End Function جرب على الإستدعاء من خلال الاستعلام :- SELECT MultiplyTime(#4:30#, 10) AS النتيجة
-
وعليكم السلام ورحمة الله وبركاته .. كمثال خطر ببالي من داخل استعلام على سبيل المثال :- SELECT Format(TimeValue("4:30") * 5, "hh:nn") AS النتيجة; أو استخدام الدالة CLng كمثال :- SELECT Format((CLng(#12/30/1899 4:30:0#*1440)*5)/1440,"Short Time") AS الناتج;
-
وعليكم السلام ورحمة الله وبركاته .. أخي الفاضل تحية طيبة وعطرة من القلب ,, برأيك ( العنوان و المطلوب ) = من كلمتين يكفي للشرح والتوضيح للمطلوب ؟؟؟؟؟ حتى أن المرفق لا يستند الى أي معلومة تفيد المطلوب وتوضحه راجياً منك الإفصاح والتوضيح في معطيات الموضوع لتسهيل فهم للهدف ( وخصوصاً أخوك صاحب هذا التعليق 😇 )
-
تفضل أخي الكريم .. تعديلات وإضافة مرونة أكثر للإستخدام وتقليل التكرارات . في الدالة الرئيسية :- Public Function GetTxtHeight(annee As String, grade As String, wilaya As String, nomRapport As String) As Single Dim db As DAO.Database Dim rs As DAO.Recordset Dim hauteur As Single Set db = CurrentDb Set rs = db.OpenRecordset( _ "SELECT hauteur_rang FROM tab_hauteur_range " & _ "WHERE annee = '" & Replace(Trim(annee), "'", "''") & "' " & _ "AND grade = '" & Replace(Trim(grade), "'", "''") & "' " & _ "AND wilaya = '" & Replace(Trim(wilaya), "'", "''") & "' " & _ "AND nom_raport = '" & Replace(Trim(nomRapport), "'", "''") & "'", dbOpenSnapshot) If Not rs.EOF Then hauteur = Nz(rs!hauteur_rang, 0) * 567 Else hauteur = 0.7 * 567 End If rs.Close: Set rs = Nothing: Set db = Nothing GetTxtHeight = hauteur End Function دالة لتقليل تكرار عند فتح التقرير ، وإضافة مرونة في Tag مختلف من نفس الاستدعاء .. Public Sub ApplyHeightFromTempVars(ByVal rpt As Report, Optional ByVal tagMatch As String = "moho58") On Error GoTo SafeExit Dim h As Single Dim ctrl As Control h = Nz(TempVars!Temp_Hauteur, 0.7 * 567) For Each ctrl In rpt.Controls If ctrl.ControlType = acTextBox Then If LCase(Trim(Nz(ctrl.Tag, ""))) = LCase(tagMatch) Then ctrl.Height = h End If End If Next ctrl rpt.Section(acDetail).Height = h SafeExit: End Sub في أحدث عند النقر للأزرار :- Private Sub أمر2_Click() Dim h As Single h = GetTxtHeight(Me.annet, Me.grade1, Me.wilaya1, "rap_pv") TempVars!Temp_Hauteur = h DoCmd.OpenReport "rap_pv", acViewPreview End Sub Private Sub أمر3_Click() Dim h As Single h = GetTxtHeight(Me.annet, Me.grade1, Me.wilaya1, "rap_pv2") TempVars!Temp_Hauteur = h DoCmd.OpenReport "rap_pv2", acViewPreview End Sub في حدث عند الفتح في التقارير :- Private Sub Report_Open(Cancel As Integer) ApplyHeightFromTempVars Me ' ApplyHeightFromTempVars Me, "Foksh" تستطيع طبعاً استخدام تاج مختلف End Sub ملفك بعد التعديلات :- baseM5.zip
-
أخي العزيز الأستاذ عبد اللطيف ، بداية هذه الرسالة تظهر وأعتقد لأنه يوجد لديك تطبيق واتس أب سطح المكتب .. حيث ، انظر لهذا السطر على سبيل المثال :- https://api.whatsapp.com/send/?phone=962787787573&text&type=phone_number&app_absent=0 لاحظ الرقم 0 في نهاية العنوان !! انظر لطبيعة ونوع الرسالة التي تظهر لك عندما يكون لديك تطبيق واتس اب سطح المكتب . ثم جرب وعدل 0 = 1 ، وانظر الفرق بين الرسالتين !!!! طبعاً في النهاية سيتم فتح التطبيق في حال تم تثبيته لأن له الأولوية على موقع الويب . لكن في نهاية المطاف ، لتجربة أن الكود يقوم فعلاً بتنفيذ المطلوب ، قم بحذف تطبيق الواتس اب لديك من الكمبيوتر ، وجربه ولاحظت أيضاً انه عندما لا يكون هناك ايميل ، فيظهر لك خطأ .. قم بإضافة هذا السطر في بداية حدث النقر لمربع النص الخاص بإرسال الإيميل Private Sub EMAIL_Click() If IsNull(Me.EMAIL) Or Me.EMAIL = "" Then Exit Sub
-
وعليكم السلام ورحمة الله وبركاته ,, فيما يخص الإيميل ، فهذه فكرة بسيطة من خلال النقر على مربع نص الإيميل على سبيل المثال :- Private Sub EMAIL_Click() Dim EmailAdd As String Dim GmailURL As String EmailAdd = Me.EMAIL.Value If Not IsValidEmails(EmailAdd) Then MsgBox "عنوان البريد الإلكتروني غير صالح", vbExclamation + vbMsgBoxRight, "" Exit Sub End If GmailURL = "https://mail.google.com/mail/?view=cm&fs=1&to=" & EmailAdd Application.FollowHyperlink GmailURL End Sub Function IsValidEmails(EMAIL As String) As Boolean Dim regex As Object Set regex = CreateObject("VBScript.RegExp") regex.Pattern = "^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$" regex.IgnoreCase = True IsValidEmails = regex.Test(EMAIL) End Function والطلب الثاني ، وهو فتح واتس أب ويب على دردشة محددة للرقم الذي تم النقر عليه ، حذح محاولتي البسيطة ( مشتقة من أحد ملفاتي سابقاً ) .. Private Sub MOB_Click() Dim WhatsURL As String Dim PhoneNum As String PhoneNum = Me.MOB.Value PhoneNum = CleanPhoneNum(PhoneNum) If PhoneNum = "" Then MsgBox "رقم الهاتف غير صالح", vbExclamation + vbMsgBoxRight, "" Exit Sub End If WhatsURL = "https://wa.me/" & PhoneNum Application.FollowHyperlink WhatsURL End Sub Function CleanPhoneNum(phone As String) As String Dim i As Integer Dim result As String result = "" For i = 1 To Len(phone) If IsNumeric(Mid(phone, i, 1)) Then result = result & Mid(phone, i, 1) End If Next i If Left(result, 2) = "00" Then result = Right(result, Len(result) - 2) ElseIf Left(phone, 1) = "+" Then result = Right(result, Len(result) - 1) End If CleanPhoneNum = result End Function
-
💫 تألق جديد.. @Foksh الأخ فادي ينضم لقائمة مشرفي أوفيسنا 🎉
Foksh replied to Moosak's topic in قسم الأكسيس Access
جزاكم الله كل خير على تهنئتكم الكريمة ، وأسأل الله لكم مزيداً من التوفيق والنجاح 💐 -
المبدعون هم أمثالكم في لطفهم ومرورهم ،، جزاكم الله كل الخير على دعواتكم ، وأسأل الله لكم التوفيق والنجاح 💐
-
أخي الكريم وعليكم السلام ورحمة الله وبركاته 🤗 وبما أن المشروع ليس من تأسيسك ، فأعتقد انك بحاجة الى إعادة بناء المشروع ، وليس كما تظن 3 طلبات فقط. لذا .. أنصحك بالتوجه الى عرض طلباتك واحداً واحداً في مواضيع مستقلة ، مع الشرح الكافي مصحوباً بملف يحتوي سجلات بسيطة . ملاحظة:- لم أطلع على الملف .
-
وعليكم السلام ورحمة الله وبركاته 🤗 باعتقادي ، وبما أنك تجعل اسم الوثيقة هو رقم ، فهنا يجب أن تجعل اسم الوثيقة مربوطاً أيضاً برقم الموظف ( الأفضل ) ، أو اسم الموظف على سبيل المثال . هنا الوثيقة 1 للموظف1 ستختلف في الاسم عن الوثيقة 1 للموظف2 ، صحيح 😁 . لم أطلع على الملف ، أتابع من الهاتف حالياً.
-
💫 تألق جديد.. @Foksh الأخ فادي ينضم لقائمة مشرفي أوفيسنا 🎉
Foksh replied to Moosak's topic in قسم الأكسيس Access
أهلاً يا فنان .. وحشتني يا راجل ، طمني عنك عامل إيه 🤗 .. الله يبارك فيك على كلامك اللطيف الجميل 😇😇 -
هل لنا بمرفق لتوضيح كيف تم اعتبار يوم 8 غياب ، بينما 3 ، 4 ، 5 إجازة !!
-
اريد زيادة حجم الخط في مربع النص في التقرير اكبر من 127
Foksh replied to عبد الله قدور's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته 🤗 كإجابة على سؤالك ، للأسف لا يمكن تحقيق طلبك . كأحد الحلول هو استخدام صورة جاهزة يتم إضافتها للتقرير. أو تصدير تقريرك الى وورد وهناك تقوم بالتكبير لحجم الخط إما بشكل يدوي أو من خلال كود التصدير للوورد . ما لم يكن هناك أفكار أخرى من الأساتذة والمعلمين -
جميل ، وهذا ما كنت اعمل عليه في هذه الفكرة ,, ودون شرحها هنا ، في المرفق نموذجين كأفكار قابلة للتحوير والتعديل حسب حاجتنا . مع العلم أنني قمت بإضافات قد لا تحتاجها ، ولكنها من باب الفضول والزيادة 😅 data1-1.zip
-
وعليكم السلام ورحمة الله وبركاته .. جرب هذه الخطوط كمثال .. Fonts.zip
-
وعليكم السلام ورحمة الله وبركاته .. كمشاركة أولى بدون دالة ، وتتكون من 3 أشكال متدرجة ، الإستعلام الأول :- SELECT c.UserId, c.chekIn, c.chekOut, IIf( TimeValue(c.chekIn) > DateAdd("n", f.start_free, f.start_work), DateDiff("n", DateAdd("n", f.start_free, f.start_work), TimeValue(c.chekIn)), 0 ) AS In_Loss, IIf( TimeValue(c.chekOut) < DateAdd("n", -f.end_free, f.end_work), DateDiff("n", TimeValue(c.chekOut), DateAdd("n", -f.end_free, f.end_work)), 0 ) AS out_Loss, Format( IIf( TimeValue(c.chekIn) > DateAdd("n", f.start_free, f.start_work) OR TimeValue(c.chekOut) < DateAdd("n", -f.end_free, f.end_work), DateDiff("n", IIf(TimeValue(c.chekIn) > DateAdd("n", f.start_free, f.start_work), TimeValue(c.chekIn), DateAdd("n", f.start_free, f.start_work) ), IIf(TimeValue(c.chekOut) < DateAdd("n", -f.end_free, f.end_work), TimeValue(c.chekOut), DateAdd("n", -f.end_free, f.end_work) ) ) / 1440.0, f.countWorkHours ), "hh:nn" ) AS work_Hours_count FROM tblcomIn AS c, tbl_Ftrat AS f WHERE f.ftraName = 'الفترة الرئيسية' ORDER BY c.UserId, c.chekIn; Query2 UserId chekIn chekOut In_Loss out_Loss work_Hours_count 1111 2025-07-05 3:50:10 PM 2025-07-05 11:50:12 PM 0 0 07:30 2222 2025-07-05 4:20:16 PM 2025-07-05 11:20:28 PM 0 0 07:30 3333 2025-07-05 4:32:20 PM 2025-07-05 11:28:31 PM 2 0 06:28 4444 2025-07-05 5:01:25 PM 2025-07-05 11:32:34 PM 31 0 05:59 الإستعلام الثاني :- SELECT c.UserId, c.chekIn, c.chekOut, IIf(TimeValue(c.chekIn)>DateAdd("n",f.start_free,f.start_work),DateDiff("n",DateAdd("n",f.start_free,f.start_work),TimeValue(c.chekIn)),0) AS In_Loss, IIf(TimeValue(c.chekOut)<DateAdd("n",-f.end_free,f.end_work),DateDiff("n",TimeValue(c.chekOut),DateAdd("n",-f.end_free,f.end_work)),0) AS out_Loss, Format(IIf(TimeValue(c.chekIn)>DateAdd("n",f.start_free,f.start_work) Or TimeValue(c.chekOut)<DateAdd("n",-f.end_free,f.end_work),DateDiff("n",IIf(TimeValue(c.chekIn)>DateAdd("n",f.start_free,f.start_work),TimeValue(c.chekIn),DateAdd("n",f.start_free,f.start_work)),IIf(TimeValue(c.chekOut)<DateAdd("n",-f.end_free,f.end_work),TimeValue(c.chekOut),DateAdd("n",-f.end_free,f.end_work)))/1440,f.countWorkHours),"Short Time") AS work_Hours_count, 'التفاصيل: ' & IIf(TimeValue(c.chekIn)>DateAdd("n",f.start_free,f.start_work),'تأخر ' & DateDiff("n",DateAdd("n",f.start_free,f.start_work),TimeValue(c.chekIn)) & ' دقيقة','حضور في الموعد') & ' - ' & IIf(TimeValue(c.chekOut)<DateAdd("n",-f.end_free,f.end_work),'انصراف مبكر ' & DateDiff("n",TimeValue(c.chekOut),DateAdd("n",-f.end_free,f.end_work)) & ' دقيقة','انصراف في الموعد') AS Details FROM tblcomIn AS c, tbl_Ftrat AS f WHERE (((f.ftraName)='الفترة الرئيسية') And ((DateValue(c.chekIn))=#7/5/2025#)) ORDER BY c.UserId; Query3 UserId chekIn chekOut In_Loss out_Loss work_Hours_count Details 1111 2025-07-05 3:50:10 PM 2025-07-05 11:50:12 PM 0 0 07:30 التفاصيل: حضور في الموعد - انصراف في الموعد 2222 2025-07-05 4:20:16 PM 2025-07-05 11:20:28 PM 0 0 07:30 التفاصيل: حضور في الموعد - انصراف في الموعد 3333 2025-07-05 4:32:20 PM 2025-07-05 11:28:31 PM 2 0 06:28 التفاصيل: تأخر 2 دقيقة - انصراف في الموعد 4444 2025-07-05 5:01:25 PM 2025-07-05 11:32:34 PM 31 0 05:59 التفاصيل: تأخر 31 دقيقة - انصراف في الموعد الإستعلام الثالث :- SELECT c.UserId, c.chekIn, c.chekOut, IIf(TimeValue(c.chekIn)>DateAdd("n",f.start_free,f.start_work),DateDiff("n",DateAdd("n",f.start_free,f.start_work),TimeValue(c.chekIn)),0) AS In_Loss, IIf(TimeValue(c.chekOut)<DateAdd("n",-f.end_free,f.end_work),DateDiff("n",TimeValue(c.chekOut),DateAdd("n",-f.end_free,f.end_work)),0) AS out_Loss, Format(DateDiff("n",IIf(TimeValue(c.chekIn)<f.start_work,f.start_work,TimeValue(c.chekIn)),IIf(TimeValue(c.chekOut)>f.end_work,f.end_work,TimeValue(c.chekOut)))/1440,"Short Time") AS work_Hours_count, 'التفاصيل: ' & IIf(TimeValue(c.chekIn)>DateAdd("n",f.start_free,f.start_work),'تأخر ' & DateDiff("n",DateAdd("n",f.start_free,f.start_work),TimeValue(c.chekIn)) & ' دقيقة',IIf(TimeValue(c.chekIn)<f.start_work,'حضور مبكر ' & DateDiff("n",TimeValue(c.chekIn),f.start_work) & ' دقيقة','حضور في الموعد')) & ' - ' & IIf(TimeValue(c.chekOut)<DateAdd("n",-f.end_free,f.end_work),'انصراف مبكر ' & DateDiff("n",TimeValue(c.chekOut),DateAdd("n",-f.end_free,f.end_work)) & ' دقيقة',IIf(TimeValue(c.chekOut)>f.end_work,'انصراف متأخر ' & DateDiff("n",f.end_work,TimeValue(c.chekOut)) & ' دقيقة','انصراف في الموعد')) AS Details FROM tblcomIn AS c, tbl_Ftrat AS f WHERE (((f.ftraName)='الفترة الرئيسية') And ((DateValue(c.chekIn))=#7/5/2025#)) ORDER BY c.UserId; Query4 UserId chekIn chekOut In_Loss out_Loss work_Hours_count Details 1111 2025-07-05 3:50:10 PM 2025-07-05 11:50:12 PM 0 0 07:30 التفاصيل: حضور مبكر 10 دقيقة - انصراف متأخر 20 دقيقة 2222 2025-07-05 4:20:16 PM 2025-07-05 11:20:28 PM 0 0 07:00 التفاصيل: حضور في الموعد - انصراف في الموعد 3333 2025-07-05 4:32:20 PM 2025-07-05 11:28:31 PM 2 0 06:56 التفاصيل: تأخر 2 دقيقة - انصراف في الموعد 4444 2025-07-05 5:01:25 PM 2025-07-05 11:32:34 PM 31 0 06:29 التفاصيل: تأخر 31 دقيقة - انصراف متأخر 2 دقيقة data1.zip أم تفضل استخدام دالة 😁 .. ؟
-
انا ما عملتش حاجة .. انا بسألك حضرتك
-
أعلم ذلك أخي الأستاذ عبدالله ، جزاكم الله كل الخير وهنا أيضاً كلامك سليم 100% ، وأثني على كلامك بأنه يوجد أمور تحتاج لتعديل في الأكواد . ولكن حسب المطلوب ألتزم لأني لا أعلم بنية باقي المشروع .. أثابكم الله ، ورزقكم الصحة والعافية ,, وأطال في عمركم ,, التقاعد ده حاجة متعبة هههههه