בעיה עם INSERT TO

פתרונות

New member
זה לא אקסס, זה ASP

הצעתי אליך - אם את מכירה איך עובדים עם בונה השאילתות של אקסס, תשתמשי בו ואח"כ תעבירי לתצוגת SQL ותעתיקי את הקוד משם. בהנחה שהWHEN הזה הוא משהו שמתמשים בו ואני הבור כאן, אז לדעתי חסר לך את האות r במילה האחרונה שם.
 

בטי12

New member
עדיין בעיות עם LEFT JOIN

שלום לכולם ! אני מנסה לעשות שאילתת LEFT JOIN על 2 RECORDSET כלומר בניתי 2 שאילתות שהתוצאה נכנסה ל- 2 רקורקדסט שונים ועכשיו שאני מנסה לעשות שאילתת left join בינהם אני לא מצליחה!![ זה הקוד:
sql1="select lngItemNumber from userMichlol WHERE michlolNum=" & michlolnum & " AND work_id=" & workNum & " AND ID=" & userId rs1.Open sql1,conn sql="select lngItemNumber from michlolShow WHERE michId=" & michlolnum rs.Open sql,conn sql2="SELECT * FROM " & rs & " LEFT JOIN" & rs1 & " ON" & rs("lngItemNumber") & "=" & rs1("lngItemNumber") rs2.Open sql2,conn​
אני אסביר יותר :כפי שאפשר לראות בקוד יצרתי 2 שאילתות את התוצאה הכנסתי לרקורדסט ועכשיו אני מנסה לעשות בינהם left join ויש לי שגיאה: Microsoft VBScript runtime (0x800A000D) Type mismatch ניסיתי גם את השורה:
sql2="SELECT * FROM " & rs & " LEFT JOIN" & rs1 & " ON" & rs.lngItemNumber & "=" & rs1.lngItemNumber​
ועדיין יש את אותה שגיאה!! מישהו יודע מה הבעיה?? (עשיתי כבר כל מיני left join בן שמות של טבלאות והצלחתי אבל עם recordset אני ממש מסתבכת...) בבקשה תעזרו לי!! תודה רבה
 

פתרונות

New member
למיטב הבנתי

לא ניתן לעשות Left Join בין רקורדסטים, זה בין טבלאות או שאילתות בלבד כיון שזה מתבצע במסד הנתונים עצמו ושם אין משתמעות לרקורדסט. המשפט הנכון צריך להיות לדעתי:
"SELECT michlolShow.lngItemNumber FROM michlolShow LEFT JOIN userMichlol ON michlolShow.lngItemNumber = userMichlol.lngItemNumber WHERE ((userMichlol.michlolNum=" & michlolnum & ") AND (userMichlol.work_id=" & workNum & ") AND (userMichlol.ID=" & userId & ") AND (michlolShow.michId=" & michlolnum & "));"​
 

מ ט ע

New member
מה ???

את מנסה לעשות JOIN על אובייקט rs ??? בחיי כבר ראיתי המון שאלות ורעיונות... אבל הפעם הצלחת בהחלט להפתיע אותי גם במקוריות וגם בתעוזה !!! כל הכבוד ! בקיצור ולעניין - שאילתא היא "סתם" משפט טקסטי - שאובייקט המתקשר לבסיס הנתונים (ado , dao וכו')מקבל אותו כפרמטר ותו לא!!! את מנסה לשרשר למשתנה הטקסטי הזה אובייקט RS (!?) וזה לא ממש יכול להתחבר. על מנת לעשות JOIN או כל שאילתא אחרת תכתבי משפט sql רגיל ובודד - ותכניסי אותו לתוך אובייקט RS אחד. בהצלחה.
 

s h i m s h o n

New member
הערת אגב

מבלי לסתור את קודמיי שהסבירו נכונה שצריך לכתוב את השאילתא מהתחלה עם ה-join כמו שצריך בין הטבלאות, ישנה דרך שבה כן תוכלי להשתמש בשני הסלקטים הנפרדים: השתמשי במחרוזת של כל אחד מהם (לא אובייקטי ה-rs) והכניסי אותה בסוגריים לחלק ה-from ותני לה alias. אח"כ צרפי ב-left join כרגיל:
"SELECT * FROM (" & sql1 & ") a, (" & sql & ") b LEFT JOIN ON a.my_col = b.my_col"​
אבל, כאמור נכון יותר לא להתעצל ולכתוב את השאילתא מהתחלה. ש
 
למעלה