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

التاريخ العجيب

مغلق
بدأه العقده في 17 يوليو 2007 · 15 رد · 1,693 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني ما ادري مرت المشكله هذي على احد قبل كذه ولا لا

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

الغريب انه عندما تجعل تاريخ الكمبيوتر 15/7/2007 يتم اضافة التاريخ في قاعدة البيانات بهذا الشكل2007/07/15 ولو اخرت التاريخ يوم واحد وعملت اضافة يتم تخزينها ايضا بهذا الشكل 2007/07/14 لكن لو صلت لتاريخ 12 يتم اضافته بهذا الشكل 2007/11/07 يتم وضع الشهر بمكان اليوم بس حين يتم ادراج الايام 11 و 12 و 10 اما لو اضافة 9 او ما هو فوق 11 يصبح بهذا الشكل 2007/07/19 وش السر في كذه صراحه انا متحير ليه بس 12 و 11 التي يتم شقلبتها بهذا الشكل 2007/11/07 :wacko:

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

DateTest.zip

post-62640-1184623613_thumb.jpg

post-62640-1184623694_thumb.jpg

تم تعديل هذه المشاركة بواسطة العقده في 17 يوليو 2007 في 01:08

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#2

آه معليش نسيت اذكر السبب .. ستكون هناك مشكله بالبحث بين الفترات يعني لو استخدمت Between لاستخراج السجلات التي تم تسجيله بين فترتين زمنيتين سيتم اظهار بعضها والبعض لا يظهر بسبب ان تسجيل التاريخ اصبح له شكلين مختلفين .

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#3

ده قسم الـ Classic VB و ليس الأكسس !

عموما حاول تعمل Format الول للشكل اللى يريحك.

#4

الاخ : msayed2004

اقتباس
ده قسم الـ Classic VB و ليس الأكسس !

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

اقتباس
عموما حاول تعمل Format الول للشكل اللى يريحك.

الحل هذا ايضا لم ينفع لان قاعدة البيانات تفرض تغيير الشكل في حالة تم ادخال بيانات تاريخ ليوم 11 او 12 .. ولهذا السبب أحببت مشاركتكم به .. فلو جربت المثال المرفق لاتضحة لك المسأله اكثر .

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#5

التاريخ لدي يعطي صح لكن الأوفيس عربي ثم التاريخ في لوحة التحكم yyyyy/mm/dd

تم تعديل هذه المشاركة بواسطة أبو زيد في 17 يوليو 2007 في 12:23

#6

الاخ أبو زيد الله يعطيك العافيه لقد اصبحت قاعدة البيانات تتعامل مع التاريخ بشكل سليم بعد تغيير شكل التاريخ في لوحة التحكم yyyyy/mm/dd كما أوضح سعادتكم .

المشكله انعكست واصبح البرنامج الـ VB يقوم بعملية العكس وبالتالي احصل على خطأ بسبب التاريخ اثناء تطبيق هذه العملية انظروا الصورة المرفقه :

post-62640-1184667162_thumb.jpg

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#7
بدل هذا :
Cn.Execute "insert into Mydate (Sname,PDate) Values('" & Text1 & "',#" & Date & "#" & ")"
بهذا :
Cn.Execute "insert into Mydate (Sname,PDate) Values('" & Text1 & "',#" & Format(Date, "mm/dd/yyyy") & "#)"

مع أني أنصحك أن تبدل طريقة إدخال البيانات بطريقة أخرى

أما التاريخ فأحسن طريقة للتعامل معه في البحث والترتيب والتصفية هو تحويله إلى رقم طويل

#8

سبب ردى الأساسى أنهم فى قسم الأكسس هيفيدوك أكتر.

فى حل عبيط و هو انك تحول الحقل من نوع تاريخ الى String و تعمل Format للتاريخ , لكن برده ممكن يكون فى حل أفضل بقسم الأكسس.

#9

الاخ : Accessna

اقتباس
أما التاريخ فأحسن طريقة للتعامل معه في البحث والترتيب والتصفية هو تحويله إلى رقم طويل

صحيح كلامك وسبق وان استخدمت هذا الاسلوب بالنسبة للتاريخ فتحويله لرقم سيصبح دقيق جدا في التعامل معه بالمقارنه والفتره ومن والى .. لكن اللغز الغريب في ان يوم 12 و 11 من شهر 7 لسنة 2007 ميلادي فقط هما ما يقومان بتغيير تنسيق التاريخ ما السبب في 12 و 11 وهل هذا عيب مكتشف الان صدقوني من جرب الكود سيكون امام لغز غريب

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

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#10

وهذا Function عملته خاص لتحويل التاريخ الميلادي أو التاريخ الهجري لرقم طويل ليتم التعامل معه بدون وجع راس ومفاجآت التاريخ الغريبه :

Private Sub Form_Load()
 MsgBox Convert_Date_To_Number(Date, False)   ' تحويل التاريخ الميلادي لرقم طويل
  MsgBox Convert_Date_To_Number(Date, True)   ' تحويل التاريخ الهجري لرقم طويل
End Sub


Public Function Convert_Date_To_Number(TheDate As Date, CalendarMod As Boolean) As Long
Dim Date_Arry As Variant
	Calendar = vbCalGreg
If CalendarMod = True Then Calendar = vbCalHijri

	Date_Arry = Split(Format(TheDate, "dd/mm/yyyy"), "/")
	Convert_Date_To_Number = Val(Date_Arry(2) & Date_Arry(1) & Date_Arry(0))
End Function

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#11

لقد صادفتني نفس المشكلة أخي العقدة من قبل و لم أجد لها حل حتى الآن

أمر غريب و محير فعلاً .

مواضيع و دروس
الكتابة بعدة ألوان داخل الــ TetxBoxمكتبة الأكوادتحميل الــ Visual Basic Express 2005
تحميل فيجوال بسيك 6أكواد × أكواددروس في الخوارزميات
لتحميل عدة إصدارات من كريستال ريبورتتحميل برنامج Activ Skin 4.3جمل الــ Sql من الألف إلى الياء
معظم المواقع المختصة بالفيجوال بيسيكموقع كويس للأيقوناتمرجع شامل لأدوات ActivX
كيفية نطق الحرف المكتوب شرح عن كيفية إقامة علاقة مع Data Reprot باستخدام الــ DataEnvironment علاقة مع الـ Datareport بدون استخدام DataEnvironment (( شرح ))
كتاب Migrating From DAO to ADOإضافة لـ VB6 بريمج IndenterVB, إضافة لبيئة تطوير فيجوال بيسك 6حوار بينى و بين عضو حول ال winsock , اتمنى ان يعجبكم
Smart Indenter 3.5 لتنسيق الأكواد, هديه لكل الأعضاء السلسلة الدهبية في المواضيع العلمية ، إستغلال الـ Balloons في الـ Windows XP مصفوفات الأدوات Control Arrays افكار وتلميحات ! , لمن افتقدها من أيام الـ VB6.0
جعل خلفية الـ Mid Form تظهر بالكامل خواص الاداة Winsock لربط الاجهزة عن طريق الانترنتكيف يتم عمل تقارير بإستخدام HTML

7.gif
#12
العقده كتب:
.. لكن اللغز الغريب في ان يوم 12 و 11 من شهر 7 لسنة 2007 ميلادي فقط هما ما يقومان بتغيير تنسيق التاريخ ما السبب في 12 و 11 وهل هذا عيب مكتشف الان صدقوني من جرب الكود سيكون امام لغز غريب

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

ليس يومي 12 و 11 فقط ، هي تحدث للأيام التي لا تزيد عن قيمة الشهر القصوى وهي 12

يعني المشكلة تحدث للأيام من 1 إلى 12

فهو يعتمد التنسيق "mm/dd/yyyy" أي أن أول خانتين من اليسار للشهر ولكن إذا زاد عن 12 فهو من الذكاء أن يبدل بين الشهر واليوم

يعني طالما اليوم أقل من 13 فهو سيعتمد ذلك التنسيق أما إذا زاد فسيقوم بالتبديل

طبعا هذه المشكلة أنا أعلم بها منذ فترة طويلة ولكن بعد تغيير تنسيق التاريخ القصير من الإعدادات الإقليمية إلى التنسيق "dd/mm/yyyy" فالمشكلة تحل

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

عموما الحل غير المنطقي الذي اقترحته أنا قد عمل بشكل سليم وجربته قبل وضعه له فهلا جربته ورجعت لنا بالنتائج

تم تعديل هذه المشاركة بواسطة Accessna في 17 يوليو 2007 في 20:39

#13

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

ومنطقيا التاريخ هو عبارة عن أرقام الذي دخل عليها لتمييزها هي العلامه "/" لتبيين اليوم والشهر والسنه ففي حالة تحويلها لارقام سيتم التعامل معها بشكل ادق وبعيد عن اي مشاكل تتعلق بالتعامل مع نظام التشغيل او الاعدادات الاقليميه الخاصه بالتاريخ او نظام قاعدة البيانات في تخزين التواريخ .

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#14
Accessna كتب:
Cn.Execute "insert into Mydate (Sname,PDate) Values('" & Text1 & "',#" & Format(Date, "mm/dd/yyyy") & "#)"

أنا قصدت هذا الاقتراح

#15

آه .. معليش المشكله هذي استهلكة عندي الاستوعاب عموما نعم جربة الطريقه هذي ولكن يتم تغييرها في قاعدة البيانات رغم تغيير فورمات التاريخ المشكله هذي زي الزئبق تجيها يمين تجك يسار تجيها يسار تجيك يمين .. ولكن حل التعامل مع التاريخ بحقل رقمي تخزن به بيانات تاريخ بشكل رقم انا استخدمها اصلا حتى مع قواعد بيانات اوراكل في التطبيقات الكبيره وذلك كان بسبب توافقية التواريخ بين الميلادي والهجري بالنسبة للاوراكل فقد استخدمت الاسلوب الرقمي للتاريخ وكل شي تمام .. ولكن صادف الان في المشروع الصغير هذا انني عندما واجهت هذا العيب الكبير في التعامل مع التاريخ أحببت ان اعرضه لكي نتشارك في وضعه وقد يكون احد الاعضاء قد واجه مثل هذه المشكله من السابق مثل الاخ : COMFORT

الحل موجود كما ذكرت با ستخدام الحقل الرقمي لكن كنا نرغب بمعرفة سبب المشكله وهل نستغني عن استخدام البحث عن حقل تاريخي بالاعتماد على حقل رقمي يدل على بيانات تاريخه رقميه :unsure: :unsure: -_-

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#16

السلام عليكم

هل من جديد في هذا الموضع اكتشفت اخيرا انها واجهتني المشكله تماما

الادخال انا اعتمد على الداله

now

كيف احول الي رقم طويل لم افهم المثال السابق

وكيف لو اريد ان ابحث عن تاريخ معين

اتمني التعديل في المثال المرفق كيف التحويل الي رقم طويل وكيف الاستعلام عن اصغر تاريخ مثلا

خواتم مباركه على الجميع

____.rar

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

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

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

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

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

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