לולאה על Public Type
-
בוקר טוב.
יש לי רשימה של המון אלמנטים שאני צריך להכניס להם ערכים מתוך שדות בטופס, וניסיתי לחסוך בכתיבה ולעשות רשימה של Public Type עם כל הערכים שאני צריך.
ואז בטופס לקרוא לכל השדות שמות כמו של הערכים שאני צריך, ואז לעשות לולאה על כל השדות ושיכניס לערך שלהם את מה שכתוב בשדה.
זה לדוגמא הערכים:Public Type Kesher FirstName As String LastName As String ID As Double Address As String End Typeוזה הקוד בטופס:
Dim ctl As Control Dim KesherInfo As Kesher For Each ctl In Me.Controls KesherInfo(ctl.name) = Me(ctl.name) Nextאבל הוא מחזיר לי שגיאה על המילים KesherInfo(ctl.name).
יש דרך לעשות את זה?
תודה! -
בוקר טוב.
יש לי רשימה של המון אלמנטים שאני צריך להכניס להם ערכים מתוך שדות בטופס, וניסיתי לחסוך בכתיבה ולעשות רשימה של Public Type עם כל הערכים שאני צריך.
ואז בטופס לקרוא לכל השדות שמות כמו של הערכים שאני צריך, ואז לעשות לולאה על כל השדות ושיכניס לערך שלהם את מה שכתוב בשדה.
זה לדוגמא הערכים:Public Type Kesher FirstName As String LastName As String ID As Double Address As String End Typeוזה הקוד בטופס:
Dim ctl As Control Dim KesherInfo As Kesher For Each ctl In Me.Controls KesherInfo(ctl.name) = Me(ctl.name) Nextאבל הוא מחזיר לי שגיאה על המילים KesherInfo(ctl.name).
יש דרך לעשות את זה?
תודה!@ארי כתב בלולאה על Public Type:
יש דרך לעשות את זה?
אחרי חיפוש, לכאורה אין דרך עם
Type(מילות מפתח שהתשמשתי לחיפוש: vba udt dynamic field access ועוד וריאציות של זה. גם בדקתי את התיעוד של מייקרוסופט ועוד אתרים, ולא מצאתי שום ממצא מעניין)
לכאורה הפתרון הוא להשתמש ב-
Collectionבמקום ב-Typeהאמת שדי מובן לי למה אי אפשר עם
Type, כנראה ש-Typeהוא מבנה מאוד פשוט (כמוstructב-C) של כמה ערכים צמודים אחד ליד השני ולא מפה של מפתח => ערך, לכן השם לגישה עובד רק ברמת השפה (המפרש יודע לתרגם שם של שדה למיקום במבנה) שזה בצורה סטטית (רק שם שמופיע בתוך הקוד בצורה סטטית מתורגם למיקום במבנה) ולא בצורה דינאמית (בזמן ריצה אין קוד שמתרגם שמות למיקומים) -
@ארי כתב בלולאה על Public Type:
יש דרך לעשות את זה?
אחרי חיפוש, לכאורה אין דרך עם
Type(מילות מפתח שהתשמשתי לחיפוש: vba udt dynamic field access ועוד וריאציות של זה. גם בדקתי את התיעוד של מייקרוסופט ועוד אתרים, ולא מצאתי שום ממצא מעניין)
לכאורה הפתרון הוא להשתמש ב-
Collectionבמקום ב-Typeהאמת שדי מובן לי למה אי אפשר עם
Type, כנראה ש-Typeהוא מבנה מאוד פשוט (כמוstructב-C) של כמה ערכים צמודים אחד ליד השני ולא מפה של מפתח => ערך, לכן השם לגישה עובד רק ברמת השפה (המפרש יודע לתרגם שם של שדה למיקום במבנה) שזה בצורה סטטית (רק שם שמופיע בתוך הקוד בצורה סטטית מתורגם למיקום במבנה) ולא בצורה דינאמית (בזמן ריצה אין קוד שמתרגם שמות למיקומים)
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות