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

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

قام بنشر

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

اساتذتى العظماء .. تحية عطرة

ما الخطأ فى هذا الكود 

Dim myWhere As String
myWhere = "[FirstName] ='" & [txtFirstName] & "'"
myWhere = myWhere & " And"
myWhere = myWhere & "[LastName] ='" & [txtLastName] & "'"
myWhere = myWhere & " And"
myWhere = myWhere & "[DateOfBirth] =#" & Format([txtDateOfBirth], "dd/mm/yyyy") & "#"
myWhere = myWhere & " And"
myWhere = myWhere & "[SIR]= " & [ChckSIR]
Debug.Print myWhere

Me.txtCount = DCount("*", "[tblTestCount]", myWhere)

 

Test Dcout.mdb

  • أفضل إجابة
قام بنشر

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

 

كود جدا جميل ، وجدا عملي 🙂

 

محتاج ترك مسافة بعد كل And :

image.png.bab07e51fda88371812e76baf0e095f4.png

وقد تحتاج الى استعمال الدالة التالية للتاريخ (صدقني انها انقذتني مرات ومرات) :

 

جعفر

  • Like 1
قام بنشر

الخطأ هنا أستاذي :

Me.txtCount = DCount("*", "[tblTestCount]",  myWhere )

ينبغي إضافة الأقواس للجملة mywhere  هكذا :

Me.txtCount = DCount("*", "[tblTestCount]", """& myWhere &""")

والله أعلم

  • Like 2
قام بنشر

استاذى الجليل ومعلمى القدير و والدى الحبيب استاذ @jjafferr :fff:

حتى مع ترك المسافة بعد كل And : 

لم احصل على النتيجة :blink:

[FirstName] ='m' And [LastName] ='e' And [DateOfBirth] =#02/11/2021# And [SIR]= -1

 

قام بنشر

يجب استعمال دالة التاريخ 

 

Dim myWhere As String
myWhere = "[FirstName] ='" & [txtFirstName] & "'"
myWhere = myWhere & " And "
myWhere = myWhere & "[LastName] ='" & [txtLastName] & "'"
myWhere = myWhere & " And "
'myWhere = myWhere & "[DateOfBirth]=#" & Format([txtDateOfBirth], "dd/mm/yyyy") & "#"
myWhere = myWhere & "[DateOfBirth] =" & DateFormat([txtDateOfBirth])
myWhere = myWhere & " And "
myWhere = myWhere & "[SIR]= " & [ChckSIR]
Debug.Print myWhere

Me.txtCount = DCount("*", "[tblTestCount]", myWhere)

 

 

Function DateFormat(varDate As Variant) As String
    'Purpose:    Return a delimited string in the date format used natively by JET SQL.
    'Argument:   A date/time value.
    'Note:       Returns just the date format if the argument has no time component,
    '                or a date/time format if it does.
    'Author:     Allen Browne. allen@allenbrowne.com, June 2006.
    '
    'calling the Function: DateFormat(The_Date_Field)
    'a = dlookup("[some field]","some table","[id]=" & me.id & " And [Date_Field]=" & DateFormat(The_Date_Field))
    '

    
    If IsDate(varDate) Then
        If DateValue(varDate) = varDate Then
            DateFormat = Format$(varDate, "\#mm\/dd\/yyyy\#")
        Else
            DateFormat = Format$(varDate, "\#mm\/dd\/yyyy hh\:nn\:ss\#")
        End If
    End If
End Function

 

 

جعفر

  • Like 2
قام بنشر
7 دقائق مضت, ابا جودى said:

استاذى الجليل ومعلمى القدير و والدى الحبيب استاذ @jjafferr :fff:

حتى مع ترك المسافة بعد كل And : 

لم احصل على النتيجة :blink:

[FirstName] ='m' And [LastName] ='e' And [DateOfBirth] =#02/11/2021# And [SIR]= -1

 

هل النتيجة تساوي صفر ؟؟؟؟؟؟

قام بنشر
6 دقائق مضت, ناقل said:

هل النتيجة تساوي صفر ؟؟؟؟؟؟

استخدم القيم الموجودة في سجل الجدول ، والمفروض النتيجة = 1 🙂

 

جعفر

  • Like 2
قام بنشر

تفضل ........

Dim myWhere As String
myWhere = "[FirstName] ='" & [txtFirstName] & "'"
myWhere = myWhere & " And"
myWhere = myWhere & "[LastName] ='" & [txtLastName] & "'"
myWhere = myWhere & " And"
myWhere = myWhere & "[DateOfBirth] =#" & Format(Me.txtDateOfBirth.Value, "mm/dd/yyyy") & "#"
myWhere = myWhere & " And"
myWhere = myWhere & "[SIR]= " & [ChckSIR]
Debug.Print myWhere
Me.txtCount = DCount("*", "[tblTestCount]", myWhere)
If DCount("*", "[tblTestCount]", myWhere) > 0 Then MsgBox "This data is present and it cannot be repeated": Exit Sub

 

Test Dcout.mdb

  • Like 2
قام بنشر

أعتقد أن المشكلة ليست في الدالة وإنما في الجدول ، فقد لاحظت أن الجدول يزيد مسافات في الخلايا هكذا :

image.png.539a8652dce4ffb2bbcdd39837b2f233.png

شي آخر .. أنا أحب أن أحل هذه المشاكل بطريقة أسهل كما في المرفق 😁

Test Dcout.mdb

  • Like 1
قام بنشر

يغجبني كثيرا متابعة الاخوة استاذ @ناقل واستاذ @Moosak

لكن غلب علي النعاس ومتابعتهم تحتاج قهوة الصباح

بالعراقي نقول .. فدوة لهذا المنتدى ولعطيته 😂

  • Like 1
  • Thanks 2
