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

كيفية التعامل مع التاريخ عند الادخال

مغلق
بدأه al-basray في 23 مارس 2005 · 14 رد · 6,505 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

اخوتي الاعزاء لدي مشكلة في عملية ادخال بيانات حقل ذات صفة تاريخ حيث اني قد عرفة برنامج معين في v.b مرتبط ببيانات في الاكسس .

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

ارجو مساعدتي بدالة يمكن ان اتأكد من ان البيانات المدخلة تاريخ وصحيحة او لا ولكم الشكر الجزيل والامتنان

اخوكم البصري

#2

أخي يمكنك استخدام الدالة isdate والتي تكتشف قيمة مربع النص هل هو تاريخ ام لا

مثل التالي

If IsDate(Text1.Text) Then
MsgBox "this Is  Date"
Else
MsgBox "this Is not Date"
End If

تحياتي لك

أخوك ناصر

#3

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

أخى البصرى الأمر ببساطة عن طريق الدالة Isdate وهى تعود بقيمة True إذا كان المدخل تاريخ وFalse إذا لم يكن

{يَا أَيُّهَا النَّاسُ اتَّقُوا رَبَّكُمْ إِنَّ زَلْزَلَةَ السَّاعَةِ شَيْءٌ عَظِيمٌ }الحج1

#4

ههههههههههههه

ردين في نفس الوقت

جزاك الله خيرا أخي shearer

#5

===========================

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

Private Sub Text21_Change()
Text21 = "$$\$$\$$$$"  End Sub

هل ممكن تطبيق القناع

بمعنى بدل علامة $ ماذا ممكن ان نضع!

تحياتي

===========================

تم تعديل هذه المشاركة بواسطة POWER _GIRL في 23 مارس 2005 في 11:05

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#6

ردا على الأخت Power Girl

1- الحدث Change غير مناسب للكود الذى كتبتيه

2- استخدمى MaskedEdit أفضل بدلا من Text

3- استخدمى # بدلا من $ فى الماسك إديت

والنصيحة الأفضل هى استخدام الأداة Date Time Picker فى التواريخ وبخاصى فى التقارير

هذه الأداة حل سحرى لمن يستخدم التاريخ الهجرى فى الإدخال

عن عبدالله بن عمر رضي الله عنهما أن رسول الله صلى الله عليه وسلم قال :

( أحب الناس إلى الله أنفعهم ، وأحب الأعمال إلى الله عز وجل سرور تدخله على مسلم ، أو تكشف عنه كربة ، أو تقضي عنه دينا ، أو تطرد عنه جوعا ، ولأن أمشي مع أخي المسلم في حاجة أحب إليّ من أن اعتكف في المسجد شهرا ، ومن كف غضبه ستر الله عورته ، ومن كظم غيظا ، ولو شاء أن يمضيه أمضاه ، ملأ الله قلبه رضا يوم القيامة ، ومن مشى مع أخيه المسلم في حاجته حتى يثبتها له ، أثبت الله تعالى قدمه يوم تزل الأقدام ، وإن سوء الخلق ليفسد العمل كما يفسد الخل العسل )

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

#7

السلام عليكم , انا شايفه انه كثر السؤال عن التاريخ وكيفية التعامل معه سواء ادخال او استرجاع او كونه هجري او ميلادي

انا راح اعرض تجربتي

اول حاجه راح نستخدم أداة maskeditbox كمربع لادخال التاريخ

وفي دالة formload سنكتب الكود التالي :

"########" = maskEdbox1.mask

وعند الحاجه الى عرض البيانات والقراءه من قاعدة البيانات سنقرأها بالشكل التالي :

حقل التاريخ هنا اسمه date_m6roof

If Not IsNull(rs!Date_m6roof) Then

