ABA


"צריך עזרה בקשר ל Recordset עם שמות שדות זהים"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #13205 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 13205
WarLord

   14:07   21.04.06   
אל הפורום  
  צריך עזרה בקשר ל Recordset עם שמות שדות זהים  
 
   ערכתי לאחרונה בתאריך 21.04.06 בשעה 14:08 בברכה, WarLord
 
תודה שנכנסתם
אז ככה:
אני עובד ב VB עם קישור לאקסס
יש לי 2 טבלאות

הראשונה tbProducts המכילה מוצרים:


השניה tbProductType המכילה את מספר ושם סוג המוצר:

הטבלאות מקושרות יחדיו, ז"א ה Type בטבלה הראשונה מקושר לTypeCode בטבלה השניה.

הבעיה שלי היא שכשאר אני יוצר Recordset של מוצר למשל:
select * from tbProducts,TbProductType where tbProducts.Type=tbProductType.TypeCode

אני מקבל 2 שדות (Name) עם אותו השם, כי ל2 הטבלאות יש את השדה.

איך אני יכול להתייחס רק לשדה אחד ? למשל להציג אותו ב Msgbox
וניסיתי לעשות msgbox TbProductType.Name אבל זה לא עובד...

תודה מראש


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אני מציע שתכתוב כאן את כל קטע הקוד E-do  21.04.06 16:41 1
     תודה על התגובה אבל אין צורך בקוד... זאת לא השאלה שלי WarLord 21.04.06 16:47 2
         בוודאי שצריך E-do  21.04.06 20:30 3
             אפשר הכל MO 21.04.06 20:44 4
                 ברור שאפשר הכל. E-do  22.04.06 01:30 6
             הנה הקוד: WarLord 21.04.06 21:18 5
                 טוב, זה די ברור ש rs!Name E-do  22.04.06 01:36 7
                     את rs!TypeCode WarLord 22.04.06 11:12 8
                         לימדת אותי משהו חדש... E-do  22.04.06 14:35 9
                             לא עובד.... אבל תודה רבה! WarLord 22.04.06 21:53 10

       
E-do 
חבר מתאריך 29.10.03
2160 הודעות
   16:41   21.04.06   
אל הפורום  
  1. אני מציע שתכתוב כאן את כל קטע הקוד  
בתגובה להודעה מספר 0
 
   במיוחד את החלקים בהם אתה "קורא" לRSים, לפי איך שאני מבין אתה קורא רק לאחת מהטבלאות?


-----------------
בברכה,
e-do


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
WarLord

   16:47   21.04.06   
אל הפורום  
  2. תודה על התגובה אבל אין צורך בקוד... זאת לא השאלה שלי  
בתגובה להודעה מספר 1
 
   אני פשוט בונה מ2 טבלאות RecordSet הבעיה היא שבשתיהם יש את אותו שם בשדה לכן נוצר מצב שיש פעמיים את השדה name ב Recorset וכשאני למשל עושה
msgbox rs! זה נותן לי רק את ה name הראשון... השאלה שלי איך אני יכול להתייחס גם לשני ?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
E-do 
חבר מתאריך 29.10.03
2160 הודעות
   20:30   21.04.06   
אל הפורום  
  3. בוודאי שצריך  
בתגובה להודעה מספר 2
 
   אני רוצה לראות איך אתה קורא לrs, למרות שלהערכתי זה כנראה בלתי אפשרי מה שאתה מנסה לעשות.


-----------------
בברכה,
e-do


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MO

   20:44   21.04.06   
אל הפורום  
  4. אפשר הכל  
בתגובה להודעה מספר 3
 
   אולי זה רק לא אפשרי בדרך הספציפית הזאת
אולי אפשר לעשות את זה קצת יותר מורכב כמו להעביר את השמות האלה לאיזה טבלה חדשה וממנה לקחת רק שדה אחד... =\


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
E-do 
חבר מתאריך 29.10.03
2160 הודעות
   01:30   22.04.06   
אל הפורום  
  6. ברור שאפשר הכל.  
בתגובה להודעה מספר 4
 
   התכוונתי כמובן שבדרך הספציפית הזו, לא. (כנראה, עכשיו אני מתחיל לעבור על הקוד)


-----------------
בברכה,
e-do


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
WarLord

   21:18   21.04.06   
אל הפורום  
  5. הנה הקוד:  
בתגובה להודעה מספר 3
 
   ערכתי לאחרונה בתאריך 21.04.06 בשעה 21:18 בברכה, WarLord
 

Dim str As String
Dim rs As ADODB.Recordset
Dim db As ADODB.Connection

str = "select * from tbProducts,tbProductType where tbProducts.Type=tbProductType.TypeCode"
Set db = New ADODB.Connection
Set rs = New ADODB.Recordset
db.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & "db.mdb" & "; DefaultDir=" & App.Path & "; Pwd=davidbz;"
db.Open
rs.CursorType = adOpenStatic
rs.LockType = adLockOptimistic
rs.Open str, db, , , adCmdText

MsgBox rs!Name 'סתם לבדיקה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
E-do 
חבר מתאריך 29.10.03
2160 הודעות
   01:36   22.04.06   
אל הפורום  
  7. טוב, זה די ברור ש rs!Name  
בתגובה להודעה מספר 5
 
   ערכתי לאחרונה בתאריך 22.04.06 בשעה 01:39 בברכה, E-do
 
יצביע לטבלה tbProducts, האם כשאתה עושה rs!TpyeCode הוא יודע מה להראות? אני מעריך גם כן שלא.

בקיצור, למיטב ידיעתי, אין אפשרות לעשות את זה ככה.
למעשה הrs שלך הוא מבוסס רק על הטבלה tbProducts.

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

נראה לי שהחלופה הכי פשוטה היא באמצעות משפט SQL נוסף תוציא את אותו שם לתוך משתנה string וככה תשתמש בו.


-----------------
בברכה,
e-do


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
WarLord

   11:12   22.04.06   
אל הפורום  
  8. את rs!TypeCode  
בתגובה להודעה מספר 7
 
   את rs!TypeCode הוא כן מראה....

תודה לך בכל מקרה אני כבר יסתדר


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
E-do 
חבר מתאריך 29.10.03
2160 הודעות
   14:35   22.04.06   
אל הפורום  
  9. לימדת אותי משהו חדש...  
בתגובה להודעה מספר 8
 
   ערכתי לאחרונה בתאריך 22.04.06 בשעה 14:36 בברכה, E-do
 
אם כך, נסה אולי

rs.field("tbProsuctsType.Name")


-----------------
בברכה,
e-do


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
WarLord

   21:53   22.04.06   
אל הפורום  
  10. לא עובד.... אבל תודה רבה!  
בתגובה להודעה מספר 9
 
   וזה פסדר...אני כבר יעשה משהו אחר


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net