Pregunta:

23/07/2003 - 17:46 por Scott | Informe spam
Hola grupo:
tengo una consulta he leido un en articulo que se debe evitar a toda costa
el uso de variables de tipo variant ya que consumen mas recursos y hacen mas
lentos los procesos y bueno yo lamentablemete en mi aplicacion utilizo este
tipo de variable lo que pasa es que yo hago lo siguiente:
creo una clase:

en (general) declaraciones de mi modulo clase
Public DeVaProv As Variant
****************
y en modulo en general declaraciones
Public ManDaProv As Variant
***************
Public Sub Cls_Proveedor()
Dim Dlg_Proveedor As New FrmProveedor2
Load Dlg_Proveedor
With Dlg_Proveedor
.Texto1(0).Text = ManDaProv(1)
.Texto1(1).Text = ManDaProv(2)
.Texto1(2).Text = ManDaProv(3)
.Texto1(3).Text = ManDaProv(4)
.Texto1(4).Text = ManDaProv(5)
.Texto1(5).Text = ManDaProv(6)
.Texto1(6).Text = ManDaProv(7)
.Texto1(7).Text = ManDaProv(8)
.Caption = ManDaProv(9)
.Show vbModal **ejecuta un formulario modalcon los text vacios
Acept = .Acept
If Acept Then ** if si llena todos los text estos datos se
devuelven
DeVaProv = Array(.Texto1(0).Text, .Texto1(1).Text,
.Texto1(2).Text, .Texto1(3).Text, .Texto1(4).Text, .Texto1(5).Text,
.Texto1(6).Text, .Texto1(7).Text)
End If
End With
Unload Dlg_Proveedor
End Sub
****************************
codigo del boton nuevode formulario:
Dim CodP As String
Dim ObjProv As New Class_Angel

ManDaProv = Array("", "", "", "", "", "", "", "", "", "Nuevo Proveedor")
With ObjProv
.Cls_Proveedor
If .Acept Then
CodP = "P" & Codigo("Select * From Proveedor", 3, "0")
SenProv = "Insert Into
Proveedor(PrvCod,PrvRaz,PrvDir,PrvPais,PrvCiu,PrvTelf,PrvCto1,PrvCto2,PrvTel
f1) Values('" & _
CodP & "','" & .DeVaProv(0) & "','" & .DeVaProv(1) &
"','" & .DeVaProv(2) & "','" & .DeVaProv(3) & "','" &
.DeVaProv(4) & "','" & .DeVaProv(5) & "','" & .DeVaProv(6) & "','" &
.DeVaProv(7) & "'
End With

Preguntas similare

Leer las respuestas

#1 Softjaen
23/07/2003 - 18:06 | Informe spam
"Scott" escribió:

he leido un en articulo que se debe evitar a toda costa el
uso de variables de tipo variant ya que consumen
mas recursos y hacen mas lentos los procesos



Hola, Scott:

El autor de ese artículo tiene muchísima razón: hay que evitar a toda costa
declarar variables tipo «Variant». De hecho, en VB .NET, el tipo de dato
«Variant» ha pasado a mejor vida:

VB6 --> Dim myVar As Variant
VB.NET --> Dim myVar As Object

yo lamentablemete en mi aplicacion utilizo este
tipo de variable lo que pasa es que yo hago lo siguiente:
creo una clase:

en (general) declaraciones de mi modulo clase
Public DeVaProv As Variant
****************
y en modulo en general declaraciones
Public ManDaProv As Variant
***************



Viendo el código fuente que has publicado, en ese caso no tienes más remedio
que declarar las dos variables como «Variant», ya que ambas variables
guardan una matriz devuelta por la función «Array»:

ManDaProv = Array("", "", "", "", "", "", "Nuevo Proveedor")

DeVaProv = Array(.Texto1(0).Text, .Texto1(1).Text, ...)

Un saludo.

Enrique Martínez
[MS MVP - VB]
Respuesta Responder a este mensaje
#2 Scott
23/07/2003 - 18:36 | Informe spam
Gracias Sofjaen:
creo que estamos deacuerdo pero el problema es que si hechas un ojo a mi
correo yo trabajo con formularios modales y lo trabajo de esa forma la
verdad que quisiera conocer otra forma de poder trabajar con formularios
modales poder enviar y recibir datos sin problemas
gracias po la ayuda
"Softjaen" escribió en el mensaje
news:

"Scott" escribió:

> he leido un en articulo que se debe evitar a toda costa el
> uso de variables de tipo variant ya que consumen
> mas recursos y hacen mas lentos los procesos

Hola, Scott:

El autor de ese artículo tiene muchísima razón: hay que evitar a toda


costa
declarar variables tipo «Variant». De hecho, en VB .NET, el tipo de dato
«Variant» ha pasado a mejor vida:

VB6 --> Dim myVar As Variant
VB.NET --> Dim myVar As Object

> yo lamentablemete en mi aplicacion utilizo este
> tipo de variable lo que pasa es que yo hago lo siguiente:
> creo una clase:
>
> en (general) declaraciones de mi modulo clase
> Public DeVaProv As Variant
> ****************
> y en modulo en general declaraciones
> Public ManDaProv As Variant
> ***************

Viendo el código fuente que has publicado, en ese caso no tienes más


remedio
que declarar las dos variables como «Variant», ya que ambas variables
guardan una matriz devuelta por la función «Array»:

ManDaProv = Array("", "", "", "", "", "", "Nuevo Proveedor")

DeVaProv = Array(.Texto1(0).Text, .Texto1(1).Text, ...)

Un saludo.

Enrique Martínez
[MS MVP - VB]


Respuesta Responder a este mensaje
#3 Softjaen
23/07/2003 - 18:51 | Informe spam
"Scott" escribió:

quisiera conocer otra forma de poder trabajar con formularios
modales poder enviar y recibir datos sin problemas



Si utilizas la función «Array», como te he dicho anteriormente, necesitas
declarar variables tipo «Variant».

Si deseas pasar datos a formularios modales, declara las variables «Public»
en un módulo *.bas con el tipo de dato que corresponda (String, Integer,
Long, etc.), de ésta forma las variables estarán disponibles en cualquier
módulo del proyecto.

Enrique Martínez
[MS MVP - VB]
Respuesta Responder a este mensaje
#4 Eduardo A. Morcillo [MS MVP]
23/07/2003 - 19:08 | Informe spam
Si deseas pasar datos a formularios modales, declara las variables
«Public» en un módulo *.bas con el tipo de dato que corresponda
(String, Integer, Long, etc.), de ésta forma las variables estarán
disponibles en cualquier módulo del proyecto.



No puede ser. Voy a hacer que te quiten el titulo de MVP por recomendar el
uso de variables globales ;-)

Nada de variables globales innecesarias. Declara propiedades en el
formulario y utilizalas antes y despues de mostrar el formulario. Por
ejemplo:

En el formulario:

Public Property Get Nombre As String
Nombre = txtNombre.Text
End Property

Public Property Let Nombre(Value As String)
txtNombre.Text = Value
End Property

En donde llamas al formulario:

Dim oFrmModal As MiFormModal

Set oFrmModal = New MiFormModal

oFrmModal.Nombre = "Mi Nombre"
oFrmModal.Show vbModal
MsgBox oFrmModal.Nombre

Set oFrmModal = Nothing

Eduardo A. Morcillo [MS MVP - VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#5 Scott
23/07/2003 - 19:45 | Informe spam
Gracias Eduardo:
Entonces la mejor manera de poder trabajar con datos es crear propiedades
dentro del formulario modal con esto mis aplicaciones podran mucho mas
seguras y estables ahora otra consulta he leido que todo programador si se
considera programador debe empezar su codigo con (option explicit) pero dime
esto debo declararlo una sola vez en cada formulario en declaraciones
generales esto en todos los formularios

"Eduardo A. Morcillo [MS MVP]" <emorcilloATmvps.org> escribió en el mensaje
news:
> Si deseas pasar datos a formularios modales, declara las variables
> «Public» en un módulo *.bas con el tipo de dato que corresponda
> (String, Integer, Long, etc.), de ésta forma las variables estarán
> disponibles en cualquier módulo del proyecto.

No puede ser. Voy a hacer que te quiten el titulo de MVP por recomendar el
uso de variables globales ;-)

Nada de variables globales innecesarias. Declara propiedades en el
formulario y utilizalas antes y despues de mostrar el formulario. Por
ejemplo:

En el formulario:

Public Property Get Nombre As String
Nombre = txtNombre.Text
End Property

Public Property Let Nombre(Value As String)
txtNombre.Text = Value
End Property

En donde llamas al formulario:

Dim oFrmModal As MiFormModal

Set oFrmModal = New MiFormModal

oFrmModal.Nombre = "Mi Nombre"
oFrmModal.Show vbModal
MsgBox oFrmModal.Nombre

Set oFrmModal = Nothing

Eduardo A. Morcillo [MS MVP - VB]
http://www.mvps.org/emorcillo


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida