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

توافق تاريخ اليوم مع التاريخ الموجود في database لا يعمل ... أرجوا المساعدة ... وشكراً

مغلق
بدأه asfora في 11 يوليو 2006 · 8 رد · 720 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأحباب في ذلك المنتدى الرائع

واجهتني مشكلة كبيرة عند طباعة تقرير في الكريستال ريبورت وهذا التقرير يسمي datefollow2.rpt ويتم طباعة هذا التقرير على الطابعة الخاصة بال administrator وذلك عندما يتوافق تاريخ الحقل المسمى datefollow2 داخل الجدول import مع تاريخ اليوم فكتبت

mydate=date

وعندما يتم التجربة والتنفيذ يخرج تقرير فارغ تماماً لا يوجد به بيانات السجل المتوافق مع تاريخ اليوم وهو هو تاريخ السجل

أرجوا الإفادة

جزاكم الله خيرا كثيراً

وإليكم الكود

If nam = "administrator" Then
 mydate = Date
  import.myreport.ReportFileName = App.Path & ("\datefollow2.RPT")
  import.myreport.SelectionFormula = "{import.datefollow2} = #" & mydate & "#"
  import.myreport.WindowWidth = 800
  import.myreport.WindowHeight = 400
  import.myreport.PrintReport
#2

ياشباب ماحد راضي يدخل يساعدني ... شدوا حيلكم

كان الله في عون العبد ماكان العبد في عون أخيه

على فكرة

mydate هو متغير تم تعريفه على أنه من نوع date

dim mydate as date

يله ياشباب المنتدى المتميزون

بارك الله فيكم

#3

لا أتعامل مع الكريستال ريبورت .. لأنني أقوم بعمل ريبورتات بلغة Html وتكون جيدة من حيث الشكل والتنسيق والمضمون..

ولكن سأعطيك بعض التلميحات التي من الممكن أن تساعد..

هذا علي اعتبار أن حقل التاريخ من نوع Date..

فعند استخدام معامل المقارنة (=) يجب أن يكون في الصيغة التالية وبدون علامتي (#) :

str$(Date)= "'" & str$(mydate) & "'"

قم بمحاولة تطبيق هذه الفكرة .. مع الكريستال ريبورت.. لأنني لا أجيد التعامل معه مطلقا..وأعلمني بالنتيجة..

تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 11 يوليو 2006 في 06:25

#4

شكراً أخي Pharaonic_Guy على الرد ولكن الحقل عندي ليس string الحقل هو تاريخ ووقت ولكن الكود الذي أرسلته لي يطلب مني أن أحول حقل التاريخ والوقت إلى حقل نصي على العموم

ساجرب اليوم وأعطيك الرد

جزاكم الله خيراً على الرد والاهتمام

#5

كتبت الجملة التي أرسلتها لي وظهر لي هذا الخطأ

compiler error

function call on left-hand side of assignment must return varient or object

حولت المتغير mydate

بدلاً من

dim mydate as date

إلى

mydate as varient

خرجت لي نفس الرسالة

وهل معنى تلك الرسالة انني استدعيت function أم ماذا؟

أرجو الحل تعبت من كتر التفكير

شكــــرا

:^)

:angry:

#6

أخي العزيز ..

لم أكن أطلب منك استخدامها مباشرة كما هي..

فهذا سيعطي الخطأ الذي ظهر لك بالفعل ..

بل يجب وضعها في جملة الشرط الذي وضعته في البداية

  import.myreport.SelectionFormula = "{import.datefollow2} = #" & mydate & "#"

لاحظ أنني اعتمدت علي أن حقل التاريخ من توع Date/Time..

ولذلك قمت بتحويله إلي String كما قلت أنت عن طريق

(Str(Date

ومقارنته بالتاريخ الحالي المحول أيضا إلي String.

str$(Date)= "'" & str$(Date) & "'"

الخلاصة أن الكود سيكون شيئ مثل هذا ..

import.myreport.SelectionFormula = "{str(import.datefollow2)} = '" & str(Date) & "'"

جرب وأعلمني بالنتيجة..

تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 11 يوليو 2006 في 21:04

#7
اقتباس
الخلاصة أن الكود سيكون شيئ مثل هذا ..

كود

import.myreport.SelectionFormula = "{str(import.datefollow2)} = '" & str(Date) & "'"

أخي العزيز Pharaonic_Guy

قمت بتجربة الكود ولكن لم يعطي أي تقارير خالص وللمعلومة عندما يكتب الكود هكذا

import.myreport.SelectionFormula = "'"

فإنه يعطي تقرير به كل سجلات الجدول كاملة

وإليك كل الكود الخاص بالفورم لعل هناك خطأ لا ألحظه

ومرة أخرى جزاك الله خيراً على الإهتمام

Private Sub Form_Load()
Dim SqlStr As String
Dim SqlStr1 As String
Dim SqlStr2 As String
Dim Mydate As String
Calendar = vbCalHijri
Mydate = Str(Date)
SqlStr = "Select * From user_tab"
If rs.State = adStateOpen Then rs.Close
rs.Open SqlStr, db, adOpenDynamic, adLockOptimistic

SqlStr1 = "Select * From import"
If rs1.State = adStateOpen Then rs1.Close
rs1.Open SqlStr1, db, adOpenDynamic, adLockOptimistic

SqlStr2 = "Select * From export"
If rs2.State = adStateOpen Then rs2.Close
rs2.Open SqlStr2, db, adOpenDynamic, adLockOptimistic
MsgBox (Date)

nam = Form6.Combo2.Text
main.Caption = "ÇáãÓÊÎÏã ÇáÍÇáí ááÈÑäÇãÌ" & " :: " & nam
MsgBox (nam)
rs.MoveFirst
rs.Find "user_name='" + CStr(nam) + "'", 0, adSearchForward, 1

If rs![export_s1] = "no" Then
main.expmenu.Enabled = False
End If
If rs![import_s1] = "no" Then
main.impmenu.Enabled = False
End If

If nam = "administrator" Or nam = "via_admin" Then
 main.users.Enabled = True
 import.secret.Enabled = True
 export.secret2.Enabled = True
End If

If nam = "administrator" Then
  import.myreport.ReportFileName = App.Path & ("\datefollow2.RPT")
  import.myreport.SelectionFormula = "{str(import.datefollow2)} = '" & Mydate & "'"
  import.myreport.WindowWidth = 800
  import.myreport.WindowHeight = 400
  import.myreport.PrintReport
  '''''''''''''''''''''''''''''
ElseIf nam = "administrator" Then
  export.myreport.ReportFileName = App.Path & ("\datefollow2exp.RPT")
  export.myreport.SelectionFormula = "{str(export.datefollow2exp)} = '" & Mydate & "'"
  export.myreport.WindowWidth = 800
  export.myreport.WindowHeight = 400
  export.myreport.PrintReport

ElseIf nam = "via_admin" Then
 import.myreport.ReportFileName = App.Path & ("\datefollow.RPT")
 import.myreport.SelectionFormula = "{str(import.datefollow)} = '" & Mydate & "'"
 import.myreport.WindowWidth = 800
 import.myreport.WindowHeight = 400
 import.myreport.PrintReport
 '''''''''''''''''''''''''''''
ElseIf nam = "via_admin" Then
 export.myreport.ReportFileName = App.Path & ("\datefollowexp.RPT")
 export.myreport.SelectionFormula = "{str(export.datefollowexp)} = '" & Mydate & "'"
 export.myreport.WindowWidth = 800
 export.myreport.WindowHeight = 400
 export.myreport.PrintReport

Else
 main.users.Enabled = False
 End If
End Sub

طبعاً لا يهمني في الكود إلا الجزء الخاص بطباعة التقارير

#8

ياشباب أتمنى المشاركة هذه المشكلة الأخيرة تقريباً في ذلك المشروع

شكراً

#9

وجه دعوة لمن تعامل مع الكريستال ريبورت أن يرد علي هذا الموضوع ..

علي العموم..

في الأول يجب التأكد من أن هناك سجلات مخزنة بتاريخ اليوم ..

ثانيا حاول تحويل الحقل datefollow2 من نوع Date/Time إلي نوع String بحجم 10..فإذا نفعت فسنحاول أن نري كيفية تطبيقها عندما يكون الحقل من نوع Date/Time..

ثالثا جرب الاستعلام مع تواريخ ثابتة لنري إذا كان الاستعلام يعمل أصلا أم لا .. سواء بالصيغة التالية :

import.myreport.SelectionFormula = "{str(import.datefollow2)} = '00/00/2006'"

أو بالصيغة التالية :

import.myreport.SelectionFormula = "{import.datefollow2} = #00/00/2006#"

أو :

import.myreport.SelectionFormula = "{import.datefollow2} = (00/00/2006)"

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

تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 13 يوليو 2006 في 09:04

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

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

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

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

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

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