قام بنشر

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

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

اسأل الله تعالى لكم البركة فى العمر والعلم والرزق والأهل والأحباب وكل كلمات الشكر تقف امام مجهودكم ومشاركاتكم عاجزة

شكر الله لكم واحسن اليكم :fff::fff::fff:

قام بنشر
14 ساعات مضت, jjafferr said:

كود جدا جميل ، وجدا عملي 🙂

 

استاذى الجليل ومعلمى القدير و والدى الحبيب استاذ @jjafferr:fff:

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

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

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

قام بنشر
14 ساعات مضت, Moosak said:

أعتقد أن المشكلة ليست في الدالة وإنما في الجدول ، فقد لاحظت أن الجدول يزيد مسافات في الخلايا هكذا :

image.png.539a8652dce4ffb2bbcdd39837b2f233.png

شي آخر .. أنا أحب أن أحل هذه المشاكل بطريقة أسهل كما في المرفق 😁

Test Dcout.mdb 284 kB · 4 downloads

لا علاقة للامر بالمسافات 

وللعلم تعمدت وضع المسافات الزائدة للوقوف على نتيجة الاجراء

قام بنشر

حياك الله 🙂

 

1 ساعه مضت, ابا جودى said:

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

 

اسمح لي اوضح لك بعض النقاط عن  التاريخ :

  1. الاكسس يأخذ تنسيق التاريخ من اعداداتك في الوندوز ، إلا اذا قمت انت بعمل تنسيق آخر للتاريخ في قاعدة بياناتك (لاحظ ان كلامنا كله عن التنسيق ، وليس عن اصل التاريخ) ،
  2. انت لما عملت التنسيق هكذا: "mm/dd/yyyy" ، لأنه يتناسب مع التنسيق الذي رأيته في كمبيوترك ، بينما التنسيق في كمبيوتر مستخدم آخر يكون غير (وهذا ما حصل معي) ، فعليه لن يعمل الكود هناك !! وللتغلب على هذه الاشكالية ، استخدم التنسيق للطرفين:
    "Format([DateOfBirth], 'mm/dd/yyyy') ='" & Format(Me.txtDateOfBirth, "mm/dd/yyyy") & "'"

    لاحظ ان Format غيّرت نوع الحقل من تاريخ الى نص ، فتعاملي لها هنا هو نص ،

  3. ابحث في الانترنت عن "date format used natively by JET SQL" حتى تعرف ان المشكلة دولية 🙂

  4. داخليا واثناء تنفيذ العمل ، الاكسس يتعامل مع التواريخ بالتنسيق الامريكي: شهر/يوم/سنه ، لهذا السبب ، بعض الاوقات ترى في الاستعلامات ان الاكسس قلب بين اليوم والشهر (1 الى 12) !!
  5. الدالة DateFormat تقوم بتحويل التاريخ الى النظام الامريكي ، ومنها يكون التاريخ صحيح ،
  6. هناك حوار جميل عن تنسيق التاريخ ، وطريقة اخرى للقيام بالعمل ، كما هو موضح بطريقة الاستاذ @Hawiii 

جعفر

  • Like 1
قام بنشر
9 ساعات مضت, ابا جودى said:

وللعلم تعمدت وضع المسافات الزائدة للوقوف على نتيجة الاجراء

كيف جعلته يضيف المسافات تلقائيا أستاذي العزيز وما الحكمة من ذلك ؟

قام بنشر (معدل)
منذ ساعه, Moosak said:

كيف جعلته يضيف المسافات تلقائيا أستاذي العزيز وما الحكمة من ذلك ؟

كنت اريد التأكد هل وجود المسافات الزائدة تشكل فارق النتيجة المرجو الحصول عليها

اما عن سؤال حضرتك كيف اضفتها 

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

ـــــــــــــــ

لكن بوجه عام انا ان احببت اضافة مسافات وانا متعمدا لذلك 

اضغط على زر Alt   من لوحة المفاتيح ضغط مستمر وفى نفس الوقت اكتب الارقام 255 تلك طريقة الـ Asci :wink2:

 

تم تعديل بواسطه ابا جودى
  • Like 1
قام بنشر
6 دقائق مضت, ابا جودى said:

تعمدت التأكد من ان الحلول لن تأثر تلك المسافات عليها

هلا فعلا النتائج لم تتأثر بالمسافات الزائدة عندك حسب تجربتك؟

أنا كنت أفكر في دالة like أو دالة Trim كحلول لهذه المشكلة ..

  • Like 1
قام بنشر
6 دقائق مضت, Moosak said:

أنا كنت أفكر في دالة like أو دالة Trim كحلول لهذه المشكلة

حياالله ولد بلادي 🙂

استخدم Trim ، وابتعد عن Like قدر الامكان ، لأنها بطيئه نوعا ما 🙂

 

جعفر

  • Like 1
قام بنشر
2 دقائق مضت, jjafferr said:

حياالله ولد بلادي 🙂

حياك الله وبياك جعفر 😄 🌹

بصراحة أحس بالأنس وانت موجود في المنتدى 👍🏼😁

وشكرا على النصيحة 🌹

  • Haha 1
قام بنشر
الان, Moosak said:

بصراحة أحس بالأنس وانت موجود في المنتدى 👍🏼😁

كلنا طلاب العلم فى هذا الصرح نحس بالأنس عند تواجد اساتذتنا العظماء

قام بنشر
4 دقائق مضت, ابا جودى said:

كلنا طلاب العلم فى هذا الصرح نحس بالأنس عند تواجد اساتذتنا العظماء

أكيد طبعا أستاذنا الغالي @ابا جودى 😄

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.

×
×
  • اضف...

Important Information