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

ارجو المساعدة في دالة if لا تعمل معي


إذهب إلى أفضل إجابة Solved by ابوخليل,

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

السلام عليكم اساتذتي الكرام

ارجو مساعدتي

لدي نموذج كتبت به الكود ده

If [تاريخ الدفعة] = Me.date Then
Me.date.Undo
Me.Undo
MsgBox "التاريخ مكرر"
Else
nam.SetFocus
Exit Sub
End If

وهو لو كان التاريخ موجود مسبقا اظهر رسالة التاريخ مكرر ولكن !! الرسالة تظهر سواء كان التاريخ موجود بالجدول او لا وكان الدالة  لاتعمل ولا فائدة منها

مساعدة.rar

رابط هذا التعليق
شارك

وعليكم السلام

اتفضل اخى ان شاء الله يكون ما تريد

ونصيحه منى لى قبلك ابتعد عن الاسماء المحجوزه وابتعد عن تسميه الحقول والجداول والنماذج والتقارير والاستعلامات باللغه العربيه اجعل التسميات بالعربيه فى التسميه التوضيحيه

فى حدث بعد التحديث لحقل الفرع  وملحوظه اخرى قمت بالغاء المفتاح الاساسى من عالتاريخ واضفت حقل id ترقيم تلقائى

Private Sub znam_AfterUpdate()
x = Nz(DLookup("[تاريخ الدفعة]", "[تسجيل دفعات الصرف]", "[اسم الفرع]='" & [اسم الفرع] & "'"), 0)
If x = Me.zdate Then
Me.zdate.Undo
Me.Undo
MsgBox "التاريخ مكرر"
Else
zdate.SetFocus
End If
End Sub

بالتوفيق

مساعدة.rar

تم تعديل بواسطه احمد الفلاحجي
لارفاق الملف
رابط هذا التعليق
شارك

28 minutes ago, احمد الفلاحجي said:

وعليكم السلام

اتفضل اخى ان شاء الله يكون ما تريد

ونصيحه منى لى قبلك ابتعد عن الاسماء المحجوزه وابتعد عن تسميه الحقول والجداول والنماذج والتقارير والاستعلامات باللغه العربيه اجعل التسميات بالعربيه فى التسميه التوضيحيه

فى حدث بعد التحديث لحقل الفرع  وملحوظه اخرى قمت بالغاء المفتاح الاساسى من عالتاريخ واضفت حقل id ترقيم تلقائى


Private Sub znam_AfterUpdate()
x = Nz(DLookup("[تاريخ الدفعة]", "[تسجيل دفعات الصرف]", "[اسم الفرع]='" & [اسم الفرع] & "'"), 0)
If x = Me.zdate Then
Me.zdate.Undo
Me.Undo
MsgBox "التاريخ مكرر"
Else
zdate.SetFocus
End If
End Sub

بالتوفيق

مساعدة.rar 31.29 kB · 5 downloads

استاذي احمد شاكر جدا مجهودك الرائع بارك الله فيك

ولكن المشكلة كما هي وهي عند التنقل من حقل التاريخ لا تظهر الرسالة حتي ولو الحقل مكرر 

وايضا من ضمن المشروع ان يكون حقل التاريخ مفتاح اساسي فانا اريد رسالة بعد التحديث تقول ان التاريخ مكرر من قبل الضغط ع حفظ

شاكر مجهود جداااااا استاذي

 

رابط هذا التعليق
شارك

57 دقائق مضت, mostafaelshnawy5 said:

ولكن المشكلة كما هي وهي عند التنقل من حقل التاريخ لا تظهر الرسالة حتي ولو الحقل مكرر 

بعتذر عالنسيان

اتفضل جرل ووافنا بالنتيجه

Private Sub znam_AfterUpdate()
x = Nz(DLookup("[تاريخ الدفعة]", "[تسجيل دفعات الصرف]", "[اسم الفرع]='" & Me.znam & "' and  [تاريخ الدفعة]=#" & Format([zdate], "mm/dd/yyyy") & "# "), 0)
If x = Me.zdate Then
Me.zdate.Undo
Me.Undo
MsgBox "التاريخ مكرر"
Else
zdate.SetFocus
End If
End Sub

 

58 دقائق مضت, mostafaelshnawy5 said:

وايضا من ضمن المشروع ان يكون حقل التاريخ مفتاح اساسي فانا اريد رسالة بعد التحديث تقول ان التاريخ مكرر من قبل الضغط ع حفظ

اذا جعلت التاريخ مكرر فلن تستطيع ادخال نفس التاريخ لفروع اخرى

بالتوفيق

مساعدة.rar

رابط هذا التعليق
شارك

10 دقائق مضت, احمد الفلاحجي said:

اذا جعلت التاريخ مكرر فلن تستطيع ادخال نفس التاريخ لفروع اخرى

الحقيقة انا لم احمل الملف ولاعلم لي بطريقة انشاء الملف وقد تكون هناك حلول اخرى

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

  • Like 1
رابط هذا التعليق
شارك

1 minute ago, kha9009lid said:

الحقيقة انا لم احمل الملف ولاعلم لي بطريقة انشاء الملف وقد تكون هناك حلول اخرى

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

ليس لدي مشكلة بالمفتاح الاساسي انا لا اريد الفرع مفتاح اساسي هو كده تمام ولكن الذي اريده هو عند ادخال التاريخ في النموذج وكان التاريخ موجود مسبقا تظهر رسالة التاريخ موجود سابقا واذا لا يكمل عادي 

وشكرا

 

 

رابط هذا التعليق
شارك

جرب الكود التالي في حدث قبل التحديث

    Cancel = chkIfExists()
    If Cancel Then
        Me.Undo
        Call showDuplicate
    End If

تواجهني مشكلة اللغة كوني أستعمل الأوفيس فرنسي لم أستطع التعديل كما هو مطلوب على كل الفنكشيون أضعه للإخوة للتعديل عليه بما يفي الغرض

Private Function showDuplicate()
    With Me.RecordsetClone
        .FindFirst _
            "[probation officer name]='" & mstrOfficer & "' and " & _
            "[date of work]=#" & format(mdteDateOfWork, "mm\/dd\/yyyy") & "#"
        Me.Bookmark = .Bookmark
    End With
End Function

 

تم تعديل بواسطه biskra
  • Like 1
رابط هذا التعليق
شارك

4 دقائق مضت, mostafaelshnawy5 said:

ليس لدي مشكلة بالمفتاح الاساسي انا لا اريد الفرع مفتاح اساسي هو كده تمام ولكن الذي اريده هو عند ادخال التاريخ في النموذج وكان التاريخ موجود مسبقا تظهر رسالة التاريخ موجود سابقا واذا لا يكمل عادي 

اخي الفاضل اسعد الله اوقاتك ردي كان على جزئية الاستاذ احمد في موضوع التكرار لنفس التاريخ في فروع اخرى 🌹

  • Like 1
رابط هذا التعليق
شارك

5 minutes ago, kha9009lid said:

اخي الفاضل اسعد الله اوقاتك ردي كان على جزئية الاستاذ احمد في موضوع التكرار لنفس التاريخ في فروع اخرى 🌹

تمام اخي لقد تفهمتك 

شكرا جزيلا واذا كان لديك حل ارجو مساعدتي

تسلم معالي الباشا

رابط هذا التعليق
شارك

57 minutes ago, احمد الفلاحجي said:

بعتذر عالنسيان

اتفضل جرل ووافنا بالنتيجه


Private Sub znam_AfterUpdate()
x = Nz(DLookup("[تاريخ الدفعة]", "[تسجيل دفعات الصرف]", "[اسم الفرع]='" & Me.znam & "' and  [تاريخ الدفعة]=#" & Format([zdate], "mm/dd/yyyy") & "# "), 0)
If x = Me.zdate Then
Me.zdate.Undo
Me.Undo
MsgBox "التاريخ مكرر"
Else
zdate.SetFocus
End If
End Sub

 

اذا جعلت التاريخ مكرر فلن تستطيع ادخال نفس التاريخ لفروع اخرى

بالتوفيق

مساعدة.rar 28.56 kB · 3 downloads

بارك الله فيك استاذي احمد

لقد قمت بعدم التكرار بين التاريخ والفروع معاً ولكن انا اريد عدم تكرار التاريخ فقط 

ارجو مساعدتي استاذي ولك الشكر 

 

رابط هذا التعليق
شارك

منذ ساعه, kha9009lid said:

الحقيقة انا لم احمل الملف ولاعلم لي بطريقة انشاء الملف وقد تكون هناك حلول اخرى

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

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

جزاك الله خيرا اخى واستاذى العزيز

23 دقائق مضت, mostafaelshnawy5 said:

لقد قمت بعدم التكرار بين التاريخ والفروع معاً ولكن انا اريد عدم تكرار التاريخ فقط 

وفيك بارك الله

لاء انا قمت بجلب التاريخ المطابق للتاريخ والفرع بالنموذج

