تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
البحث بين تاريخين
#1
السلام عليكم  مشكلتي اني قمت بتغير قاعدة البيانات من اكسس الى sql server الكود الذي كنت اتعامل معه في الاكسس الان يعترض على علامة # علما اني قمت بتعريفة small date time

وجربت اكثر من كود استعلام فما هو الحل


r = "select * from table1 where date>= #" & Text1.Text & "#  and date<= #" & Text2.Tex
& "#"


والاتسعلام الثاني


r = "select * from table1 where date between #" & Text1.Text & "#  and  #" & Text2.Tex
& "#"
الرد }}}
تم الشكر بواسطة:
#2
وعليك السلام ورحمة الله وبركاته ، أهلا أخي الكريم ، الـ SQL Server لايتعامل مع علامة الـ # بالنسبة للحقول التي من نوع تاريخ/وقت بل يجب إستبدالها بعلامة التنصيص المفرد يعني مثل القيم النصيه إستبدال علامة المربع بعلامة التنصيص المفرد .
الرد }}}
تم الشكر بواسطة: mohfar
#3
m = "Select * From dbo.Table1 where datar >=' & Text2.Text&' and datar<= '&Text3.Text&'"
قمت بلتعديل يظهر لي خطا مشكلة عدم الاستطاعه بتحويل من الكاركتر الى التاريخ
الرد }}}
تم الشكر بواسطة:
#4
أهلا أخي الكريم , في البداية طريقة كتابتك لجملة الإستعلام خطأ , عدلها بهذه الطريقة ثم جرب :

PHP كود :
"Select * From dbo.Table1 where datar >='" Trim$(Text2.Text ) & "' and datar<='" Trim$(Text3.Text ) & "'" 

- إذا لازالت تظهر لك رسالة خطأ جرب تحويل القيمة المدخله إلى نوع تاريخ/وقت بهذه الطريقة :

PHP كود :
"Select * From dbo.Table1 where datar >=cast('" Trim$(Text2.Text ) & "' AS datetime) and datar<=cast('" Trim$(Text3.Text ) & "' AS datetime)" 
الرد }}}
تم الشكر بواسطة: mohfar , mhareek , عبد العزيز البسكري
#5
لقد قمت بكتابة التاريخ مباشرتا التاريخ المدخل في قاعدة البيانات بهذا الشكل 12/10/2015 لكن عند الاستعلام قمت بكتابة التاريخ بهذة الشكل تم اضهار التقرير بشكل صحيح 12-10-2015 الان اريد اقوم بادخال التاريخين باستخدام التيكست او اي اداة ثانية بواسطة الادخال لكن يظهر لي عبارة الفشل في التحويل من تيكست الى تاريخ

هذا الخطا في الصورة المرفقة

بواسطة الكود الثاني


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة:
#6
أهلا أخي الكريم , طيب جرب تغير تنسيق التاريخ والتحويل معا بما أنه تم قبول التنسيق الذي ذكرته في ردك الأخير , بهذا الشكل :

PHP كود :
"Select * From dbo.Table1 where datar >=convert(datetime,'" Trim$(Text2.Text ) & "',105) and datar<=convert(datetime,'" Trim$(Text3.Text ) & "',105)" 

حيث يتم تحويل القيمة المدخله إلى تاريخ وتنسيقها بالتنسيق رقم 105 وهو بهذا الشكل dd-mm-yyyy
الرد }}}
تم الشكر بواسطة: mohfar , mohfar , mhareek , عبد العزيز البسكري
#7
مشكووووووووووووووووووووووووووووووووووووووووووووووووووووور والله من القلب اسبوعين وانا حائر كلمة شكر لا تكفي
الرد }}}
تم الشكر بواسطة: Ahmed_Mansoor , Ahmed_Mansoor , awidan76
#8
أهلا أخي الكريم , الحمدلله أنها ضبطت معاك , شكراً لك .
الرد }}}
تم الشكر بواسطة: mohfar , awidan76 , awidan76
#9
شكرا لك انت صاحب الفكرة وربنا يزدك من علمة اكثر واكثر
هل مثل هذة التحويلات تفديني في حل لمشكلة التي واجهتني مع [nchar]  اي نقوم بتحويلها الى تيكست او سترنك

ايضا تم حل المشكلة والفضل كلة لك باستخدام offic='" & Trim$(Text1.Text) & "'

عند عمل تقرير معين وعرضة وعند عمل تقرير اخر يقوم بعرض التقرير القديم اي لا يقوم بتحديث التقرير كيف اقوم بمعالجة هذة المشكلة
الرد }}}
تم الشكر بواسطة:
#10
أهلا أخي الكريم , نعم يمكن التحويل إلى أي نوع تريده ولكن المشكلة أن القيم المخزنة تحتوي على فراغات موجوده مع القيمه نفسها لذلك التحويل ماراح يفيد لكن تستطيع إستخادم الدالة Trim داخل الإستعلام بحيث يتم حذف الفراغات الموجوده على يمين ويسار القيمه المخزنه والدالة Trim داخل الإستعلام تكون بدون الرمز $ , بهذه الطريقة :

PHP كود :
Trim(offic)='" & Trim$(Text1.Text) & "'" 

بالنسبة لمشكلة عدم تحديث التقرير , حلها هو بإلغاء تحميل التقرير في بداية كود الزر أو الإجراء الـ SUB الذي تظهر من خلاله التقرير , بهذا السكل :

PHP كود :
Unload DataReport1 
الرد }}}
تم الشكر بواسطة: mohfar , عبد العزيز البسكري



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


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