الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كود شرط بين تاريخين .. أين الخطأ ؟

مغلق
بدأه أحمد الحربي في 20 أبريل 2002 · 9 رد · 888 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأخوة الكرام .. أعجزني معرفة أين الخطأ في هذا الكود حيث تظهر الرسالة التالية

No Value gevin for one or more required prarametres

الكود :-

Dim Reco As New ADODB.Recordset

Dim sq As String

Dim crite1 As String يأخذ قيمة رقم الموظف

Dim crite2 As String يأخذ قيمة غياب أو إجازة

Dim crite3 As String يأخذ قيمة نوع الدوام رسمي أو خارج دوام أو رمضان

Dim crite4 As String يأخذ قيمة تاريخين

crite1 = " IDHolyDay = " & Forms!frmquryEmployeesWorkDay!ComboNumEmpl*

crite2 = " and TypeHolyOperation=" & "'" & Me.comboTypeQury & "'"*

crite3 = "and TypeWorkingDay = " & " '" & Me.comboTypeWorkDay & "'"*

crite4 = "and [DateHoly] between ComboDate1 And ComboDate2"*

sq = "select * FROM tblholyday WHERE " & crite1 & crite2 & crite3 & crite4*

Reco.Open sq, CurrentProject.Connection, adOpenKeyset, adLockReadOnly*

MsgBox Reco.RecordCount*

وضعت هنا * العلامة النجمية لكي لا ينقلب الكود فقط

بدون Dim crite4 As String يأخذ قيمة تاريخين لا يعرض رسالة ويعرض عدد السجلات بدون تصفية بين تاريخين .. ولكني لا أريد هذا حيث أريد غياب هذا الموظف في الدوام الرسمي بين تاريخين .. علماُ بأني قد سجلت في الجدول كل هذه البيانات

النموذج ليس له مصدر بيانات حيث إنه نموذج حسابي فقط

إن كانت هناك طريقة أفضل من هذه فلا تبخلوا يا كرام

ولكم خالص شكري وتقديري

#2

أحبتي ..

عملت استعلاماً بنفس الشروط في شبكة الاستعلام على نفس الجدول فاستخرج النتيجة المطلوبة بعد أن وضعت له تاريخين .. والغريب عندما استعرضت SQL وجدت حول التاريخين كالآتي :

28/1/1423 حوله إلى 4/10/2002

29/1/1423 حوله إلى 4/11/2002

وضعت التاريخين بالميلادي في

crite4 = "and [DateHoly] between ComboDate1 And ComboDate2"*

كالأتي

crite4 = "and [DateHoly] between #4/10/2002# And #4/11/2002#" *

فمشي معي تمام .. مع العلم بأن التواريخ بالهجري التي كنت أستعلم عنها .. فما هي المشكلة .. فأنا أريده أن يأخذ قيمة التاريخين من ComboDate1 و ComboDate2

#3

إذا كنت تريد استخدام التاريخ الهجري فمن بند بدء التشغيل يوجد بند للتاريخ الهجري علم عليه صح .

أشرف خليل

#4

شكراً لك أخي أشرف ..

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

#5

بالنسبة لطريقة كتابة الاكواد

ضع قبل الكود

كلمة code داخل

[]

ثم ضع الكود عن طريق القص و اللصق

و بعد الكود ضع code/

داخل []

أما بالنسبة للمشكلة فيستحسن نشر الفورم

ربما يكون الحل أن تستخدم دالة Format أو أن تضيف # قبل التاريخ عند استدعاء قيمة ال combo

tr_Sql = "select * from TableName where DateFieldName between #" & CDate(From_Date) & "# and #" & CDate(To_Date) 

او 

"select * from emplyees where employee_Date= #" & Format((Me.Date1), "mm/dd/YY") & "#"

و ربما يكون الممشكلة أن

IDHolyDay

TypeWorkingDay

TypeHolyOperation

غير موضوعة داخل []

#6

لم تظهر الرسالة مرة أخرى ..

ولكن لم يظهر نتائج .. بعكس ما لو وضعت تاريخين ميلاديين في الخانتين فإنه يعمل بجدارة

لا أدري هل لا بد من تحويل التاريخ الهجري إلى الميلادي لكي يؤدي الشرط عمله

عموماً هذه القاعدة

http://mypage.ayna.com/alharbicom/db1.zip

#7

انا وجدتها تعمل معي هل مازل هناك مشكلة ، فعند الاختيار يظهر البيانات ( التاريخ عندي ميلادي و الاوفيس اكس بي)

#8

نعم لا زالت المشكلة قائمة ...

وبالنسبة لي فلدي أوفيس 2000

لكن أؤكد أنه مع التاريخ الميلادي لا إشكال .. وكذلك عند بناء استعلام في شبكة الاستعلام بالتاريخ الهجري أيضاً لا إشكال لأن أكسس يحولها إلى التاريخ الميلادي عندما أستعرضها في عرض سيكول

#9

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

وذلك حسب ما فهمت .

أشرف خليل

#10

أخي الكريم أشرف ..

آسف على التأخر في الرد .. فقد كنت مسافراً

سجلت تاريخاً جديداً ولا زالت المشكلة كما هي

هذا الموضوع مغلق.

مواضيع مشابهة