עזרה בSQL באקסס

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
אז עשיתי שאילתה כך:

קוד:
SELECT [המרת תאריך].[שם פרטי], [נתוני אב].[שם משפחה], [המרת תאריך].[תאריך לידה עברי], [המרת תאריך].גיל, [המרת תאריך].[סוג קרבה]
FROM [המרת תאריך] INNER JOIN [נתוני אב] ON [המרת תאריך].מזהה = [נתוני אב].מזהה
WHERE ((([המרת תאריך].[תאריך לידה עברי])  Like "*" & [הקלד את החודש הרצוי] & "*"));

ומשום מה הוא טוען שהקרטריון אינו מתאים לסוג הנתונים
ראוי להדגיש כי מדובר בעמודה מחושבת בשאילתה ולקוחה ממודל המרת תאריך לוזי לעברי שפורסם כאן ע"י @moyshi

אשמח להסבר והבהרה

תודה מראש
 
נערך לאחרונה ב:

אפקטיביות

משתמש צעיר
אני לא בדקתי במקור שממנו לקחת את השאילתא
אבל לכאורה את המילים הקלד את החודש הרצוי צריך להקיף בגרשיים ולא בסוגריים מרובעות (שזה הפנייה לשם עמודה)
 

moishy

משתמש סופר מקצוען
מנוי פרימיום
איזה נתון מופיע בשדה הזה: [המרת תאריך].[תאריך לידה עברי] ?
שימו לב שבפרמטר אתם מבקשים רק החודש הרצוי.
 

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
אני לא בדקתי במקור שממנו לקחת את השאילתא
אבל לכאורה את המילים הקלד את החודש הרצוי צריך להקיף בגרשיים ולא בסוגריים מרובעות (שזה הפנייה לשם עמודה)

לקחתי אותה מתוך הידע... (המועט)
בצורה כמו שאני כתבתי בעת הרצת השאילתה המערכת מבקשת ערך שיוכנס באזור הסוגריים המרובעות בשאילתה (חלון ובו המלל "הקלד את החודש הרצוי" ותיבת טקסט למילוי) ברגע שאני ממלא לדוגמא "חשון" נעשה כאילו כתבתי בשאילתה:
קוד:
 Like "*חשון*"));
ובעצם שולף מהשדה כל רשומה ובה מופיע "חשון" בכל מקום בשדה (למשל במקרה דנן החודש מופיע כך: כ"א בחשון תשע"ח).
באמת שלא הבנתי למה לשים בגרשיים (ד.א. על עמודה אחרת זה עבד)

איזה נתון מופיע בשדה הזה: [המרת תאריך].[תאריך לידה עברי] ?
שימו לב שבפרמטר אתם מבקשים רק החודש הרצוי.

נתון חוזר של החישוב תאריך לועזי מעמודה אחרת לעברי
אני חושב שהשגיאה תופיע בכל מקרה בו אחפש בשדה כל שהוא נתון שלא תואם את סוג הנתונים כמו טקסט בשדה מספרי
ואם כן מגיעה השאלה איזה סוג נתונים הוא זה?
 

FullTime

משתמש מקצוען
תוסיף גרש בודד לפני הכוכבית הראשונה ואחרי האחרונה.
אחרת הוא לא מקבל גרש, ובשדה טקסט אתה חייב לתחום אותו.
 

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
תוסיף גרש בודד לפני הכוכבית הראשונה ואחרי האחרונה.
אחרת הוא לא מקבל גרש, ובשדה טקסט אתה חייב לתחום אותו.

לא הבנתי.
מי צריך גרש בשרשור?
חשוב שתדע שהשאילתה עבדה יופי על שדה טקסטואלי אחר ורק על השדה הזה היא לא עובדת.
 

mp5

משתמש מקצוען
איזה סוג שדה זה [תאריך לידה עברי]? טקסט או תאריך?
 

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
איזה סוג שדה זה [תאריך לידה עברי]? טקסט או תאריך?
היא היא שאלתי...
מכיוון שמדובר בשדה מבוסס על ערך מוחזר מהקוד שפורסם כאן הממיר תאריך לועזי לעברי ואיני יודע למה אקסס לא מכיר בו כטקסט באומרו כאומרו אלי כל ברצה "סוג הפרמט אינו תואם את סוג הנתונים" (משהו כזה...)
 
נערך לאחרונה ב:

mp5

משתמש מקצוען
כנראה מחזיר מסוג תאריך ואתה מנסה לעשות שאילתה like של טקסט. מכירה את SQL ואבל לא באקסס.. בsql אפשר להמיר את השדה ב-where לטקסט. או לבודד את החודש מהתאריך
מקווה שמובן..
 

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
...
 
נערך לאחרונה ב:

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
טוב, ברור לי שזה בגלל הפונקציה במודל או משהו כזה, המרתי את העמודה לרגילה שאינה מהמודל והשאילתה עבדה יופי...

מי יכול לבדוק את העניין?

קישור למודל שפורסם
 

כוכבת

משתמש פעיל
לקחתי אותה מתוך הידע... (המועט)
בצורה כמו שאני כתבתי בעת הרצת השאילתה המערכת מבקשת ערך שיוכנס באזור הסוגריים המרובעות בשאילתה (חלון ובו המלל "הקלד את החודש הרצוי" ותיבת טקסט למילוי) ברגע שאני ממלא לדוגמא "חשון" נעשה כאילו כתבתי בשאילתה:
קוד:
 Like "*חשון*"));
ובעצם שולף מהשדה כל רשומה ובה מופיע "חשון" בכל מקום בשדה (למשל במקרה דנן החודש מופיע כך: כ"א בחשון תשע"ח).
באמת שלא הבנתי למה לשים בגרשיים (ד.א. על עמודה אחרת זה עבד)



נתון חוזר של החישוב תאריך לועזי מעמודה אחרת לעברי
אני חושב שהשגיאה תופיע בכל מקרה בו אחפש בשדה כל שהוא נתון שלא תואם את סוג הנתונים כמו טקסט בשדה מספרי
ואם כן מגיעה השאלה איזה סוג נתונים הוא זה?
דבר ראשון - ג"כ חושבת כמו שכבר אמרו מעלי:
תוסיף גרש בודד לפני הכוכבית הראשונה ואחרי האחרונה.
אחרת הוא לא מקבל גרש, ובשדה טקסט אתה חייב לתחום אותו.
דבר נוסף -
יתכן והבעיה בגרשיים שבטקסט עצמו.
תנסה להמיר את הגרשיים ל char כך:
( "(Replace(myVariable, Chr(34), "Chr(34​

מקווה שעזרתי במשהו, בהצלחה
 

FullTime

משתמש מקצוען
לא המשכתי להסביר לו, כי הוא טוען שהבעיה לא בזה.
אבל אם כבר הועלה הנושא שוב.
בציטוט שהבאת עם הלייק, אין גרשיים על הטקסט שאתה רוצה לסנן, התוצאה צריכה להיות כזו:
קוד:
 Like "'*חשון*'"));

מעניין אם ככה יעבוד, תנסה ותעדכן.


ואין צורך בתווי char, הוא יודע לקרוא גרשיים.
 

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
מתחיל להסתחרר...

נרד לפרטים הקטנים:

בשדה המדובר קיימים רשומות שנראות כך:
כ"א באב תשע"ג
י"ז בחשון תשס"ט
כ"ט בכסלו תש"ע

וכן הלאה...

מה בס"ה ביקשתי בשאילתה:
בהרצת השאילתה יופיע חלון למילוי (פרמטר) שם החודש
לאחר מילוי - לדוגמא: חשון - ואישור החלון
השאילה תעלה עם סינון מתוך הרשומה, הוי אומר שיופיע בטבלה רק
כ"א בחשון תשס"ט

שוב אני מדגיש שהשדה המדובר נמשך משאילתה אחרת ששם הוא מחושב בפונקציה להמרת תאריך עברי מתאריך לועזי

חשוב לי להבהיר שוב כי על עמודות טקסט אחרות השאילה פועלת.

תבינו חברה יש בעיה בסוג הנתונים בפונקציה הזאת שממירה מתאריך לועזי לתאריך עברי כי גם מיון נורמלי בטבלה לא אפשרי מאותה סיבה ראה תמונות

בעת נסיון למיון את העמודה בטבלת השאילתה אני מקבל את אותה שגיאה...
מיון.pngשגיאה.png
 
נערך לאחרונה ב:

mp5

משתמש מקצוען
פתחתי את הקבצים של הפונקציה, הפונקציה מחזירה ערך מסוג Date-תאריך. לכן אי אפשר למיין מא' עד ת' וכו' כי זה לא עובד על תאריך אלא רק על טקסט.
1. או שהיוצר ישנה את הפונקציה להחזיר טקסט ולא תאריך
2. או שתמיר את הערך שמתקבל מהפונקציה- לטקסט משו כמו:
קוד:
SELECT ConvertToDate(DateToHeb([תאריך לועזי])) AS [תאריך עברי]
FROM tblTest;
 

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
פתחתי את הקבצים של הפונקציה, הפונקציה מחזירה ערך מסוג Date-תאריך. לכן אי אפשר למיין מא' עד ת' וכו' כי זה לא עובד על תאריך אלא רק על טקסט.

גם לא חיפוש טקסט, לא מתוך הסינון האפשרי בתפריט ההקשר ולא מתוך שאילה כאמור על זה מתבסס כל האשכול אהה...

אז זה אכן מה שחששתי, תודה.
 

ש.ב.ח.

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
D I G I T A L
נכון, טעות. צריך להיות ToString או Cast(<date> as varchar) או משו כזה..

ניסיתי את ה ToString כך:
קוד:
SELECT [ימי הולדת].מזהה, [ימי הולדת].[סוג קרבה], [ימי הולדת].[שם פרטי], [ימי הולדת].[תאריך לידה לועזי], ConvertToString(DateToHeb([תאריך לידה לועזי])) AS [תאריך לידה עברי], DateDiff("yyyy",[תאריך לידה לועזי],Date())&" שנים" AS גיל
FROM [ימי הולדת];

זה לא עובד
מה עוד הצעת? לא הבנתי.
 

mp5

משתמש מקצוען
בSQL זה:
קוד:
SELECT CAST(DateToHeb([תאריך עברי]) as nvarchar(50))) AS [תאריך עברי]

או
קוד:
SELECT Convert(nvarchar(50, DateToHeb([תאריך לועזי]) ,106) AS [תאריך עברי]

כש-106 מסמל את הפורמט שהתאריך יראה בתור טקסט.

אבל- אין לי מושג אם זה נכון גם לSQL באקסס או שיש קיצור דרך\פונקציות אחרות..
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קכט

א שִׁיר הַמַּעֲלוֹת רַבַּת צְרָרוּנִי מִנְּעוּרַי יֹאמַר נָא יִשְׂרָאֵל:ב רַבַּת צְרָרוּנִי מִנְּעוּרָי גַּם לֹא יָכְלוּ לִי:ג עַל גַּבִּי חָרְשׁוּ חֹרְשִׁים הֶאֱרִיכוּ (למענותם) לְמַעֲנִיתָם:ד יְהוָה צַדִּיק קִצֵּץ עֲבוֹת רְשָׁעִים:ה יֵבֹשׁוּ וְיִסֹּגוּ אָחוֹר כֹּל שֹׂנְאֵי צִיּוֹן:ו יִהְיוּ כַּחֲצִיר גַּגּוֹת שֶׁקַּדְמַת שָׁלַף יָבֵשׁ:ז שֶׁלֹּא מִלֵּא כַפּוֹ קוֹצֵר וְחִצְנוֹ מְעַמֵּר:ח וְלֹא אָמְרוּ הָעֹבְרִים בִּרְכַּת יְהוָה אֲלֵיכֶם בֵּרַכְנוּ אֶתְכֶם בְּשֵׁם יְהוָה:
נקרא  20  פעמים

אתגר AI

רבי שמעון - הסיפור המלא • אתגר 15

לוח מודעות

למעלה