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

كيف اتعامل مع حقل من النوع Date في جملة Select

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

أخواني أعضاء منتدى الفريق العربي الأعزاء

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

حاولت مرارا أن اصل للطريقة التي اتعامل بها مع حقل من النوع date

بحيث يكون الشرط كالتالي مثلا

where date = emp_date

وأيضا في حالة تحديد التاريخ كأن أكتب مثلا

where date = 22/12/2000

فكيف هي الطريقة لكتابة الكود بهذا الشكل للتعامل مع الحقل من النوع date

#2

السلام عليكم...

أولاً: لي ملاحظة بسيطة، و هي أنه عند الحديث عن قواعد البيانات يستحسن ذكر محرك قواعد البيانات المستخدم، مثلاً Access أو SQL Server، ... إلخ. لأنه قد توجد بعض الاختلافات في الصيغ المستعملة.

على أية حال... حسب علمي فإن جميع محركات قواعد البيانات تتعامل داخلياً مع التواريخ بالصيغة الأمريكية، حيث يكون الشهر قبل اليوم، أي mm/dd/yyyy و عليه فيجب إرسال التاريخ (في جملة SELECT و أخواتها) بهذه الصيغة.

أ. أمثلة في حالة Access:

1. باستخدام متغير من النوع Date:

Dim SQLStr As String
Dim MyDate As Date
MyDate = CDate(Text1.Text)
SQLStr = "SELECT * FROM Employees WHERE (EmpDate = #" & Format(MyDate, "mm/dd/yyyy") & "#)"

* لاحظ أننا نحصر قيمة التاريخ بين زوج من هذه العلامة # .

طبعاً جملة SELECT المخزنة في المتغير SQLStr يمكن بعد ذلك استخدامها لفتح مجموعة سجلات (Recordset object) أو إسنادها إلى الخاصية RecordSource لعنصر Adodc:

RS.Open SQLStr, Cnn, adOpenStatic, adLockOptimistic, adCmdText
'	RS: name of recordset object.
'	Cnn: opened connection object (ADODB.Connection) or a connection string.
'	adOpenStatic, adLockOptimistic: can be changed as required >> see VB help.
'	adCmdText: يشير إلى أن مجموعة السجلات عبارة عن استعلام و ليس اسم جدول
' أو
Adodc1.RecordSource = SQLStr	' CommandType property must be set to adCmdText
Adodc1.Refresh

2. بقراءة قيمة التاريخ من عنصر DateTimePicker:

Dim SQLStr As String
SQLStr = "SELECT * FROM Employees WHERE (EmpDate = #" & Format(DateTimePicker1.Value, "mm/dd/yyyy") & "#)"

3. باستخدام قيمة ثابتة:

Dim SQLStr As String
SQLStr = "SELECT * FROM Employees WHERE (EmpDate = #12/22/2000#)"

ب. أمثلة في حالة SQL Server:

يمكنك استعمال نفس الطريقة مع استعمال علامات اقتباس فردية (single quotation marks) بدل العلامات # ، مثلاً:

Dim SQLStr As String
SQLStr = "SELECT * FROM Employees WHERE (EmpDate = '" & Format(DateTimePicker1.Value, "mm/dd/yyyy") & "')"

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

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