[MaskEdBox1.Text = rs![Date_m6roof

End If

عند عملية ادخال تاريخ جديد او تحرير التاريخ سنكتب التالي :

If IsDate(MaskEdBox1.Text) = False Then

MsgBox "Please Enter Valid Date dd/mm/yyyy.", vbCritical, "Error"

maskEdbox1.SetFocus

Exit Sub

End If

في حالة التأكد من التاريخ سيتم الكتابة بقاعدة البيانات كالتالي :

rs![Date_m6roof] = MaskEdBox1.Text

او اذا لم يكن استعلام تستطيع استخدام التالي :

Data1.Recordset("Date_m6roof")= maskedbox1.text

يليها

rs.update

اتمنى انه قدمت مايفيد

تحياتي

#8

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

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

عندى سؤال على هذه النقطة

من يستطيع أن يقول أن التاريخ 1425/2/5 مثلا أو التاريخ 2005/2/5 هجرى أو ميلادى؟

فكلاهما مقبول هجرى أو ميلادى، صح؟

واستخدام Calendar-vbHijri أو Calendar= vbGregor لن يعترض فى تحويل قيمهم لسنوات سابقة مثل 828/2/5 مثلا أو آتية مثل 2539/2/5 مثلا

وكلها تواريخ مقبولة

هذا سبب كلمتى أن الأداة dtPicker حل سحرى للتاريخ الهجرى والميلادى

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

عن عبدالله بن عمر رضي الله عنهما أن رسول الله صلى الله عليه وسلم قال :

( أحب الناس إلى الله أنفعهم ، وأحب الأعمال إلى الله عز وجل سرور تدخله على مسلم ، أو تكشف عنه كربة ، أو تقضي عنه دينا ، أو تطرد عنه جوعا ، ولأن أمشي مع أخي المسلم في حاجة أحب إليّ من أن اعتكف في المسجد شهرا ، ومن كف غضبه ستر الله عورته ، ومن كظم غيظا ، ولو شاء أن يمضيه أمضاه ، ملأ الله قلبه رضا يوم القيامة ، ومن مشى مع أخيه المسلم في حاجته حتى يثبتها له ، أثبت الله تعالى قدمه يوم تزل الأقدام ، وإن سوء الخلق ليفسد العمل كما يفسد الخل العسل )

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

#9

السلام عليكم

انا عندي قاعدة بيانات فيها التاريخ بالعربي مثل

1426/02/13

ولكن اذا استعرضتها عن طريق الفيجول بيسك صار التاريخ

829/03/26

مع اني كتبت قبل الاتصال بالقاعدة

Calendar = vbCalHijri

460.gif

#10

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

وهالطرييقه تفي بالغرض

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

وبالنسبه لاخوي المتميز انا كنت تطلع هالمشكله الي تقول عنها بس بعدين اكتشتفت ان المشكله لاني كنت اكتب هالكود

(Val(maskedbox.text

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

#11

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

460.gif

#12

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

الأخ الفاضل المتميز

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

فبقولك Calendar= vbHijri جعلت البرنامج يحول التاريخ المدخل من الميلادى إلى الهجرى

فأصبح يرى أن التاريخ 1426/02/13 مثلا يقابله الهجرى 829/03/26

أى أن الـ Calendar لن تعرف من منها ميلادى ومن هجرى هى فقط تطرح وتجمع بناء على معامل التحويل

لذلك أعيد النصيحة بأن نستخدم dtPicker1.Value بدلا من الأدوات الغير مخصصة للتاريخ

ولا تحاول تحويل التاريخ من هجرى إلى ميلادى إلا إن كنت تريد عرض المقابل لتاريخ معين عند النوع الآخر من التاريخ

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

بالنسبة لما سؤال jennya

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

التاريخ مخزن فى هذه الأداة فى الخاصية Value وهى من الأدوات الموجودة فى المكتبة Microsoft Windows Common Controls-2 6.0 (SP4) أو نحو ذلك

وهى عند فتحها أثناء التنفيذ ستشبه الـCalendar فى مظهرها إذا لم نختار خاصية UpDown = True التى تظهر سهمين لأعلى وأسفل بجانب التاريخ فيها

ولها خاصيتين للحد الأعلى Max والحد الأدنى Min للتاريخ وخصائص أخرى لمظهرها وخلافه

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

والله أعلى وأعلم

عن عبدالله بن عمر رضي الله عنهما أن رسول الله صلى الله عليه وسلم قال :

( أحب الناس إلى الله أنفعهم ، وأحب الأعمال إلى الله عز وجل سرور تدخله على مسلم ، أو تكشف عنه كربة ، أو تقضي عنه دينا ، أو تطرد عنه جوعا ، ولأن أمشي مع أخي المسلم في حاجة أحب إليّ من أن اعتكف في المسجد شهرا ، ومن كف غضبه ستر الله عورته ، ومن كظم غيظا ، ولو شاء أن يمضيه أمضاه ، ملأ الله قلبه رضا يوم القيامة ، ومن مشى مع أخيه المسلم في حاجته حتى يثبتها له ، أثبت الله تعالى قدمه يوم تزل الأقدام ، وإن سوء الخلق ليفسد العمل كما يفسد الخل العسل )

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

#13

السلام عليكم

مشكور اخي على توضيحك

لكن اخي الفاضل أنا أريد التعامل مع التاريخ بالهجري

يعني المستخدم يدخل التاريخ الهجري ويبحث عن البيانات بواسطة التاريخ الهجري

ويا ليت تضع مثال اكون لك شاكر .

تحياتي

460.gif

#14

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

أخى المتميز

هل أفهم من كلامك أنك تريد المستخدم أن يظهر له التاريخ الهجرى حتى لو تنسيق التاريخ فى الإعدادات الإقليمية ميلادى؟

إن كانت إجابتك بنعم:

هنا يمكنك التعامل مع التقويم وتحويله والتأكد من نوعه باستخدام Calendar = vbHijri كما ذكرت أنت من قبل

وإن كانت إجابتك بلآ:

مما يعنى أنك تريد ترك البرنامج ليعمل على أى Culture وتعطيه قدر عالى من المرونة والدقة فدع أداة الـ Date Time Picker تتولى هذا نيابة عنك وتتشكل حسب إعدادات المستخدم

سواء هجرى ميلادى يوم/شهر/سنة أو شهر/يوم/سنة كل هذا ستفهمه بصورة صحيحة

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

ولكن الحمد لله بعدما وضعت هذه الأداة حلت 98% من مشاكلى مع التاريخ الهجرى ووفرت على أطنان من الكود للتأكد من صحة التاريخ وتحويله بفعالية عالية

ولله الحمد من قبل ومن بعد

أما عن المثال فأنت لا تحتاج له

فقط ضع هذه الأداة مكان أى TextBox أو MaskedEdit كنت تستخدمه للتاريخ

سبب ال 2% التى لم تحققها أنى لم أعرف كيف أجعلها فارغة من التاريخ ، حيث لابد أن يظهر بها تاريخ - فقد استخدمت تاريخ اليوم بدلا من تركها فارغة - مؤقتا حتى أجد حل لهذا

سُبْحَانَكَ لاَ عِلْمَ لَنَا إِلاَّ مَا عَلَّمْتَنَا إِنَّكَ أَنتَ الْعَلِيمُ الْحَكِيمُ

عن عبدالله بن عمر رضي الله عنهما أن رسول الله صلى الله عليه وسلم قال :

( أحب الناس إلى الله أنفعهم ، وأحب الأعمال إلى الله عز وجل سرور تدخله على مسلم ، أو تكشف عنه كربة ، أو تقضي عنه دينا ، أو تطرد عنه جوعا ، ولأن أمشي مع أخي المسلم في حاجة أحب إليّ من أن اعتكف في المسجد شهرا ، ومن كف غضبه ستر الله عورته ، ومن كظم غيظا ، ولو شاء أن يمضيه أمضاه ، ملأ الله قلبه رضا يوم القيامة ، ومن مشى مع أخيه المسلم في حاجته حتى يثبتها له ، أثبت الله تعالى قدمه يوم تزل الأقدام ، وإن سوء الخلق ليفسد العمل كما يفسد الخل العسل )

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

#15

جوزيت خيررررررررررررررررررررررررررررر

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…