Hola Queria saber como puedo hacer que una funcion devuelva un variable de Type
Enum eDatos
IDdocumento
Nombre
Apellidos
End Enum
Type Tdatos
IDdocumento As Long
Nombre As String
Apellidos As String
End Type
Function Cliente (eDatos) As Tdatos
Select Case eDatos
Case IDdocumento
Cliente = 1
Case Nombre
Cliente = "Pedro"
Case Apellidos
Cliente = "Sánchez"
End Select
End Function
Lo que deseo con la funcion es que pasando algun opcion del eDatos me devuelva la informacion con su respectiva variable Type. Osea si elijo IDdocumento me devuela un long y si selecciono Nombre o Apellidos me devuelva un String.
Como de vincularle a que devulvea un Long o un String??
Option Explicit
Private Type TDatos
IDdocumento As Long
Nombre As String
Apellidos As String
End Type
private/public/global DatosCliente As TDatos ' // Public y Global en un modulo .Bas los demas en general
Private Sub Form_Load()
With DatosCliente
.IDdocumento = 12
.Apellidos = "Ortega A."
.Nombre = "Miguel Angel"
End With
With DatosCliente
Call Interaction.MsgBox(.IDdocumento)
Call Interaction.MsgBox(.Apellidos)
Call Interaction.MsgBox(.Nombre)
End With
End Sub
otra forma!¡.
Option Explicit
Private Type TDatos
IDdocumento As Long
Nombre As String
Apellidos As String
End Type
Private Priv_DatosCliente As TDatos ' // Public y Global es un modulo .Bas los demas en general
' // Friend permite tener acceso a Typos de una clase o datos que no esten estandarisados!¡.
Friend Property Let Datoscliente(ByRef Datos As TDatos)
Priv_DatosCliente = Datos
Debug.Print "Guardando Datos"
End Property
Friend Property Get Datoscliente() As TDatos
Datoscliente = Priv_DatosCliente
Debug.Print "Leyendo Datos"
End Property
Private Sub Form_Load()
Dim LocalData As TDatos
With LocalData
.IDdocumento = 12
.Apellidos = "Ortega A."
.Nombre = "Miguel Angel"
End With
Datoscliente = LocalData
With Datoscliente
Call Interaction.MsgBox(.IDdocumento)
Call Interaction.MsgBox(.Apellidos)
Call Interaction.MsgBox(.Nombre)
End With
End Sub
Sangriento Infierno lunar!¡.
Lo que deseo es que la información a devolver se genere en la Función no localmente..y me sale declarando la la Funcion a de volver como VARIANT. se dice que ocupa mucho más recursos pero es lo que hay, no?
Ejemplo:
Enum eDatos
IDdocumento
Nombre
Apellidos
End Enum
Function Cliente (eDatos) As Variant
Select Case eDatos
Case IDdocumento
Cliente = 1
Case Nombre
Cliente = "Pedro"
Case Apellidos
Cliente = "Sánchez"
End Select
End Function
Msgbox Cliente(IDdocumento) ' = 1 = Long
Msgbox Cliente(Nombres) ' = Pedro = String
Msgbox Cliente(Apellidos) ' = Sánchez = Strig