تقييم الموضوع :
  • 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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] اضافة combo لمجموعة البحث وعمل بحث بين تاريخين كنونو 6 148 26-11-16, 09:12 PM
آخر رد: Amir_alzubidy
  [ تمّ الحل ] : حساب الفرق بين تاريخين عبد العزيز البسكري 6 217 24-09-16, 12:31 AM
آخر رد: Amir_alzubidy
  الفرق بين تاريخين بدون احتساب ايام الجمعه والسبت mohammed.atallah 3 191 17-08-16, 09:54 AM
آخر رد: mohammed.atallah
  كود البحث بين تاريخين لايعمل بشكل صحيح فاضل الحمود 8 2,775 12-08-16, 07:57 PM
آخر رد: Ahmed tantawy
  كود البحث بين تاريخين في الفيجوال 6 sl_dl1 11 413 17-06-16, 05:22 AM
آخر رد: sl_dl1
  البحث بين تاريخين mohfar 11 271 20-05-16, 02:20 AM
آخر رد: Ahmed_Mansoor
  البحث بين تاريخين بشرط فاضل الحمود 4 575 23-10-15, 02:15 AM
آخر رد: فاضل الحمود
  لما يتعدى هذا الكود البحث بين تاريخين رجل الكهرباء 5 816 13-01-15, 08:48 PM
آخر رد: رجل الكهرباء
  إيجاد الفرق بين تاريخين وإضافة ايام لتاريخ king2512010 8 1,952 14-05-14, 08:31 PM
آخر رد: king2512010
  [سؤال] كود البحث بين رقمين لمجموعة فواتير وكود بين تاريخين واسم الشركة ونوع المادة princeofislam 5 1,491 01-02-14, 12:51 AM
آخر رد: تركي الحلواني

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


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