SAROOK قام بنشر الخميس at 19:26 قام بنشر الخميس at 19:26 السلام عليكم ورحمة الله وبركاته لدي في المرفقات قاعدة بيانات خاصة بتسجيل الغياب اليومي للموظفين حيت ان النموذج المسمى absent-enter هو النموذج المسؤول عن تسجيل الغياب اليومي للموظفين وطريقة العمل به ان يتم اختيار اسم الموظف الغائب ثم يتم ادراج تاريخ الغياب وبعدها يتم اختيار اسم الموظف التاني وادارج تاريخ الغياب وهكذا دواليك وطبعا هذه الطريقة في تسجيل الغياب تاخد وقتا حاولت ان اقوم باختصار هذه الطريقة وذلك بان اقوم بادراج يوم الغياب للموظفين الغائبين دفعة واحدة في النموذج المسمى تسجيل الحضور والغياب ولكن لم اوفق في ذلك الغياب والتاخير - نسخة.accdb
ناقل قام بنشر منذ 23 ساعات قام بنشر منذ 23 ساعات 19 ساعات مضت, SAROOK said: حاولت ان اقوم باختصار هذه الطريقة وذلك بان اقوم بادراج يوم الغياب للموظفين الغائبين دفعة واحدة في النموذج المسمى تسجيل الحضور والغياب ولكن لم اوفق في ذلك يعني انت تريد تسجيل غياب الموظفين جميعا .... ثم الضغط علة اضافة يتم ادراج تاريخ الغياب كل الموظفين الغائبين فقط تريد هذا "" ؟؟؟؟ 1
SAROOK قام بنشر منذ 18 ساعات الكاتب قام بنشر منذ 18 ساعات السلام عليكم ورحمة الله وبركاته نعم بشمهندس ناقل . عند الضغط على اضافة يتم ادارج التاريخ الذي تم تحديده لكل موظف غائب
ناقل قام بنشر منذ 17 ساعات قام بنشر منذ 17 ساعات 19 دقائق مضت, SAROOK said: عند الضغط على اضافة يتم ادارج التاريخ الذي تم تحديده لكل موظف غائب اضفت حقل صغير في جدول الموظفين...... جرب الملف NA_1.accdb 1
SAROOK قام بنشر منذ 17 ساعات الكاتب قام بنشر منذ 17 ساعات السلام عليكم ورحمة الله وبركاته ممتاز بشمهندس ناقل هذا هو المطلوب اشكرك من كل قلبي ولي عشم بشمهندس وهو هل يمكن منع تكرار تاريخ الغياب اذا تم ادراجه مره اخرى بالخطاء
ناقل قام بنشر منذ 17 ساعات قام بنشر منذ 17 ساعات 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
SAROOK قام بنشر منذ 16 ساعات الكاتب قام بنشر منذ 16 ساعات السلام عليكم ورحمة الله وبركاته غيرت الشيفرة وادخلت تواريخ ولم يمنع التكرار
تمت الإجابة ناقل قام بنشر منذ 16 ساعات تمت الإجابة قام بنشر منذ 16 ساعات 6 دقائق مضت, SAROOK said: غيرت الشيفرة وادخلت تواريخ ولم يمنع التكرار تفضل ملفك ..... NA_1.accdb الرسالة تظهر عند الضغط على اضافة 1
SAROOK قام بنشر منذ 16 ساعات الكاتب قام بنشر منذ 16 ساعات السلام عليكم ورحمة الله وبركاته تسلم الايادي بشمهندس ناقل كفيت ووفيت بارك الله فيك 1
SAROOK قام بنشر منذ 3 ساعات الكاتب قام بنشر منذ 3 ساعات السلام عليكم ورحمة الله وبركاته بشمهندس ناقل وانا اجرب تورايخ مختلفة لاحظت انه بعد ادراج تاريخ غياب يوم معين مثلا لطارق ومحمد وفتح النموذج مرة اخرى لاستدراك ادارج نفس تاريخ الغياب ل احمد ومحمود تظهر ملاحظة التكرار " تم تسجيل غياب هذا اليوم " بمعنى انه بعد ادخال تاريخ محدد لموظف معين لا يمكن ادخال نفس هذا التاريخ لموظف اخر . ومتاسف جدا للملاحظة المتأخرة
ناقل قام بنشر منذ 22 دقائق قام بنشر منذ 22 دقائق 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.