تقييم الموضوع :
  • 1 أصوات - بمعدل 2
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] استتعلام بين تاريخين فى السكوال
#1
السلام عليكم ورحمة الله وبركاتة

تحية غالية لاعضاء ومشرفى المنتدى الكرام

لدى برنامج مصمم على فيجوال بيسك 6 و قاعدة بيانات اكسس 2003

وقمت بالانتقال الى سكوال سرفر 2008 R2

يوجد لدي فورم للاستعلام عن بين تاريخين

الكود كالتالى

Dim from As Date
from = Format(Order_Datea, "mm/dd/yyyy")
Too = Format(Order_Dateb, "mm/dd/yyyy")
SQLS = "SELECT * transmaste where NoteDate BETWEEN #" & CDate(from) & "# AND #" & CDate(Too) & "#


يعمل جيد على قاعدة البيانات اكسس

ولا يعمل على السكوال وبعترض على الرمز #

ارجوا التوضيح جزاكم الله خير

تحياتى
الرد }}}
تم الشكر بواسطة:
#2
السلام عليكم...

العلامات # خاصة بـ Access. استعمل علامات التنصيص أو الاقتباس الفردية (single quotation).

سلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
تم الشكر بواسطة: ahmedabdelaliem
#3
اشكرك استاذى

فعلا قد توصلت لحل المشكلة

تحياتى ليك
الرد }}}
تم الشكر بواسطة:
#4
السلام عليكم
استاذ / ناجى تحية طيبة

لو تفتكر حضرتك هذه المشكلة ..... تم استبدال علامة # بعلامة التنصيص

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

   

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

وعند تغير نوع عرض التاريخ من الكنترول بانال للويندوز يعمل التقرير

هل هناك اخيار فى السكوال لتغير عرض التاريخ من اليمين الى اليسار 1/1/2014

وليس 2014/1/1

ام هناك مشكلة لى الكود ؟

كود البحث هو

Dim from As Date
from = Format(Order_Datea, "mm/dd/yyyy")
Too = Format(Order_Dateb, "mm/dd/yyyy")
SQLs = "select * from TransMaster WHERE TransMaster.NoteDate BETWEEN '" & CDate(from) & "' AND '" & CDate(Too) & "' "


تظهر رسالة الخطأ التالية

   

اسف للاطالة

تحياتى
الرد }}}
تم الشكر بواسطة:
#5
للرفع
الرد }}}
تم الشكر بواسطة:
#6
السلام عليكم....

نعم عانيت من هذه المشكلة - خاصة مع اختلاف إعدادات التاريخ من جهاز إلى آخر، و لكنني حللتها منذ زمن بعد مراجعة وثائق SQL Server و كيفية تعامله مع التاريخ، ثم كتبت دوال لهذا الغرض بحيث يصل التاريخ إلى SQL Server و يتعامل معه بشكل ثابت بصرف النظر عن إعدادات التاريخ في الجهاز.

ما يهمنا هنا إذا كنت ستتعامل مع قيمة التاريخ فقط في الحقل (دون اعتبار الوقت)، فاكتب الدالة التالية في Module:

كود :
Public Function SQLWhereDate(AField As String, ADate As Date, Optional AOperator As String = "=", Optional ADate2 As Date = #12/31/9999#) As String
    If AOperator = "><" Then
        ' BETWEEN:
        SQLWhereDate = "(CONVERT(datetime, CONVERT(nvarchar(10), " & AField & ", 103), 103) BETWEEN " _
                     & "CONVERT(datetime, '" & Format$(ADate, "dd/mm/yyyy") & "', 103)" _
                     & " AND CONVERT(datetime, '" & Format$(ADate2, "dd/mm/yyyy") & "', 103))"
    Else
        ' Other operators:
        SQLWhereDate = "(CONVERT(datetime, CONVERT(nvarchar(10), " & AField & ", 103), 103) " & AOperator _
                     & " CONVERT(datetime, '" & Format$(ADate, "dd/mm/yyyy") & "', 103))"
    End If
End Function

حيث:
- AField: اسم حقل التاريخ (String).
- ADate: قيمة التاريخ الذي تبحث عنه (Date). و إذا كنت تريد البحث عن نطاق من التواريخ فهذا يمثل تاريخ البداية.
- AOperator: عامل المقارنة (String) و هو اختياري، أي يمكنك إهماله حيث قيمته الافتراضية هي "=". العوامل المسموح بها هي عوامل المقارنة المعروفة بالإضافة إلى الرمزين "><" بهذا الشكل لاستعمال عبارة BETWEEN في جملة SELECT.
- ADate2: تاريخ النهاية (Date) و هو أيضاً اختياري، أي يمكنك إهماله. طبعاً ستحتاج إلى استعماله في حالة استعمال BETWEEN لتحديد تاريخ النهاية.

* مثال:
نفرض أن تاريخ البداية في Text1 و تارخ النهاية في Text2 و نريد البحث عن نطاق بين التاريخين:

كود :
SQLS = "SELECT * FROM TransMaster WHERE " & SQLWhereDate("NoteDate", CDate(Text1.Text), "><", CDate(Text2.Text))

*** النقطة المهمة في الموضوع هي كيفية تحويل الـ VB للـ String إلى Date (سواء كتحويل ضمني أو باستعمال CDate). حيث VB دائماً تأخذ بعين الاعتبار تنسيق التاريخ في النظام Windows حسب الإعدادات الإقليمية في لوحة التحكم. و هذا منطقي لأن عرض و معالجة التاريخ من المفترض أن يخضع لرغبة المستخدم و تفضيلاته حسب البلد الذي هو فيه.

هذا يعني أن ترتيب - أو شكل - التاريخ في مربعات النص (مثلاً اليوم أولاً أو الشهر أولاً) يجب أن يتفق مع إعدادات التاريخ في النظام.

نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
تم الشكر بواسطة: ahmedabdelaliem
#7
وعليكم بالسلام ورحمة الله وبركاته

يعطيك العافيه استاذ ناجي استاذ الزمن الجميل ربنا يديم المحبه

تحياتي لك مع دوام التوفيق
الرد }}}
تم الشكر بواسطة:
#8
السلام عليكم...

