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

الردود الموصى بها

قام بنشر

السلام عليكم ورحمة الله وبركاته

لدي في المرفقات قاعدة بيانات خاصة بتسجيل الغياب اليومي للموظفين حيت ان النموذج المسمى absent-enter هو النموذج المسؤول عن تسجيل الغياب اليومي للموظفين  وطريقة العمل به ان يتم  اختيار اسم الموظف الغائب ثم يتم ادراج  تاريخ الغياب  وبعدها يتم اختيار اسم الموظف التاني وادارج تاريخ الغياب وهكذا  دواليك وطبعا  هذه الطريقة في تسجيل الغياب تاخد وقتا 

حاولت ان اقوم باختصار هذه الطريقة وذلك بان اقوم بادراج يوم الغياب  للموظفين الغائبين دفعة واحدة في النموذج المسمى تسجيل الحضور والغياب ولكن لم اوفق في ذلك  

‫الغياب والتاخير - نسخة.accdb

قام بنشر
19 ساعات مضت, SAROOK said:

حاولت ان اقوم باختصار هذه الطريقة وذلك بان اقوم بادراج يوم الغياب  للموظفين الغائبين دفعة واحدة في النموذج المسمى تسجيل الحضور والغياب ولكن لم اوفق في ذلك  

يعني انت تريد تسجيل غياب الموظفين جميعا .... ثم الضغط علة اضافة يتم ادراج تاريخ الغياب كل الموظفين الغائبين فقط تريد هذا "" ؟؟؟؟

1.jpg

  • Like 1
قام بنشر

السلام عليكم ورحمة الله وبركاته

نعم بشمهندس ناقل . عند الضغط على اضافة يتم ادارج التاريخ الذي تم تحديده لكل موظف غائب 

قام بنشر

السلام عليكم ورحمة الله وبركاته

ممتاز  بشمهندس ناقل :fff: هذا هو المطلوب اشكرك من كل قلبي

ولي عشم بشمهندس وهو هل يمكن منع  تكرار تاريخ الغياب اذا تم ادراجه مره اخرى  بالخطاء 

قام بنشر
11 دقائق مضت, SAROOK said:

هل يمكن منع  تكرار تاريخ الغياب اذا تم ادراجه مره اخرى  بالخطاء 

غير الشيفرة الموجودة تحث حدث الزر الى ....

Me.Recalc
If DLookup("[absdate]", "[hol]", "[absdate] =#" & [Forms]![تسجيل الحضور والغياب]![نص11] & "#") Then
    MsgBox "تم تسجيل غياب هذا اليوم"
Else
    DoCmd.SetWarnings False
    DoCmd.RunSQL "INSERT INTO hol ( [no], absdate ) " & _
                    " SELECT emp.[no], [forms]![تسجيل الحضور والغياب]![نص11] AS Expr1 " & _
                    " FROM emp " & _
                    " WHERE (((emp.Att)="" غياب""));"
    DoCmd.RunSQL "UPDATE emp SET emp.Att = """";"
    DoCmd.SetWarnings True
End If

 

  • تمت الإجابة
قام بنشر
6 دقائق مضت, SAROOK said:

غيرت الشيفرة  وادخلت تواريخ ولم يمنع التكرار

تفضل ملفك ..... 

1.jpg

NA_1.accdb

الرسالة تظهر عند الضغط على اضافة

  • Thanks 1
قام بنشر

السلام عليكم ورحمة الله وبركاته

بشمهندس ناقل :fff: وانا اجرب تورايخ مختلفة لاحظت انه بعد ادراج تاريخ غياب يوم معين مثلا لطارق ومحمد وفتح النموذج مرة اخرى لاستدراك ادارج نفس تاريخ الغياب ل احمد ومحمود تظهر ملاحظة التكرار " تم تسجيل غياب هذا اليوم "  بمعنى انه بعد ادخال تاريخ محدد لموظف معين  لا يمكن ادخال نفس هذا التاريخ لموظف اخر .

ومتاسف جدا للملاحظة المتأخرة

قام بنشر
3 ساعات مضت, SAROOK said:

وانا اجرب تورايخ مختلفة لاحظت انه بعد ادراج تاريخ غياب يوم معين مثلا لطارق ومحمد وفتح النموذج مرة اخرى لاستدراك ادارج نفس تاريخ الغياب ل احمد ومحمود تظهر ملاحظة التكرار " تم تسجيل غياب هذا اليوم "  بمعنى انه بعد ادخال تاريخ محدد لموظف معين  لا يمكن ادخال نفس هذا التاريخ لموظف اخر .

طيب جرب هذا الكود بدل الموجود تحت الزر عندك ....
 

    On Error GoTo ErrorHandler
    
    Dim db As DAO.Database
    Dim rsEmp As DAO.Recordset
    Dim rsHol As DAO.Recordset
    Dim strSQL As String
    Dim intCount As Integer
    Dim blnExists As Boolean
    
    ' التحقق من وجود تاريخ في مربع النص
    If IsNull(Me.Controls("نص11").Value) Or Me.Controls("نص11").Value = "" Then
        MsgBox "الرجاء إدخال تاريخ في مربع النص نص11", vbExclamation, "تاريخ مفقود"
        Exit Sub
    End If
    
    ' التحقق من أن القيمة تاريخ صحيح
    If Not IsDate(Me.Controls("نص11").Value) Then
        MsgBox "القيمة في مربع النص ليست تاريخاً صحيحاً", vbExclamation, "تاريخ غير صالح"
        Exit Sub
    End If
    Me.Recalc
    ' فتح اتصال بقاعدة البيانات
    Set db = CurrentDb()
    
    ' إنشاء سجل مجموعة لجدول الموظفين (emp) حيث att = "غياب"
    strSQL = " SELECT emp.[no], emp.Att " & _
                                " FROM emp " & _
                                " WHERE (((emp.Att)="" غياب""));"
    Set rsEmp = db.OpenRecordset(strSQL)
    
    ' التحقق من وجود سجلات
    If rsEmp.EOF And rsEmp.BOF Then
        MsgBox "لا توجد سجلات غياب في جدول الموظفين", vbInformation, "لا توجد بيانات"
        GoTo CleanUp
    End If
    
    ' فتح جدول hol للكتابة
    Set rsHol = db.OpenRecordset("hol")
    
    ' بدء عملية الإدراج
    intCount = 0
    Do Until rsEmp.EOF
        ' التحقق من عدم وجود سجل مكرر
         blnExists = DCount("[no]", "[hol]", "[absdate] =#" & [Forms]![تسجيل الحضور والغياب]![نص11] & "# And [no] =" & rsEmp!no & " ")
        
        If Not blnExists Then
            On Error Resume Next ' لتجنب أخطاء الإدراج
            rsHol.AddNew
            rsHol!no.Value = rsEmp!no.Value
            rsHol!absDate.Value = [Forms]![تسجيل الحضور والغياب]![نص11]
            rsHol.Update
            
            If Err.Number = 0 Then
                intCount = intCount + 1
            Else
                MsgBox "خطأ في إدراج سجل للموظف رقم " & rsEmp!no & ": " & Err.Description, vbExclamation
                Err.Clear
            End If
            On Error GoTo ErrorHandler
        Else
            MsgBox "تم تجاهل الموظف رقم " & rsEmp!no & " لأنه مسجل غياب بالفعل في هذا التاريخ", vbExclamation, "سجل مكرر"
        End If
        
        rsEmp.MoveNext
    Loop
    
    MsgBox "تم إدراج " & intCount & " سجل غياب بنجاح", vbInformation, "تمت العملية"
    
CleanUp:
    On Error Resume Next
    If Not rsEmp Is Nothing Then
        rsEmp.Close
        Set rsEmp = Nothing
    End If
    If Not rsHol Is Nothing Then
        rsHol.Close
        Set rsHol = Nothing
    End If
    Set db = Nothing
    Exit Sub
    
ErrorHandler:
    MsgBox "حدث خطأ: " & Err.Description & " (السطر: " & Erl & ")", vbCritical, "خطأ"
    Resume CleanUp

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information