أهلا بك أخي الكريم ، الحمدلله دائماً وأبداً هذا من فضل الله علينا جميعاً ، شكراً جزيلاً لك على كلماتك الطيبه ودعواتك الطيبه الله يتقبلها لي ولك ولجميع المسلمين والله يسعدك ويوفقك ويسهل أمورك في الدنيا والآخره وجميع المسلمين ، جزاك الله كل خير .
كود :
For Each Breathe in MyLife
Breathe.Say " سبحان الله والحمد لله ولا إله إلا الله والله أكبر أستغر الله العظيم وأتوب إليه"
Next
07-08-18, 07:59 PM (آخر تعديل لهذه المشاركة : 07-08-18, 08:00 PM {2} بواسطة awidan76.)
اخي الغالي احمد منصور اعلم بانني كثرت اسئلتي لك ولكن فعلا محتاج لك
اذا عندك بعض الوقت لترى هل هذا الكود صحيح ام لا
حيث انني اردت عند تحميل واجهة الحضور والغياب يقوم هذا الكود بعمل غياب لكل الموظفين في هذا اليوم (تاريخ الجهاز)
جلبت بيانات الحضور والغياب فان وجد ان اكثر من شخص غائبين في هذا التاريخ إذاً يخرج من الاجراء .... مالم يقوم بعمل غياب للكل
هذا ولك جزيل الشكر
PHP كود :
Public Sub CountEM() 'Dim RSGhiab As ADODB.Recordset 'Set RSGhiab = New ADODB.Recordset If RSGhiab.State = adStateOpen Then RSGhiab.Close RSGhiab.Open "SELECT * FROM falowTB where FDate like #" & Date & "#", Db, adOpenStatic, adLockOptimistic If RSGhiab.RecordCount > 0 Then Exit Sub Else 'Dim RSCountEM As ADODB.Recordset
'Set RSCountEM = New ADODB.Recordset Dim CC As Integer
If RSCountEM.State = adStateOpen Then RSCountEM.Close RSCountEM.Open "SELECT EmID FROM EmpTB", Db, adOpenStatic, adLockOptimistic
If RSCountEM.RecordCount > 0 Then
RSCountEM.MoveFirst Do While Not RSCountEM.EOF ' Do Until RSCountEM.EOF CC = RSCountEM![EmID] RSGhiab.AddNew RSGhiab![FEmpID] = CC RSGhiab![FDate] = Date RSGhiab![Ftime] = Time RSGhiab![Fday] = Format(Date, "dddd") RSGhiab![EReson] = "" ..........غياب ...... RSGhiab![ECase] = 0 RSGhiab![ECovr] = 0 RSGhiab![Enots] = "" RSCountEM.MoveNext RSGhiab.MoveNext
أهلا بك أخي الكريم ، السبب في ذلك أن كود الإجراء يعتمد على تاريخ الجهاز حيث أنك عندما تستخدم كلمة Date في الكود فهذا يعني تاريخ الجهاز الحالي إذا كنت تريد أن لا يرتبط التاريخ في الكود بتاريخ الجهاز فيجب أن تمرر التاريخ الذي تريده إلى كود الأجراء ، لم أفهم لماذا تزيد تاريخ الجهاز بيوم زيادة ما الغرض من ذلك يبدو أنك تريد شيئاً ما لم أفهمه فلو توضح بشكل أكثر ماتريده بالضبط يكون أفضل .
كود :
For Each Breathe in MyLife
Breathe.Say " سبحان الله والحمد لله ولا إله إلا الله والله أكبر أستغر الله العظيم وأتوب إليه"
Next
08-08-18, 04:27 PM (آخر تعديل لهذه المشاركة : 08-08-18, 04:32 PM {2} بواسطة awidan76.)
نعم اخي اردت من ذلك ان يقوم البرنامج في كل يوم جديد بعمل غياب لكل الموظفين ويتم تحضير الحاضرين فقط ( الذين حضروا الدوام فعلا) بتحضيرهم يدويا بدلا من تحضير وتغييب كل الموظفين في كل يوم
اما من ناحية التجربة قمت بتغيير تاريخ الجهاز باضافة يوم اردت التاكد هل سيقوم بنفس العمليه ام لا ( هل ستحصل اخطاء)
فتفاجئت بانه يتم تغييبهم مرة تلو المرة مع تكرار التاريخ
حيث انه لا يمكن تغييب الموظف اكثر من مرة في نفس التاريخ
وانا كنت حابب ان يقوم البرنامج بتغييبهم مرة كل يوم جديد فقط واقوم بتحضير الحاضرين فقط
واليوم التالي يقوم بتغييبهم واقوم بتحضير الحاضرين وهكذا
أهلا أخي الكريم , أعتقد الأن وضحت الفكرة , إذا السبب الذي أدى للمشكلة هو وضع حقل ECase في شرط جملة الإستعلام لذلك إن شاء الله بإزالته تنحل المشكلة , فسيكون كود الإجراء بعد التغيير هكذا :
PHP كود :
Public Sub CountEM()
If RSGhiab.State = adStateOpen Then RSGhiab.Close
RSGhiab.Open "SELECT * FROM falowTB where FDate=#" & Format(Date, "mm/dd/yyyy") & "#", Db, adOpenStatic, adLockPessimistic
If RSGhiab.RecordCount > 0 Then
If RSGhiab.State = adStateOpen Then RSGhiab.Close MsgBox "لقد تمت التهيئة مسبقاً" Exit Sub
Else
If RSCountEM.State = adStateOpen Then RSCountEM.Close
RSCountEM.Open "SELECT EmID FROM EmpTB", Db, adOpenStatic, adLockPessimistic
اخي الغالي احمد منصور
المشكلة نفسها
بس حسيت بشي جعلني اغير صيغة التاريخ عند الحفظ الى dd/mm/yyyy
فأشتغل الكود بشكل ممتاز
ربما حصل تضارب بين صيغة التاريخ لان نفس الجدول مفتوح ونفس الصيغة تم الاستعلام عنها ههههه والله اعلم