741
צפיות
צפיות
8
תשובות
תשובות
פקודת SQL בתכנות ב-VB6
היי
אני מנסה כבר שבועיים לשלוף מטבלה כלשהי, רשימת תיקי לקוחות שמועדי הדיון שלהם נמצא בטווח התאריכים שהקיש המשתמש. למשל: מ- 1.9.08 ועד 30.9.08.
ידוע לי על 2 סוגי קוד:
Adodc1.RecordSource = "select * from qrClientFiles where DateDiyun >= '" & savDate1 & "'" & " and DateDiyun <='" & savDate2 & "'"
או
Adodc1.RecordSource = "select * from qrClientFiles where DateDiyun between '" & savDate1 & "'" & " and '" & savDate2 & "'"
הבעיה היא שמיון זה מתחיל קודם ביום, עובר לחודש ורק אח"כ לשנה
במצב כזה אין מיון נכון של התאריך ואני מקבל תאריכים נוספים שלא נמצאים בטווח שהקיש המשתמש.
אם יש למישהו פקודה מתאימה,כזו שיודעת למיין תאריך מלא בויזואל בייסיק 6 אנא עדכנו אותי, תודה.
8 תשובות
פורמט תאריך
נסה לשנות את פורמט התאריך ל mm/dd/yyyy
כאילו שאנחנו בארה"ב
רזי בלט
ניסיתי – לא עזר
כשאני משנה את הפורמט ל-MM/DD/YYYY אז הוא לא מוצא לי בכלל תאריך כי יתר התאריכים הם בפורמט הרגיל DD/MM/YYYY.
ניסיתי לשנות גם את שאר התאריכים ל-MM/DD/YYYY כדי שיהיה זהה למיון אבל גם זה לא עזר.
הקוד:
Dim sDate1 As String
Dim sDate2 As String
sDate1 = Format(savDate1, "MM/DD/YYYY")
sDate2 = Format(savDate2, "MM/DD/YYYY")
DataGrid1.Caption = "מועדי דיון מתאריך " & savDate1 & " ועד תאריך " & savDate2
Adodc1.RecordSource = "select * from qrClientFiles where DateDiyun between '" & sDate1 & "'" & " and '" & sDate2 & "'"
מול איזה בסיס נתונים אתה עובד?
רזי
ACCESS
באקסס: תאריך מקיפים עם סולמית ולא עם גרש
במסד נתונים מסוג אקסס , במשפט SQL יש להקיף תאריך בסולמית # ולא בעזרת גרש '
ולפיכך על פי הדוגמא שנתת , משפט הSQL שלך צריך להראות כך:
SELECT * From qrClientFiles WHERE DateDiyun between #01/30/2007# and #02/30/2007#
החלף את התאריכים שבדוגמא למשתנים שלך sDate1 וsDate2.
רזי
אז ככה…
רזי שלום,
ביצעתי מה שאמרת וכתבתי הקוד באופן הבא:
Adodc1.RecordSource = "select * from qrClientFiles where DateDiyun between #sDate1# and #sDate2#"
אולם קיבלתי את הודעת השגיאה הבאה:
Syntax error in date in query expression ‘DateDiyun between #sDate1# and #sDate2#
כשהחלפתי את המשתנים sDate1 ו-sDate2 לתאריכים, קיבלתי את הנתונים אולם:
1. הבעיה לא נפתרה שכן הנתונים לא הוצגו אך ורק בטווח התאריכים שכתבתי. ולמעשה קיבלתי את אותם נתונים בדיוק כמו בקוד הקודם שלי.
2. אילו היה בטווח, התאריכים היו קבועים ולא משתנים לפי פרמטר שהקיש המשתמש.
אני חסר אונים….לא ברור לי מדוע לא ניתן להציג נתונים בטווח התאריכים שהקיש המשתמש.
שאלות
האם השדה DateDiyun (המתקבל מהשאילתה qrClientFiles )
הוא מסוג תאריך ?
או שזהו שדה מסוג טקסט המכיל ערכים של תאריך?
רזי
המשך
כי אז הקוד צריך להראות כך:
Dim sDate1 As String
Dim sDate2 As String
sDate1 = Format(savDate1, "MM/DD/YYYY")
sDate2 = Format(savDate2, "MM/DD/YYYY")
Adodc1.RecordSource = "SELECT * From qrClientFiles" & _
" WHERE CDate([DateDiyun])" & _
" Between #" & sDate1 & "# And #" & sDate2 & "#;"
רזי