إي و الله! هنالك أسماء لا يمكن أن ننساها - و منها بالتأكيد "أحمد عبد العليم" (ahmedabdelaliem) من أيام المنتدى القديم.

أين أنت با رجل؟ مشاركاتك قليلة (كنت من مدة أسأل نفسي هذا السؤال).

أرجو أن تكون بخير، و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
تم الشكر بواسطة: ahmedabdelaliem
#9
وعليكم بالسلام ورحمة الله وبركاته

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

تحياتي لكSmile
الرد }}}
تم الشكر بواسطة:
#10
السلام عليكم ورحمة الله وبركاتة

كالعادة استاذ ناجى ...

متألق ومبدع فى اجاباتك ( ماشاء الله ) حقا ثروة كبيرة فى علمك للمنتدى

تحياتى ليك استاذى ..

و احب اشكرك مرة اخى لانك كنت سبب فى ظهور الاستاذ / أحمد عبد الحليم

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

وكان سباق فى الرد لكل سائل

اسال الله دوام الصحة والعافية له

...............................................................................................................

جربت المديول استاذى والامر تمام

ولكن

كيف استخدم معيار للفلتر اخر مع التاريخ ؟ حاولت اضافة متغير تانى ولكن لم استطيع

هذا هو الكود فى مثالك

SQLs = "SELECT * FROM TransMaster WHERE " & SQLWhereDate("NoteDate", CDate(Order_Datea.text), "><", CDate(Order_Dateb.text))

اريد اضافة المعيار التالى

and TransMaster.VENDORID = '" & Text1.text & "'

والتالى

and TransMasterDetails.whid between " & storea.text & " and " & storeb.text & "




اكرر شكرى لك وتحياتى لاستاذنا أحمد بك

تحياتى
الرد }}}
تم الشكر بواسطة: ahmedabdelaliem


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  التحقق مما إذا كان التاريخ بين تاريخين آخرين dr.mostashar 1 1,188 12-08-20, 05:01 AM
آخر رد: بلدي
  البحث بين تاريخين mohfar 13 5,807 25-07-20, 11:08 PM
آخر رد: مصمم هاوي
  موضوع الاستعلام بين تاريخين - مكرر hannileo 1 1,259 05-02-20, 02:23 AM
آخر رد: Ahmed_Mansoor
  [vb6.0] المساعدة في طباعة تقرير بين تاريخين وادي العوضي 3 1,650 17-10-19, 12:18 PM
آخر رد: وادي العوضي
  [vb6.0] طريقة البحث بين تاريخين ahmedalrawad 3 2,203 10-09-18, 12:07 AM
آخر رد: جاسم عبد
  [vb6.0] ممكن المساعدة في اضافة الايام بين تاريخين في الفيلكس قريد mustafa mohamed 0 1,244 12-04-18, 04:30 PM
آخر رد: mustafa mohamed
  [vb6.0] سؤال عن كود عدد الايام بين تاريخين محمد حمد محمد 2 1,804 18-01-18, 01:51 AM
آخر رد: محمد حمد محمد
  البحث بين تاريخين مصمم هاوي 5 2,589 06-06-17, 03:21 AM
آخر رد: Amir_Alzubidy
  البحث بين تاريخين SQL 2008 +vb6 أبو عقيل 4 2,127 05-05-17, 08:57 AM
آخر رد: Ahmed_Mansoor
  [سؤال] اضافة combo لمجموعة البحث وعمل بحث بين تاريخين كنونو 6 3,108 26-11-16, 09:12 PM
آخر رد: Amir_Alzubidy

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم