السلام عليكم ورحمة الله وبركاته
كل عام وانتم بخير
بالمرفق مثال تحويل التاريخ الميلادي الى هجري داخل الداتا جريد من قاعدة بيانات اكسس
حيث ان قواعد بيانات اكسس لا تتعامل مع التاريخ الهجري فمن الافضل ان يخزن بالميلادي وتتم عليه جميع العمليات
بالميلادي
ولاكن اذا اردنا عرضها بالهجري نحتاج الى دالة للتحويل يمكن استخدامها باكثر من صورة
وهنا اخترت ان استخدمها مع الداتا جريد وهو مثال بسيط بالمرفق
وكل عام وانتم بخير
وعليكم السلام ورحمة الله وبركاته
كل عام وانت بصحة وسلامة , جزاء الله خير الجزاء
لدي معركة مع التاريخ , حيث أن تعاملنا ف السعودية مع التاريخ بالهجري
وصيغة التاريخ في جهازي هجري وفي قاعدة البيانات الصيغة هجري
لكن عند إضافة البيانات تحفظ بصيغة وقيمة خاطئة
صورة للتوضيح
وهذا الكود المستخدم
كود :
Dim cmd As New OleDbCommand(String.Format("insert into Patient_data (Pa_Name, Pa_Age, Pa_Phone, number_file, Data_mo3d) values ('{0}','{1}','{2}','{3}',#{4}# )", TextBox2.Text, TextBox6.Text, TextBox5.Text, TextBox3.Text, DateTimePicker1.Value.ToString("yyyy/MM/dd")))
يا هلا بالاشقاء الاخ سعود جرب المرفق لمثالى بعد التعديل والمفترض انه يعمل لديك بصورة سليمة حيث النسخة لدي en فلم اجربها عندي وان شاء الله تفيدك وتكون حل لمشكلتك
رجاء لاحظ الفروق بين المرفق والسابق
[
attachment=15241]
وأنتم أشقائنا وأستاذتنا أدام الله الموده والمحبيه بيننا
أستاذ محمود للأسف لم تفتح معي الأمثله
هل هو بسبب إصدار NET Framework ؟
أدام الله المحبة اخي مسعود بين جميع الاشقاء العرب ووحد كلمتنا
نعم اخي مسعود واضح ان المشكلة فى اصدار الفريم ورك لديك
ان لم يعمل يمكنك فتح مشروع جديد ثم اضافة فورم من ملف موجود ثم اضافة الفورم من الامثلة او يمكنك فتح ملف الكود من خلال notpad++
بالتوفيق
للمعلومية اخي نزلت المثال وجربته يعطي التاريخ الهجري في الحالتين .
مرحبا اخى سعود
جرب هذا التعديل
ممكن تلاقي التاريخ في الاكسس بالميلادي فهذا طبيعي هو حيتحول لوحده في الفورم
PHP كود :
Dim cmd As New OleDbCommand("insert into Patient_data (Pa_Name, Pa_Age, Pa_Phone, number_file, Data_mo3d) values (@name, @age, @phone, @nfile, @dt)", con)
cmd.Parameters.AddWithValue("@name", TextBox2.Text)
cmd.Parameters.AddWithValue("@age", TextBox6.Text)
cmd.Parameters.AddWithValue("@phone", TextBox5.Text)
cmd.Parameters.AddWithValue("@nfile", TextBox3.Text)
cmd.Parameters.AddWithValue("@dt", DateTimePicker1.Value.Date)
ملاحظه
الهجري اللي في الاكسس خاص باللي يبرمجو داخل الاكسس بدون فجوال ومالوش علاقه بالهجري اللي الفجوال
يعني ممكن تلاقي اختلاف يوم او يومين
تجاهل الهجري اللي الاكس لانه ما يعتمد على تقويم ام القرى يللي في السعوديه
ولو تتركه بالميلادي مثل ما كان يكون افضل
والفجوال بياخذ التاريخ من الويندوز حسب ما هو محدد
(26-08-17, 06:01 PM)حريف برمجة كتب : [ -> ]للمعلومية اخي نزلت المثال وجربته يعطي التاريخ الهجري في الحالتين .
لان تنسيق الويندوز لديك بالعربي فى الاصل ولاكن هل التاريخين معا فى زر الهجري بالهجري ام واحد هجري والاخر ميلادي فى المثال الثاني التعديل
جرب واخبرني اخي حريف
ولاكن للمعلومة ايضا التاريخ مسجل فى القاعدة الميلادي فان ظهر معاك هجري فهذا هو الغرض من المثال ولاكن تعامل انت مع التعديل فى المثال الثاني فهو للنسخ العربية
هلا وغلا ابو نوره للأسف ما اشتغل معي الكود ( لم تضاف البيانات )
انا مطلوب مني برنامج عياده
إرسال رسائل نصيه للمراجعين , وتذكيره بقرب الموعد
بالنسبة عند إختلاف التاريخ يمشي المراجع على اليوم ( الأحد أو الاثنين ...)
لكن تبقى الإشكالية عند التذكير بالموعد ( يجب أن تصل المراجع رسالة ) محتواها ( لديك موعد بعد يومين ,, يوم كذا , تاريخ كذا , الساعه كذا ) هل سيتم احتساب التاريخ الهجري بشكل صحيح ؟!
متحير في الموضوع لي اسبوع
بالنسبة لمثال الغالي محمود بكرى استطعت الحصول على الاكواد وقمت بعمل مشروع جيد وتمت الإضافة بالتاريخ الهجري والوضع ok
لكن لم أستطع تطبيق الكود في مشروعي
ممكن توضح لي استاذ محمود جملة الانسيرت هنا

> صابني تشنج بالمخ
فهمت جملة الإنسيرت
لانه لا يوجد لدينا إلا عمود واحد لم تضع إسم العمود
جربت اسوي عمود ثاني واسميه saud
واجعل جملة الإنسيرت بهذا الشكل
كود :
.CommandText = "insert into tb1 (saud) values('" & DateTimePicker1.Value.ToShortDateString & "')"
وتمت الكتابة في عمود saud
كل الشكر لكل من شارك في الموضوع أستفدت من الكثير

(26-08-17, 08:51 PM)سعود الشامان كتب : [ -> ]هلا وغلا ابو نوره للأسف ما اشتغل معي الكود ( لم تضاف البيانات )
انا مطلوب مني برنامج عياده
إرسال رسائل نصيه للمراجعين , وتذكيره بقرب الموعد
بالنسبة عند إختلاف التاريخ يمشي المراجع على اليوم ( الأحد أو الاثنين ...)
لكن تبقى الإشكالية عند التذكير بالموعد ( يجب أن تصل المراجع رسالة ) محتواها ( لديك موعد بعد يومين ,, يوم كذا , تاريخ كذا , الساعه كذا ) هل سيتم احتساب التاريخ الهجري بشكل صحيح ؟!
متحير في الموضوع لي اسبوع
بالنسبة لمثال الغالي محمود بكرى استطعت الحصول على الاكواد وقمت بعمل مشروع جيد وتمت الإضافة بالتاريخ الهجري والوضع ok
لكن لم أستطع تطبيق الكود في مشروعي
ممكن توضح لي استاذ محمود جملة الانسيرت هنا
> صابني تشنج بالمخ
اخي سعود حياك الله
الموضوع ان كلمة القيم (values)هى معيارية ان تضع فى كامل الاعمدة حسب ترتيب القيم بين الاقواس والتى هنا لدي عمود واحد و قيمة مدخلة واحدة بين الاقواس وهي قيمة الديت تيم بيكر (date time picker1)
ولاكن لكي تضيف فى قاعدة البيانات بشكل صحيح وتقبله القاعدة اكسس على انه تاريخ صحيح يجب ان يكون التاريخ بالميلادي حتى وان ظهر لك بالهجري تبعا للويندوز
وهنا ياتي دور تثبيت الثقافة (en-us) فى حدث اللود للفورم الرئيسي حتي يتم التعامل بالتاريخ الميلادي الموافق للتاريخ الهجري داخل قاعدة البيانات وعندما يعرض لك التاريخ يقوم الفيجول باحضاره من القاعدة على انه ميلادي ومفهوم لديه انه تاريخ صحيح ويعرضه فى اداة التيم بيكر طبقا لثقافة الويندوز بالتاريخ الموافق له
يعني السر ان يسجل التاريخ بالميلادي داخل القاعدة ويتم ذلك من استدعء الثقافة (en-us) فى بداية التحميل للفورم
وكود ذلك كالاتيى
اولا استداء المكتبة
ثانيا الكود فى حدث التحميل
PHP كود :
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US")
ولك خالص الشكر