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

Moosak

أوفيسنا
  • Posts

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

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

  • Days Won

    55

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

  1. وعليكم السلام أخي أزهر 🙂 جرب هذا : ="[Nameread]='" & [x1] & "' And [dateread] Between #" & Nz([Forms]![fmainreader]![x2]) & "# And #" & Nz([Forms]![fmainreader]![x3]) & "#"
  2. أخي العزيز @Abujaber لدي فكرة جميلة لبرنامجك بدل الطريقة الحالية 🙂 سابقا كنت طرحت موضوع في المنتدى لبرنامج (صانع الشهادات ) والذي أتممته ولله الحمد بمساعدة الإخوة الأعزاء في المنتدى وقد طرحت في الكثير من الأفكار الراااائعة .. وهذا رابط الموضوع : كان الموضوع أشمل قليلا عن مجرد صنع الشهادات ، كان لعمل الشهادات وتنسيقها وإرسالها بالإيميل وكذلك عمل إحصائيات بعدد الأشخاص ( برنامجي أعددته لقسم التدريب لدينا ) لذلك فهو يعطينا إحصائيات بعدد المتدربين خلال الفترة التي تحددها .. ، وكذلك يمكنك تغيير الإطار كما تشاء بدون الحاجة لعمل تقارير جديدة .. 🙂 بإذن الله عندما يتسنى لي الوقت المناسب سأقوم بطرح البرنامج هنا ليستفيد منه الجميع 😊✌️ وهذه بعض الصور الواقعية للبرنامج : إنتظرونا ... 😉✌️
  3. هذا الكود يحضر لك قائمة بجميع الطابعات المنصبة في جهازك وبياناتها 🙂 تستطيع من خلال التعديل على الكود جعله يحفظ أسماء الطابعات في جدول خاص بها .. Sub ShowPrinters() Dim strCount As String Dim strMsg As String Dim prtLoop As Printer On Error GoTo ShowPrinters_Err If Printers.Count > 0 Then ' Get count of installed printers. strMsg = "Printers installed: " & Printers.Count & vbCrLf & vbCrLf ' Enumerate printer system properties. For Each prtLoop In Application.Printers With prtLoop strMsg = strMsg _ & "Device name: " & .DeviceName & vbCrLf _ & "Driver name: " & .DriverName & vbCrLf _ & "Port: " & .Port & vbCrLf & vbCrLf End With Next prtLoop Else strMsg = "No printers are installed." End If ' Display printer information. MsgBox Prompt:=strMsg, Buttons:=vbOKOnly, Title:="Installed Printers" ShowPrinters_End: Exit Sub وهذا كود ثاني أسهل منه يحضر لك أسماء الطابعات فقط 🙂 Sub ListPrinters() Dim prt As Printer For Each prt In Printers Debug.Print prt.DeviceName Next prt End Sub ثم استخدم هذا الكود لتعيين طابعة معينة لتقرير معين : Sub SetReportPrinter(rptName As String, PrinterName As String) Dim rptName As String DoCmd.OpenReport rptName, acViewPreview Set Reports(rptName).Printer = PrinterName 'Or some printer returned by your search code DoCmd.SelectObject acReport, rptName DoCmd.PrintOut DoCmd.Close acReport, rptName End Sub
  4. السلام عليكم ورحمة الله وبركاته 🙂 اليوم بفضل الله تعلمت شي جديد وحبيت أحطه في تطبيق عملي مباشرة ً .. 😎 وفي نفس الوقت حبيت أشارككم الفائدة 😄 معلومة اليوم تتحدث عن الحدث : Form.Repaint للنموذج ويمكن كتابته هكذا Me.Repaint ووضيفته مشابهة للـ DoEvents تقريبا إلا أنه مع التجربة والمقارنة وجدته أسرع في التنفيذ . معناه الحرفي ( إعادة الرسم ) ووضيفته بشكل عام هو إظهار أي تحديثات معلقة للنموذج في أثناء تنفيذ أي حدث 😁 .. وللمزيد من المعلومات هنا ستجدون رابط الشرح من مايكروسوفت : <<< اضغط هنا >>>> المهم .. هذا تطبيقي على الحدث وتكمن في تحريك الأزرار عند الضغط عليها بشكل يضفي طابع جمالي وجديد للنماذج 🙂 ( قد لا تبين حركة الأزرار العلوية في الصورة التوضيحية .. لذلك سترونها بوضوح من خلال الملف المرفق 😁 ) وهذا شكلها في الأكواد المستخدمة : Function AnimateBtns1() Dim x As Integer Dim y As Integer For x = 1 To 6 Me("b" & x).Visible = True For y = 1 To 35 Me("b" & x).Top = Me("b" & x).Top + y Me.repaint Next y For y = 1 To 35 Me("b" & x).Top = Me("b" & x).Top - y Me.repaint Next y Me.repaint Next x End Function Function AnimateBtns2() Dim x As Integer Dim y As Integer For x = 1 To 6 For y = 1 To 35 Me("c" & x).Top = Me("c" & x).Top + y Me.repaint Next y Me.repaint Next x For x = 1 To 6 For y = 1 To 35 Me("c" & x).Top = Me("c" & x).Top - y Me.repaint Next y Next x End Function تحياتي 🙂 ✌️🌷🌹 حركة الأزرار.accdb
  5. تم حل المشكلة أخي @figo82eg 🙂 بدل الدالتين بهذه .. لنوع الملف : =IIf(Not IsNull([Full]) And InStr(1;[Full];".")<>0;Right([Full];Len([Full])-InStrRev([Full];"."));"") لاسم الملف : =IIf(Not IsNull([Full]) And InStr(1;[Full];".")<>0;Left([Full];InStrRev([Full];".")-1);[Full]) ولعيون الحبيب @ابو جودي تم حل قضية الخانات الفاضية أو الأسماء الغير صحيحة 😏 : وعندما تكون فاضية كذلك : إمتداد.accdb
  6. إحنا مش هنستعبط على البرنامج بأه 😂
  7. أمااااااااااااااااااااااااال خلاص تمت الإضافة
  8. تفضل أخي @ra7yl2006 🙂 هذه جملة الإحصاء التي استخدمتها للحصول على الناتج : =DCount("*";"[Gyab_Query]";"[كود الموظف] =" & [Forms]![المرتبات]![كود الموظف] & " And [gMonth] =" & [Forms]![المرتبات]![MonthCbo] & " And [gYear] =" & [Forms]![المرتبات]![yearCbo] & " ") ولكن بعد العديد من التعديلات الضرورية على بنية الجداول والنموذج مع إنشاء استعلام جديد باسم Gyab_Query للحصول على تاريخ وسنة الغياب .. aa.rar
  9. تفضل أخي @figo82eg 🙂 للحصول على نوع الملف : =Right([Full];Len([Full])-InStrRev([Full];".")) للحصول على اسم الملف : =Left([Full];InStrRev([Full];".")-1) حيث أن [Full] هو اسم الحقل الذي يحوي أسم الملف كاملا إمتداد.accdb
  10. وعليكم السلام ورحمة الله وبركاته 🙂 وضعت هذه الدالة في عمود جديد بالاستعلام "المرتبات Q" وهي تحسب عدد أيام الغياب كلها بدون حصر التواريخ في فترة محددة .. Gyab: CInt(DCount("[كود الموظف]";"[تسجيل الغياب1]";"[كود الموظف] =" & [idemp])) لا أدري أين تريد وضع شرط الفترة الزمنية التي ستحسب عليها عدد أيام الغياب ؟
  11. وعليكم السلام ورحمة الله وبركاته أخي عمر .. إن كنت تستخدم نسخة 2007 أو أقدم .. فجرب تغيير كلمة Recordset2 إلى Recordset يمعنى شيل رقم 2 من الحكاية .. وجرب 🙂
  12. وعليكم السلام ورحمة الله وبركاته أخي خالد 🙂 من نافذة تحرير الاستعلام بعدما تدرج الجدول الجديد أنقر نقرا مزدوجا بالماوس على رابط العلاقة وستظهر لك نافذة خصائص الربط .. إختر منها الخيار الثالث .. وستعود المياه إلى مجاريها إن شاء الله 🙂 وطبق ذلك على بقية الاستعلامات.
  13. مشاركة بسيطة مع أساتذتنا الفضلاء وآباءنا الأعزاء 😊 هناك حل آخر بتحويل الحقول إلى نص طويل Long Text في الجدول وجعل خاصية ال Text Format تساوي Rich Text ثم يتم إدراج الحقول من جديد في النموذج والتقرير .. والتأكد من أن خاصية الفورمات للحقول هي Rich Text كذلك ( في النموذج والتقرير ) : والآن بمجرد تظليل النص سيظهر لي مربع التحكم وسيمكنني من التحكم بالخط والألوان كذلك 🙂👌🏼 والنتيجة في التقرير : reportsettings.accdb
  14. عذرا أخي @figo82eg إنشغلنا بإجازة العيد 😅 .. تفضل التعديل : بعدها يتم حذف المجلد [ 1 ] والخاص بالسجل رقم 1 بالكامل بما فيه من ملفات 🙂 وهذا الكود المرتبط بزر الحذف : Private Sub DltBtn_Click() Dim DesPath As String Dim D As String: D = "\" DesPath = BECurrentPath & D & Me.InOut & D & Me.Department & D & Me.DocType & D & Me.ID If IsFileExists(DesPath) = False Or IsBlank(Me.FileName) = True Then MsgBox "لا يمكن العثور على الملف", vbOKOnly, "": Exit Sub On Error Resume Next If MsgBox("هل حقا تريد حذف الملفات المرتبطة ؟", vbYesNo, "") = vbYes Then DleteFolder DesPath Me.FileName = "" Me.ImageBox.Requery End If End Sub وفي حدث عند الحذف للنموذج تضع هذا الأمر : Private Sub Form_Delete(Cancel As Integer) DltBtn_Click End Sub مع الحاجة لإضافة هاتين الدالتين في موديول ( أنا أضفتها للموديول المسمى FilesHandlingModule ) : Public Function DleteFolder(FolderPath As String) Dim fs Set fs = CreateObject("Scripting.FileSystemObject") fs.DeleteFolder FolderPath, True Set fs = Nothing End Function '----------------------------------------------------------------------------- ' True if the argument is Nothing, Null, Empty, Missing or an empty string . '----------------------------------------------------------------------------- Public Function IsBlank(arg As Variant) As Boolean Select Case VarType(arg) Case vbEmpty IsBlank = True Case vbNull IsBlank = True Case vbString IsBlank = (LenB(arg) = 0) Case vbObject IsBlank = (arg Is Nothing) Case Else IsBlank = IsMissing(arg) End Select End Function AttachFilesToDB.rar
  15. جرب هذا أخي قاسم 🙂 وأضن أن هذا الكود مكتوب بلغة الجافا
  16. عمي المهندس قاسم أيدك الله بنصره 😊🌹.. الفرق بين الدالتين هو أن الدالة التي وضعتها أنا تحضر لك أول يوم من هذا الأسبوع تلقائيا بغض النظر عن أي يوم من الأسبوع نحن فيه .. أما الدالة التي تفضلت انت بها تنقص 5 أيام تحديدا من يومنا الحالي… فلو كنا في يوم الأحد مثلا ستدخل الفترة في أسبوعنا الماضي ..
  17. لا أعتقد أنه يمكنك الزيادة على 255 .. فأكسس يعطيك طاقة استيعابية محددة لا يمكن تخطيها .. وللمزيد من المعلومات ، في هذا الرابط ستجد الطاقة الاسيعابية لكل عنصر أو كائن في أكسس 🙂 https://support.microsoft.com/en-us/office/access-specifications-0cf3c66f-9cf2-4e32-9568-98c1025bb47c
  18. تفضل هذه المحاولة أخي @naguib_3778 🙂 استخدمت هذا المعيار : >=(Date()-Weekday(Date();7)+1) And <=Date() ووضيفته أن يحصر لك السجلات بين أول يوم من الأسبوع الحالي ( بدءا من يوم السبت ) والى اليوم الذي نحن فيه من نفس الأسبوع . وإذا كان الأسبوع يبدأ من يوم الأحد تغير الرقم 7 إلى الرقم 1 New Microsoft Access Database.accdb
  19. الله يبارك فيك أخي بلال .. 🙂 بالنسبة للتاريخ فأموره سهلة وبسيطة .. لكن الوقت للأسف لم تعمل مايكروسوفت له نموذج منبثق لاختياره ففي جميع الأحوال يتم كتابته يدويا .. إلا إن تم عمل أزرار للزيادة أو النقصان أو قوائم منسدلة بدل الكتابة اليدوية مثل الويندوز .. وفي النهاية على حقول العداد جميعها أن تقرأ الوقت من حقل واحد أو أن تحصل على الوقت من مصدر واحد لكي تعمل مع بعضها .. ومن لديه فكرة تحسينية فلينورنا بها 🙂
  20. وعليكم السلام أخي بلال 🙂 بعد العديد من المحاولات نجحت ولله الحمد Count Down Timer.accdb
  21. طبعا هذا طلب جديد 🙂 فياريت لو تضيف الطلبات الجديدة على آخر ملف عملته لك .. بدل ما يبدأ الشغل من جديد من الصفر ..
×
×
  • اضف...

Important Information