דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. לולאה על Public Type

לולאה על Public Type

מתוזמן נעוץ נעול הועבר תכנות
3 פוסטים 2 כותבים 150 צפיות 1 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    ארי
    כתב ב נערך לאחרונה על ידי
    #1

    בוקר טוב.
    יש לי רשימה של המון אלמנטים שאני צריך להכניס להם ערכים מתוך שדות בטופס, וניסיתי לחסוך בכתיבה ולעשות רשימה של 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).
    יש דרך לעשות את זה?
    תודה!

    yossizY תגובה 1 תגובה אחרונה
    0
    • א ארי

      בוקר טוב.
      יש לי רשימה של המון אלמנטים שאני צריך להכניס להם ערכים מתוך שדות בטופס, וניסיתי לחסוך בכתיבה ולעשות רשימה של 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).
      יש דרך לעשות את זה?
      תודה!

      yossizY מנותק
      yossizY מנותק
      yossiz
      כתב ב נערך לאחרונה על ידי yossiz
      #2

      @ארי כתב בלולאה על Public Type:

      יש דרך לעשות את זה?

      אחרי חיפוש, לכאורה אין דרך עם Type

      (מילות מפתח שהתשמשתי לחיפוש: vba udt dynamic field access ועוד וריאציות של זה. גם בדקתי את התיעוד של מייקרוסופט ועוד אתרים, ולא מצאתי שום ממצא מעניין)

      לכאורה הפתרון הוא להשתמש ב-Collection במקום ב-Type

      האמת שדי מובן לי למה אי אפשר עם Type, כנראה ש-Type הוא מבנה מאוד פשוט (כמו struct ב-C) של כמה ערכים צמודים אחד ליד השני ולא מפה של מפתח => ערך, לכן השם לגישה עובד רק ברמת השפה (המפרש יודע לתרגם שם של שדה למיקום במבנה) שזה בצורה סטטית (רק שם שמופיע בתוך הקוד בצורה סטטית מתורגם למיקום במבנה) ולא בצורה דינאמית (בזמן ריצה אין קוד שמתרגם שמות למיקומים)

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

      א תגובה 1 תגובה אחרונה
      4
      • yossizY yossiz

        @ארי כתב בלולאה על Public Type:

        יש דרך לעשות את זה?

        אחרי חיפוש, לכאורה אין דרך עם Type

        (מילות מפתח שהתשמשתי לחיפוש: vba udt dynamic field access ועוד וריאציות של זה. גם בדקתי את התיעוד של מייקרוסופט ועוד אתרים, ולא מצאתי שום ממצא מעניין)

        לכאורה הפתרון הוא להשתמש ב-Collection במקום ב-Type

        האמת שדי מובן לי למה אי אפשר עם Type, כנראה ש-Type הוא מבנה מאוד פשוט (כמו struct ב-C) של כמה ערכים צמודים אחד ליד השני ולא מפה של מפתח => ערך, לכן השם לגישה עובד רק ברמת השפה (המפרש יודע לתרגם שם של שדה למיקום במבנה) שזה בצורה סטטית (רק שם שמופיע בתוך הקוד בצורה סטטית מתורגם למיקום במבנה) ולא בצורה דינאמית (בזמן ריצה אין קוד שמתרגם שמות למיקומים)

        א מנותק
        א מנותק
        ארי
        כתב ב נערך לאחרונה על ידי
        #3

        @yossiz תודה!
        אחרי ששלחתי את השאלה, חשבתי גם עם Collection, ודווקא נראה לי שזה יצא מסודר יותר....
        שוב תודה!

        תגובה 1 תגובה אחרונה
        1
        תגובה
        • תגובה כנושא
        התחברו כדי לפרסם תגובה
        • מהישן לחדש
        • מהחדש לישן
        • הכי הרבה הצבעות


        בא תתחבר לדף היומי!
        • התחברות

        • אין לך חשבון עדיין? הרשמה

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