اذهب الي المحتوي
أوفيسنا

Barna

الخبراء
  • Posts

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

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

  • Days Won

    24

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

  1. مشاركة مع اخي @Foksh Sub PrintAllPDFsInFolder() Dim MyFolder As String Dim MyFile As String Dim MyApp As String ' تحديد المجلد الذي يحتوي على ملفات PDF MyFolder = "C:\your\path\here\" ' تحديد التطبيق الذي سيتم استخدامه لفتح ملفات PDF MyApp = "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" ' الحصول على اسم أول ملف PDF في المجلد MyFile = Dir(MyFolder & "*.pdf") ' حلقة عبر كل ملف PDF في المجلد Do While MyFile <> "" ' فتح الملف بواسطة Acrobat Reader وطباعته Shell """" & MyApp & """" & " /h /p " & """" & MyFolder & MyFile & """", vbHide ' الانتظار لمدة 5 ثوانٍ للسماح للملف بالطباعة Application.Wait (Now + TimeValue("0:00:05")) ' الحصول على اسم الملف التالي MyFile = Dir Loop End Sub ملاحظة لم اجرب الكود .... يرجى ملاحظة أن هذا الكود يفتح كل ملف PDF بواسطة Adobe Acrobat Reader ويطبعه. يجب أن يكون لديك Adobe Acrobat Reader مثبتًا على جهاز الكمبيوتر الخاص بك ويجب أن تعرف المسار الذي تم تثبيته فيه. يمكنك تعديل المسار في الكود أعلاه ليتوافق مع المسار الذي تم تثبيت Acrobat Reader فيه على جهازك. إذا كنت تستخدم برنامجًا آخر لقراءة ملفات PDF، فسيتعين عليك تحديث الكود لاستخدام هذا البرنامج.
  2. اخي @SAROOK السلام عليكم ورحمة الله وبركاته انظر التعديلات على الملف ..... - تم التعديل على طريقة احتساب التاخر على اساس سنوي - تم التعديل على طريقة اختيار السنة في نموذج الطباعة التقرير الشهري للغياب.accdb
  3. وانت في صحة وسلامة ..... اللهم بلغنا رمضان ونحن والمسلمون في صحة وعافية وعزة ( ملاحظة انت ذكرتني بها ) زر التحديث المعمول في الموضوع السابق وهي احتساب يوم غياب .... قد تحتاج الى تعديل ( لان الاحتساب هل يتم على اساس سنوي أو تحسب في جميع السنوات يعني انا موظف تاخرت يومين العام الماضي وتاخرت يوم لهذه السنة ... هل تحسب ثلاث ايام تاخر أم يومين وعفى الله عما سلف ) عموما تم تعديل المرفق حسب طلبك ( اي تعديل التقرير بحيث يظهر حسب شرطين _ السنة _ الشهر ) .... تفضل التقرير الشهري للغياب.accdb
  4. هههه ... اعتقد اننا بهذا انتهكنا قوانين المنتدى .. بارك الله فيك اطرح سؤالك في موضوع جديد .. وارفق التقرير وما يلزم ... تجد الاجابة من اعضاء المنتدى الكرام
  5. وهذا تعديل بسيط في الكود حتى لا يقع يوم التاخر في ضمن اطار اجازة الموظف ................ Private Sub Form_BeforeUpdate(Cancel As Integer) Dim rst As dao.Recordset Set rst = CurrentDb.OpenRecordset("SELECT hol.lateday, hol.ck, hol.Rea, hol.[no], hol.ck, hol.Rea, hol.absdate, hol.start_date, hol.end_date " & _ " FROM hol " & _ " WHERE (((hol.[no])=" & [Forms]![late-enter]![no] & ")) " & _ "ORDER BY hol.lateday;") rst.MoveFirst Do Until rst.EOF If rst!lateday = Me![نص15] Then MsgBox " تاريخ التاخر هذا مسجل سابقا لهذا الموظف ", , " تنبيه" Me.Undo DoCmd.CancelEvent Exit Do ElseIf rst!absdate = Me![نص15] Then MsgBox " الموظف غائب اليوم ", , " تنبيه" Me.Undo DoCmd.CancelEvent Exit Do ElseIf Me![نص15] >= rst!start_date And Me![نص15] <= rst!end_date Then MsgBox " التاريخ موجود ضمن فترة إجازة الموظف ", , " تنبيه" Me.Undo DoCmd.CancelEvent Exit Do End If rst.MoveNext Loop rst.Close End Sub
  6. هذه الاسطر هو في اساسه استعلام ولكن مكتوب بطريقة SQL انظر الصور ..................
  7. استبدل الكود لديك بهذا .......................... Private Sub Form_BeforeUpdate(Cancel As Integer) Dim rst As dao.Recordset Set rst = CurrentDb.OpenRecordset("SELECT hol.lateday, hol.ck, hol.Rea, hol.[no], hol.ck, hol.Rea, hol.absdate, hol.start_date, hol.end_date " & _ " FROM hol " & _ " WHERE (((hol.[no])=" & [Forms]![late-enter]![no] & ")) " & _ "ORDER BY hol.lateday;") rst.MoveFirst Do Until rst.EOF If rst!lateday = Me![نص15] Then MsgBox " تاريخ التأخر مكرر ", , " تنبيه" Me.Undo DoCmd.CancelEvent Exit Do ElseIf rst!absdate = Me![نص15] Then MsgBox " الموظف غائب اليوم ", , " تنبيه" Me.Undo DoCmd.CancelEvent Exit Do End If rst.MoveNext Loop rst.Close End Sub
  8. بارك الله فيك ..... انظر الصورة لهذا الموظف قبل التحديث وبعد التحديث ( هل هذا هو المطلوب ) ؟؟؟؟؟؟ جرب المرفق واعلمنا بالنتيجة ..... الغياب والتاخير.accdb
  9. للاسف ليس لدي سكنر ... جرب واعلمنا .......... Public Function SelectScanner() Dim ComDialog As New WIA.CommonDialog Dim wiaScanner As WIA.Device ' عرض نافذة لاختيار الجهاز Set wiaScanner = ComDialog.ShowSelectDevice(WiaDeviceType.ScannerDeviceType, False, True) ' إذا تم اختيار جهاز، فإن DeviceID سيحتوي على معرف الجهاز المحدد If Not wiaScanner Is Nothing Then MsgBox "تم اختيار الجهاز: " & wiaScanner.DeviceID Else MsgBox "لم يتم اختيار أي جهاز." End If End Function يتطلب إضافة مرجع إلى “Microsoft Windows Image Acquisition Library v2.0
  10. اما ان تفعل المكتبة كما ذكر استاذي الفاضل @Foksh أو قم بتعطيل هذه الاسطر المشار اليها باسهم واضافة السطر الموجود داخل المستطيل وبهذا لا تحتاج الى تفعيل المكتبة ....
  11. أخي الكريم @عبدالقدوس48 هل تتوقع ان من يجيب هو من يضع الامثلة والمرفق ..... ام السائل هو من يزودنا بالمرفق للتطبيق عليه بعد دراسة طريقته في البرنامج ووضع الحل المناسب لمرفقه .... بارك الله فيك
  12. وعليكم السلام ورحمة الله وبركاته ... منذ ان شاهدت الموضوع وانا افكر في هذا الاسلوب ... يعني انا لوكنت موظف وعارف اني متأخر .... لن احضر الا في الساعة الاخيرة من الدوام ...
  13. Sub InsertYears() Dim rsSource As DAO.Recordset Dim rsTarget As DAO.Recordset Dim StartDate As Date Dim EndDate As Date Dim iYear As Integer DoCmd.SetWarnings False DoCmd.RunSQL "DELETE TEMP_DATE.* FROM TEMP_DATE;" DoCmd.SetWarnings True Set rsSource = CurrentDb.OpenRecordset("date1") Set rsTarget = CurrentDb.OpenRecordset("TEMP_DATE") Do Until rsSource.EOF StartDate = rsSource!t2 EndDate = rsSource!t3 For iYear = Year(StartDate) To Year(EndDate) rsTarget.AddNew rsTarget!t2 = CStr(iYear) rsTarget!t1 = rsSource!t1 rsTarget.Update Next iYear rsSource.MoveNext Loop rsSource.Close rsTarget.Close Set rsSource = Nothing Set rsTarget = Nothing End Sub
  14. تفضل حسب طلبك ..... الأعوام بين تاريخين.accdb
  15. كلامك صحيح مئة بالمئة وفي النهاية لا يصح الا الصحيح مثال (5).accdb
  16. جدولك ليس فيه تواريخ ؟؟؟؟ ولكن ماذا لو كانت الاسماء كثيرة ؟؟؟؟؟؟ مشاركة مع حبيبنا الاستاذ @Foksh جرب هذه الطريقة !!!!! مثال (5).accdb
  17. مشاركة مع اخي الاستاذ @محمد احمد لطفى في حدث عند تحميل النموذج ضع هذا الكود ... مع مسح الدالة الموجودة في مربع نص العمر بالسنوات Dim intH, years As Integer intH = Int(DateDiff("m", date_naissance, Date)) + _ (Date < DateSerial(Year(Date), Month(Date), Day(date_naissance))) years = Int(intH / 12) نص22 = years
  18. لا ابدا ... انا شدتني هذه العبارة .... دائم اسلوبك جذاب كاخلاقك النبيلة ونقاء قلبك بارك الله فيك اخي الكريم محمد .. ونتعلم منك الاخلاق الكريمة ...
×
×
  • اضف...

Important Information