وركز للمكتوب بالاحمر

23 دقائق مضت, mostafaelshnawy5 said:

ولكن انا اريد عدم تكرار التاريخ فقط 

انت تريد عدم تكرار التاريخ لمن ؟

 

تم تعديل بواسطه احمد الفلاحجي
رابط هذا التعليق
شارك

1 minute ago, احمد الفلاحجي said:

ههههههه من كنت اقصد اذا جعلت التاريخ مفتاح اساسى فلن تستطيع ادخال نفس التاريخ لفروع اخرى

وفيك بارك الله

لاء انا قمت بجلب التاريخ المطابق للتاريخ والفرع بالنموذج

وركز للمكتوب بالاحمر

انت تريد عدم تكرار التاريخ لمن ؟

 

عدم التكرار للتاريخ في جدول تسجيل دفعات الصرف واستخدمت هذا الكود ولكن لا اعرف اين الخطا!!

Private Sub تاريخ_الدفعة_BeforeUpdate(Cancel As Integer)
 If DCount("تاريخ الدفعة", "تسجيل حالات الصرف", "[تاريخ الدفعة]=" & Me.تاريخ_الدفعة) > 0 Then

     MsgBox "    هذا الاسم تم تكراره سابقا"
Cancel = True
        End If
End Sub

 

مساعدة 2.rar

رابط هذا التعليق
شارك

1 hour ago, احمد الفلاحجي said:

بعتذر منك لعدم فهم طلبك

بالتوفيق

معذرة ع الازعاج استاذ احمد

الفكرة هو اني عامل جدول اسمه تسجيل حالات الصرف وعامل نموذج 

النموذج ده به حقل اسمه التاريخ الذي اريده هو عند كتابة تاريخ موجود مسبقا تظهر لي رسالة ان التاريخ موجود مسبقا 

 

رابط هذا التعليق
شارك

10 دقائق مضت, mostafaelshnawy5 said:

معذرة ع الازعاج استاذ احمد

الفكرة هو اني عامل جدول اسمه تسجيل حالات الصرف وعامل نموذج 

النموذج ده به حقل اسمه التاريخ الذي اريده هو عند كتابة تاريخ موجود مسبقا تظهر لي رسالة ان التاريخ موجود مسبقا 

 

مفيش ازعاج ولا حاجه وانا مش استاذ انا طالب علم هنا مثلك وبتعلم من مشاركتكم الحلول على اسئلتكم فلا تخاطبنى بكلمة استاذ

وجزاهم الله خيرا اخواننا واساتذتنا الذين نتعلم منهم

نرجع لموضوعنا

نبعد شويه عن الكود ونخلينا فالجدول

2 ساعات مضت, mostafaelshnawy5 said:

اذا جعلت التاريخ مفتاح اساسى فلن تستطيع ادخال نفس التاريخ لفروع اخرى

ماذا ستفعل عند ادخالك بيانات فرعين او اكثر فى تاريخ واحد مثلا تاريخ اليوم فى وضعك مفتاح اساسى للتاريخ ؟

فى انتظار الاجابه لنمشى خطوه خطوه

  • Like 1
رابط هذا التعليق
شارك

1 hour ago, احمد الفلاحجي said:

مفيش ازعاج ولا حاجه وانا مش استاذ انا طالب علم هنا مثلك وبتعلم من مشاركتكم الحلول على اسئلتكم فلا تخاطبنى بكلمة استاذ

وجزاهم الله خيرا اخواننا واساتذتنا الذين نتعلم منهم

نرجع لموضوعنا

نبعد شويه عن الكود ونخلينا فالجدول

ماذا ستفعل عند ادخالك بيانات فرعين او اكثر فى تاريخ واحد مثلا تاريخ اليوم فى وضعك مفتاح اساسى للتاريخ ؟

فى انتظار الاجابه لنمشى خطوه خطوه

هو بالفعل مفتاح اساسي 

وما اريده هو عند انتقال من حقل التاريخ تظهر رساله التاريخ مكرر مثلا

 

رابط هذا التعليق
شارك

4 ساعات مضت, mostafaelshnawy5 said:

هو بالفعل مفتاح اساسي 

وما اريده هو عند انتقال من حقل التاريخ تظهر رساله التاريخ مكرر مثلا

انت مردتش على سؤالى

ان شاء الله يساعد احد اخواننا واساتذتنا باذن الله

بالتوفيق

رابط هذا التعليق
شارك

  • أفضل إجابة

صحيح اخي احمد .... اوقات الواحد يحاول يعدلها في راسه وما تتعدلش

دعنا ننزل على رغبة الأخ مصطفى

اولا  حقل التاريخ مرتبط  بحقل هو بالاصل مفتاح  يعني ماراح يسمح بالتكرار فيمكننا معالجته بأكثر من طريقة

الطريقة الاولى :

ادخال التاريخ في حقل غير منضم  فإن قبله اكسس  يتم نقله الى الفورم  وتسجيله في الجدول وإلا يتم الغاء العملية

Dim x As Boolean
On Error Resume Next
x = DLookup("[تاريخ الدفعة]", "[تسجيل دفعات الصرف]", "[تاريخ الدفعة]=#" & Me.idate & "#")
If x = True Then
DoCmd.CancelEvent
MsgBox "التاريخ مكرر"
Exit Sub
Else
End If

 

مساعدة.rar

  • Like 2
رابط هذا التعليق
شارك

الطريقة الثانية :

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

لأن الطريقة الثانية هذه تستلزم تحديث النموذج وأنت جعلت حقل الفرع مطلوب

Private Sub idate_AfterUpdate()
On Error GoTo i_err
Me.Refresh
i_err:
    If Err.Number = 3022 Then    'Or Err.Number = 2115
   Response = acDataErrContinue
  Beep
MsgBox "التاريخ مكرر"
 Undo
    End If
End Sub

 

مساعدة2.rar

  • Like 2
رابط هذا التعليق
شارك

7 ساعات مضت, ابوخليل said:

صحيح اخي احمد .... اوقات الواحد يحاول يعدلها في راسه وما تتعدلش

دعنا ننزل على رغبة الأخ مصطفى

اولا  حقل التاريخ مرتبط  بحقل هو بالاصل مفتاح  يعني ماراح يسمح بالتكرار فيمكننا معالجته بأكثر من طريقة

الطريقة الاولى :

ادخال التاريخ في حقل غير منضم  فإن قبله اكسس  يتم نقله الى الفورم  وتسجيله في الجدول وإلا يتم الغاء العملية


Dim x As Boolean
On Error Resume Next
x = DLookup("[تاريخ الدفعة]", "[تسجيل دفعات الصرف]", "[تاريخ الدفعة]=#" & Me.idate & "#")
If x = True Then
DoCmd.CancelEvent
MsgBox "التاريخ مكرر"
Exit Sub
Else
End If

 

مساعدة.rar 25 kB · 0 downloads

اهلا ومرحبا بك اخى ومعلمى وشيخنا العزيز ابوخليل

لم ارغب بالنزول ولكن رغبت بالنهضه به وتنبيهه للوضع الحالى بانه لن يتم تسجيل اى فروع اخرى فى نفس التاريخ وحلها بالترقيم التلقائى مفتاح اساسى

او كما اشار اخى واستاذى العزيز خالد بعمل مفتاح اساسى مكون من حقلين اما حقل التاريخ ولاخر ترقيم او حقل التاريخ والفرع

وانت قمت بالتعديل المناسب

وبما اننى طالب علم فى مدرستكم وع قد حالى واتعلم منكم ومن اخوانى واساتذتى جزاكم الله عنا خيرا

فارفق تعديل اخر بما اننا قد قمنا بالنزول وفى حدث قبل التحديث لحقل التاريخ

اختر التاريخ وعند الخروج اذا كان موجود ستخرج لك الرساله وان لم يكن سينتقل للكمبو

Private Sub date_BeforeUpdate(Cancel As Integer)
  Dim dbs As DAO.Database
        Dim rst As DAO.Recordset
        
        Set dbs = CurrentDb
        Set rst = dbs.OpenRecordset("SELECT [تسجيل دفعات الصرف].* FROM [تسجيل دفعات الصرف];")
    
        rst.FindFirst "[تاريخ الدفعة]=#" & Format([تاريخ الدفعة], "mm/dd/yyyy") & "# "
       
        If rst.NoMatch Then
            Exit Sub
            Me.nam.SetFocus
        Else
            Do While Not rst.NoMatch
                MsgBox "هذا التاريخ مسجل من قبل"
                rst.FindNext "[تاريخ الدفعة]=#" & Format([تاريخ الدفعة], "mm/dd/yyyy") & "# "
            Loop

            rst.FindNext "[تاريخ الدفعة]=#" & Format([تاريخ الدفعة], "mm/dd/yyyy") & "# "
        End If
             Me.Undo
End Sub

بالتوفيق

مساعدة_3 - Copy.accdb

  • Like 1
رابط هذا التعليق
شارك

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