منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : تحويل التاريخ الميلادي الى هجري داخل الداتا جريد من قاعدة بيانات اكسس
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
Wink 

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

كل عام وانتم بخير

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

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

بالميلادي 

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

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

وكل عام وانتم بخير

[attachment=15239]
وعليكم السلام ورحمة الله وبركاته

كل عام وانت بصحة وسلامة , جزاء الله خير الجزاء

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

وصيغة التاريخ في جهازي هجري وفي قاعدة البيانات الصيغة هجري
لكن عند إضافة البيانات تحفظ بصيغة وقيمة خاطئة

صورة للتوضيح



وهذا الكود المستخدم

كود :
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
لكن لم أستطع تطبيق الكود في مشروعي

ممكن  توضح لي استاذ محمود جملة الانسيرت هنا
 Huh > صابني تشنج بالمخ Undecided



فهمت جملة الإنسيرت

لانه لا يوجد لدينا إلا عمود واحد لم تضع إسم العمود

جربت اسوي عمود ثاني واسميه saud

واجعل جملة الإنسيرت بهذا الشكل

كود :
.CommandText = "insert into tb1 (saud) values('" & DateTimePicker1.Value.ToShortDateString & "')"

وتمت الكتابة في عمود saud

كل الشكر لكل من شارك في الموضوع أستفدت من الكثير
 Shy
(26-08-17, 08:51 PM)سعود الشامان كتب : [ -> ]هلا وغلا ابو نوره للأسف ما اشتغل معي الكود ( لم تضاف البيانات )

انا مطلوب مني برنامج عياده
إرسال رسائل نصيه للمراجعين , وتذكيره بقرب الموعد
بالنسبة عند إختلاف التاريخ يمشي المراجع على اليوم ( الأحد أو الاثنين ...)

لكن تبقى الإشكالية عند التذكير بالموعد ( يجب أن تصل المراجع رسالة ) محتواها ( لديك موعد بعد يومين ,, يوم كذا , تاريخ كذا , الساعه كذا ) هل سيتم احتساب التاريخ الهجري بشكل صحيح ؟!

متحير في الموضوع لي اسبوع

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

ممكن  توضح لي استاذ محمود جملة الانسيرت هنا
 Huh > صابني تشنج بالمخ Undecided  

اخي سعود حياك الله
الموضوع ان كلمة القيم (values)هى معيارية ان تضع فى كامل الاعمدة حسب ترتيب القيم بين الاقواس والتى هنا لدي عمود واحد و قيمة مدخلة واحدة بين الاقواس وهي قيمة الديت تيم بيكر (date time picker1) 
ولاكن لكي تضيف فى قاعدة البيانات بشكل صحيح وتقبله القاعدة اكسس على انه تاريخ صحيح يجب ان يكون التاريخ بالميلادي حتى وان ظهر لك بالهجري تبعا للويندوز
وهنا ياتي دور تثبيت الثقافة (en-us) فى حدث اللود للفورم الرئيسي حتي يتم التعامل بالتاريخ الميلادي الموافق للتاريخ الهجري داخل قاعدة البيانات وعندما يعرض لك التاريخ يقوم الفيجول باحضاره من القاعدة على انه ميلادي ومفهوم لديه انه تاريخ صحيح ويعرضه فى اداة التيم بيكر طبقا لثقافة الويندوز بالتاريخ الموافق له
يعني السر ان يسجل التاريخ بالميلادي داخل القاعدة ويتم ذلك من استدعء الثقافة (en-us) فى بداية التحميل للفورم
وكود ذلك كالاتيى
اولا استداء المكتبة

PHP كود :
Imports System.Threading 
ثانيا الكود فى حدث التحميل

PHP كود :
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US"
ولك خالص الشكر
الصفحات : 1 2 3