הוספת רשומה?

הוספת רשומה?

כיצד ניתן להוסיף רשומה? כלומר איך אני יכול להגדיר משתנה שיהיו לו כמה שדות? לדוגמה, אם אני מעוניין להגיד מתשנה student שיכלול גם שם, גם גיל וגם ת.ז. הכוונה היא שאני אוכל להתייחס לשדות שונים, למשל: student.name = "MOSHE" student.age = 30 student.id = 123456789 איך אני מגדיר כזה משתנה? תודה!
 

davidea

New member
שתי שיטות:

האחת "הנכונה"... הרי יש לך RecordSet שבאמצעותו התחברת לטבלה שלך. נניח שקוראים ל RecordSet שלך StudentsSet רשום פקודה כזו:
with StudentsSet .Addnew !name = "MOSHE" !age = 30 !id = 123456789 .Update end with​
הדרך השניה היא ליצור Type הכולל את שלשת השדות, להזין ערכים למשתנה המבוסס עליו ואז להעביר אל ה RecordSet לצורך הוספה לקובץ. מיותר מאד אבל הנה:
Option Explicit Private Type MyStudentType name As String age As Single id As Double End Type Private Sub Command1_Click() Dim StudentsSet Dim MyStudent As MyStudentType With MyStudent .name = "MOSHE" .age = 30 .id = 123456789 End With With StudentsSet .Addnew !name = MyStudent.name !age = MyStudent.age !id = MyStudent.id .Update End With End Sub​
לבחירתך.
 
המון המון תודה!אבל אםאני רוצה מערך?

דבר ראשון, ממש תודה! עזרת המון. עכשיו, נניח שאני מעוניין במערך כזה. (כלומר נגיד שאני רוצה לשמור מידע כזה על כל תלמיד.) ניסיתי: for i = 1 to 10 with StudentsSet(i) Addnew. "name = "MOSHE! age = 30! id = 123456789! Update end with. next i (יש קצת בעיה עם הרווחים, אני מקווה שברור מה ניסיתי לעשות...) וזה כמובן לא עבד..... אז מה עושים בשביל מערך?? תודה! ועוד שאלה, נניח אחרי שאני מסיים לשים ערכים במערך כזה, איך פונים לשדה בתוך רשומה? ניתן לכתוב למשל: if student.name = "moshe" then.... ??? ושוב - המון המון המון תודה!!!
 

davidea

New member
הבנתי כעת. המילה "רשומה"

מתייחסת בדרך כלל לטבלאות נתונים היושבים בטבלה של בסיס נתונים (לדוגמה טבלה בקובץ אקסס).הדוגמה שאת רוצה הינה מערך והינה הקוד שממלא את הנתונים (במקרה זה כל העשרה זהים):
Option Explicit Private Type MyStudentType name As String age As Single id As Double End Type Private Sub Command1_Click() Dim MyStudent(10) As MyStudentType 'בסוגרים גודל המערך Dim MyLoop As Integer For MyLoop = 1 To 10 With MyStudent(MyLoop) .name = "MOSHE" .age = 30 .id = 123456789 End With Next MyLoop End Sub​
ניתן למשל להציג את השם של השמיני בדרך זו:
msgbox MyStudent(8).Name​
 
למעלה