السلام عليكم
استخدم هذا الكود ويحفظ التاريخ بترتيب الشهر قبل اليوم يعني بدل 12/04/2019 يحفظها 04/12/2019
كود :
Application.DoEvents()
Dim sqlcomand As New OleDb.OleDbCommand
sqlcomand.Connection = con1
sqlcomand.CommandType = CommandType.Text
sqlcomand.CommandText = "insert into masrof([nam],[total],[datt])values ( '" & TextBox2.Text & "', '" & TextBox3.Text & "',#" + DateTimePicker3.Value.Date + "#) "
con1.Open()
sqlcomand.ExecuteNonQuery()
con1.Close()
Dim DataAdapter As New OleDbDataAdapter("SELECT * FROM masrof Order By id", con1)
con1.Open()
dataset2.Clear()
DataAdapter.Fill(dataset2, "masrof")
con1.Close()
وعليكم السلام ورحمة الله وبركاته
فى البداية لا يهم الطريقة التى يتم تسجيل التاريخ به بقاعدة البيانات
لانك بالنهاية عند الاستعلام وجلب البيانات ستتمكن من تغيير تنسيق عرض التاريخ
أو يمكنك تعديل هذا الجزء
كود :
DateTimePicker3.Value.Date
ليصبح
كود :
DateTimePicker3.Value.Date.ToString("dd/MM/yyyy")
وكذلك يمكنك تحرير خيارات DateTimePicker3
كما بالصورة
ولكن بدل . اجعلها / لما تريده من شكل التنسيق المطلوب
تحياتى لك
وتمنياتى لك التوفيق
جزاكم الله خيرا
لم تحل المشكلة
اذا عليك تعديل التنسيق بقاعدة البيانات
اذهب على الجدول masrof وعلى عمود datt
طبعاً وانت فى وضع تصميم الجدول
بعد الضغط على عمود datt ستجل بالاسفل قائمة General
تحتوى على خيار
Format فقط اجعل قيمتها
وستجد مهما اختلف شكل التاريخ المرسل عن الاضافة
بالنهاية سيعرض يوم شهر سنة
للتوضيح الشرح المذكور لقاعدة بيانات Access
تحياتى لك
وتمنياتى لك التوفيق
السّلام عليكم و رحمة الله و بركاته
أخي الكريم و أستاذي الحبيب " ELGOKR "
أرجو النّصح منك لو تكرّمت ..
أعمل على برنامج للإختبارات الرّسميّة للممتحنين .. و لا يحتمل الخطأ بالبيانات إطلاقًا .. أسعى لذلك و المتقدّم و الباقي من الله و على الله ..
أستعمل التاكست بكس لإدخال تواريخ الميلاد على قاعدة بيانات أكسس .. من خلال الكومبوبكسات .. كومبو 1 للأيام .. كومبو 2 للأشهر و الثالث للسنوات
و الناتج سيظهر بإحدى التاكسات بكس .. ليتم حفظه بقاعدة البيانات
كله تمام و لله الحمد و الشكر ..
تساؤلاتي :
ما هي بوجهة نظرك أحسن و أفضل أداة لإستعمالها مع التّاريخ .. و هل يوجد إشكال بالإعتماد على التاكست بكس لحفظ التاريخ .. مع العلم أخي .. أنا هربت من الدات تايم بيكر .. فقط لأنّ لونها لا يتغيّر و دائما باللون الأبيض فسببت لي مظهرا مزعجا للصفحة
بارك الله فيك و لك و جزاك خير الجزاء و زادها بموازين حسناتك إن شاء الله
تحياتي واحتراماتي
مرحباً اخى وحبيبي عبد العزيز البسكري
فى البداية لا يهم الطريقة التى ستقوم بها من حيث المظهر
لادخال التاريخ ومن ثم ارساله
لان كما ذكرت انه مظهر وهو يرجع لك
طبقاً لما هو يناسب مشروعك
فمن الممكن ان تجعله 2 ComboBox ويكون لـ الشهر والسنة
و الثالث يكون TextBox ويكون لليوم مع تحديد انه يقبل الارقام فقط واكبر رقم هو 31
الفكرة انه يرسل بعد ذلك لـ TextBox اخر ليعرض التاريخ لارساله بعد ذلك فها لا يهم
فيكفى ان تستخدم مثل هذا الشكل
كود :
Dim Dat As Date = TextBox1.Text & "/" & ComboBox1.Text & "/" & ComboBox2.Text
MsgBox(Dat)
ومن ثم ارسال Dat الى قيمة الادخال بقاعدة البيانات
ممكن ان تقوم ايضاً من خلال اداء MaskedTextBox
فسيسهل عليك اكتر بان تجعل طريق الادخال كما فى المواقع
مثل التاريخ عند السداد بالبطاقات البنكية وما شبه
فى النهاية هو ما الا شكل
والشكل يرجع لطريقة تصميم الفوم لديك
تحياتى لك
وتمنياتى لك التوفيق
كفيت ووفيت أخي الغالي .. الله يسترك فوق الأرض بالحياة الدنيا و بباطنها بعد عمر طويل إن شاء الله
أنا أستعمل هذه الكيفية .. فقط لو يكرمت .. بإضافة أداة MaskedTextBox .. لأنّي بكل صراحة لم أجرب إستعمالها إطلاقا حتى أنّي نسيت اسمها و بأنّها موجودة .. بالكومبو 1 و الكومبو 2 .. قد تلاحظ أنّني قمت بإضافة العدد 00 .. فقط لأنّه بسجلات الميلاد الحكومية الرسمية يوجد من الأشخاص من يكتب بتاريخ شهادة ميلادهم : مولود خلال 1998 .. لما يولد الشخص ولا يتم تسجيله رسميا إلا بعد سنوات .. فيكون تاريخ ميلاده بالوثائق الرسمية بهذا الشكل .. 1998/00/00 .. تحياتي
مرفق السورس + برنامج لاختبار
المثال المرفق يوضح التعامل مع التاريخ فعلى
ولكن فى حالة انك تريد تسجيل التاريخ بيوم 0 و شهر 0
ولا اعلم كيف قانوني يتم ذلك لان جميع الدول يجبر على تحديد يوم وشهر
حتى ولو هيكون 1/7 حيث يوم 1 وشهر 7 وهو لنصف العام او 1/1 وهو لبداية العام
ولكن بما ان التسجيل لديك عبارة عن 0/0
فهنا يجب ان يكون نوع العمود بقاعدة البيانات نص وليس تاريخ
لان لن يقبل يوم 0 و شهر 0 مهما حصل
وبما ان نوع العمود نص فيمكنك تسجيل التاريخ على شكل موحد
وثابت فى الادخال لتتمكن من البحث عليه فى الاستعلام بنفس نمط الشكل
صورة البرنامج
تحياتى لك
وتمنياتى لك التوفيق
السّلام عليكم و رحمة الله و بركاته
أحسن الله إليك أخي الغالي مثلما أحسنت إليّ بعذا العمل الرّائع فعلا و بكل صدق
سأتمعن به غدا إن شاء الله .. فقط أشير إلى أنّك نبّهتني فعلا للأصفار و انّ التاريخ لا بدّ أن يكون من نوع نصّي و ليس تاريخ
قضيّة الأصفار أخي ELGOKR .. معمول بها رسميا في الوثائق الحكومية .. و أنا عملتها إحتياطيا فقط .. لأنّ بهذا الجيل من النادر أن تجد تلميذ بهكذا نوع من التاريخ .. فكل التواريخ التي ذكرتها ( 2000/00/00 ) بهذه الصيغة .. غالبا ما نجدها لدى الأشخاص المسنّين المولودين خلال الفترة الإستعمارية حيث لا تسجيل ولا تاريخ ميلاد صحيح ولا هم يحزنون .. و من النادر جدا ربما نسبة 1 /5000 نجدها بالجيل الحالي .. كالغَجَر مثلا ..
فعلا أخي الحبيب مثال شامل و كامل و الكمال لله .. رزقك الله براحة البال و سعة الرزق و طول العمر مثلما رزقتني بهذه الهدية الرائعة
تحياتي و إحتراماتي
لدي اقتراح قد يساعدك اخي العزيز في سؤالك يمكنك اختيار تكست بوكس عادي واحد فقط بدلا من داتاتايم بيكر او الكومبوبوكس ولكن يجب عليك ان تضع كود فحص التاريخ في التكست بوكس اذا كان تاريخا او ليس تاريخ ان لم يكن تاريخ يجب كتابة التاريخ بالصيغة الصحيحة فمثلا هنالك شهور 30 يوم وشهور 31 وشهر شباط قد يكون 28 او 29 قبل الحفظ اكتب على اعتبار التكست بوكس الخاص بالتاريخ هو textbox1
if textbox1.text=nothing then
Else
If isdate(textbox1.text) then
Else msgbox("صيغة التاريخ خطأ")
Exit sub
End if
End if
اعتذر ان كانت هنالك اخطاء بالكود فانا اكتب من خلال الموبايل