VB6 Tutorial 56: User Defined Types
No attachments for this post
The user defined type in Visual Basic 6 is a compound data structure. It holds several variables of different data types. After defining a UDT, you can assign values to the member variables of the UDT.
Defining the user defined type
Before using the UDT in your code, you must first define it using the Type directive in the Declarations section of a module, for example, a form module. The following block of code is called the Type structure.
Private Type BookDetails 'in Declarations section title As String author As String pages As Long End Type
After defining the UDT variable, declare variables of that type.
Private Sub cmdSetValue_Click() Dim book1 As BookDetails 'Declaring book1 as the type BookDetails 'Assigning values book1.author = "Balagurusamy" book1.title = "C Programming" book1.pages = 600 End Sub
Use "With...End with" structure for the better readability of your code. It eases up the structure.
Dim book1 As BookDetails With book1 .author = "Balagurusamy" .title = "C Programming" .pages = 600 End With With book1 Print .author, .pages, .title End With
Sub structure of a user defined type
The Type structure can also have sub structures. In this case, you have to access the nested structure using the nested "With...End With" structure.
'Sub structure of UDT Private Type AddressDetails city As String state As String pin As Long ph_no As String End Type Private Type StudentDetails name As String stream As String DepartmentId As String address As AddressDetails End Type Private Sub cmdSetDetails_Click() Dim student1 As StudentDetails 'Nested With...End With structure With student1 .name = "XYZ" .stream = "Computer Science" .DepartmentId = "C900" MsgBox .name & vbTab & .stream & vbTab & .DepartmentId With .address .city = "London" .state = "abc gdf" .pin = 77764 .ph_no = "998765432" MsgBox .city & vbTab & .ph_no & vbTab & .pin & vbTab _ & .state End With End With End Sub
Comments on this post
No comments have been added for this post.
You must be logged in to make a comment.