Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Sub con parametros...

Estas en el tema de Sub con parametros... en el foro de Visual Basic clásico en Foros del Web. Hola Disculpe la molestia ... pero kisiera hacerles una consulta... actualmente estoy diseñando un Sistema y bueno tengo un form de departamento y alli tengo ...
  #1 (permalink)  
Antiguo 11/03/2009, 08:30
 
Fecha de Ingreso: febrero-2009
Mensajes: 101
Antigüedad: 15 años, 2 meses
Puntos: 0
Sub con parametros...

Hola

Disculpe la molestia ... pero kisiera hacerles una consulta... actualmente estoy diseñando un Sistema y bueno tengo un form de departamento y alli tengo las funciones principales como los botones de primero, anterior. siguiente y ultimo ... asi como nuevo,modificar,eliminar,consultar pero resulta que en los botones de navegacion (primero, anterior. siguiente y ultimo) tienen algo en comun que es mostrar los datos desde la bd entonces alli siempre se repite este codigo:

Private Sub btnPrimero_Click()
Record.MoveFirst
TextCodigo.Text = CStr(Record.Fields("id_departamento").Value)
TextNombre.Text = CStr(Record.Fields("nom_departamento").Value)
TextDireccion.Text = CStr(Record.Fields("dir_departamento").Value)
TextDescripcion.Text = CStr(Record.Fields("descr_departamento").Value)
TextDireccionGral.Text = CStr(Record.Fields("nom_departamento").Value)
End Sub

Private Sub btnAnterior_Click()
If Record.AbsolutePosition <> 1 Then
Record.MovePrevious
TextCodigo.Text = CStr(Record.Fields("id_departamento").Value)
TextNombre.Text = CStr(Record.Fields("nom_departamento").Value)
TextDireccion.Text = CStr(Record.Fields("dir_departamento").Value)
TextDescripcion.Text = CStr(Record.Fields("descr_departamento").Value)
TextDireccionGral.Text = CStr(Record.Fields("nom_departamento").Value)
End If
End Sub

Private Sub btnSiguiente_Click()
If Record.RecordCount <> Record.AbsolutePosition Then
Record.MoveNext
TextCodigo.Text = CStr(Record.Fields("id_departamento").Value)
TextNombre.Text = CStr(Record.Fields("nom_departamento").Value)
TextDireccion.Text = CStr(Record.Fields("dir_departamento").Value)
TextDescripcion.Text = CStr(Record.Fields("descr_departamento").Value)
TextDireccionGral.Text = CStr(Record.Fields("nom_departamento").Value)
' End If
End Sub

Private Sub btnUltimo_Click()
Record.MoveLast
TextCodigo.Text = CStr(Record.Fields("id_departamento").Value)
TextNombre.Text = CStr(Record.Fields("nom_departamento").Value)
TextDireccion.Text = CStr(Record.Fields("dir_departamento").Value)
TextDescripcion.Text = CStr(Record.Fields("descr_departamento").Value)
TextDireccionGral.Text = CStr(Record.Fields("nom_departamento").Value)
End Sub

entonces yo kisiera hacer un modulo que me permita refrescar los datos que voy a mostrar... asi que probe con este modulo:

Modulo Cargar()
Sub CargarDatos(Txt1 As Object, Txt2 As Object, Txt3 As Object, Txt4 As Object, Txt5 As Object)

TextCodigo = Text1.Text(CStr(Record.Fields("id_departamento").V alue))
TextNombre = Text2.Text(CStr(Record.Fields("nom_departamento"). Value))
TextDireccion = Text3.Text(CStr(Record.Fields("dir_departamento"). Value))
TextDescripcion = Text4.Text(CStr(Record.Fields("descr_departamento" ).Value))
TextDireccionGral = Text5.Text(CStr(Record.Fields("nom_departamento"). Value))

End Sub

y cuando llamo al modulo en el form de departamento lo hago de la siguiente manera:

Private Sub btnSiguiente_Click()
If Record.RecordCount <> Record.AbsolutePosition Then
Record.MoveNext
Cargar.CargarDatos TextCodigo, TextNombre, TextDireccion, TextDescripcion, TextDireccionGral
End If
End Sub

los TextCodigo, TextNombre,TextDireccion,TextDescripcion y TextDireccionGral son las cajas de texto que tengo en mi form de departamento. el Record lo declaro en el form de departamento pero aun asi no consigo que funcione... solo kisiera saber si es la manera correcta de hacer el modulo... o si estoy haciendo la asignacion incorrecta... me sale este error Error 424 Se rekiere un objeto....

De antemano muchas gracias... y espero que me puedan ayudar

Gracias
  #2 (permalink)  
Antiguo 11/03/2009, 08:42
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Sub con parametros...

Debería ser así:
Código vb:
Ver original
  1. Txt1.Text = CStr(Record.Fields("id_departamento").Value)
  2. Txt2.Text = CStr(Record.Fields("nom_departamento").Value)
  3. Txt3.Text = CStr(Record.Fields("dir_departamento").Value)
  4. Txt4.Text = CStr(Record.Fields("descr_departamento").Value)
  5. Txt5.Text = CStr(Record.Fields("nom_departamento").Value)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 11/03/2009, 11:50
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: Sub con parametros...

Hola Fiorella estas trabajando con programacion Ado? si es asi abres tu tabla de esta manera

en el load:

Código PHP:
Private Sub Form_Load()
rs.CursorType adOpenDynamic
rs
.Open "tabla"CNadOpenKeysetadLockOptimistic
End Sub 

luego un escribe un sub que llene las cajas de texto como ejemplo

Código PHP:
Sub llena()
Txt1.Text  "" rs(0)
Txt2.Text  "" rs(1)
Txt3.Text  "" rs(2)
Txt4.Text  "" rs(3)
Txt5.Text  "" rs(4)
End Sub 
y por ultimo agregas 4 botones y le pones el mismo nombre en este caso yo puse de nombre cdmrecorre y creas un array con esos botones y el codigo el siguiente.


Código PHP:
Private Sub cdmrecorre_Click(Index As Integer)
If 
rs.RecordCount 0 Then
    Select 
Case Index
        
Case 0
            rs
.MoveFirst
            
        
Case 1
            rs
.MovePrevious
            
If rs.BOF Then
                rs
.MoveFirst
            End 
If
            
        Case 
2
            rs
.MoveNext
            
If rs.EOF Then
                rs
.MoveLast
            End 
If
            
        Case 
3
            rs
.MoveLast
            
    End Select
    Call llena
End 
If
End Sub 
de esta manera no repites el codigo par llenar las cajas de texto, espero te ayude en algo el codigo y si tienes algun problema escribe a mi correo que esta en mi perfil.


Saludos.


Gino'FL

Última edición por ginitofl; 11/03/2009 a las 11:51 Razón: correccion
  #4 (permalink)  
Antiguo 11/03/2009, 14:09
 
Fecha de Ingreso: febrero-2009
Mensajes: 101
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Sub con parametros...

Hola Chicos... Saben que logre solucionar el problema... despues de leer en varios foros me di cuenta que el error 424 era porque tenia que pasarle en recordset tambien por parametro asi:

Sub CargarDatos(Txt1 As Object, Txt2 As Object, Txt3 As Object, Txt4 As Object, Txt5 As Object, Rs As ADODB.Recordset)
Txt1.Text = CStr(Rs.Fields("id_departamento").Value)
Txt2.Text = CStr(Rs.Fields("nom_departamento").Value)
Txt3.Text = CStr(Rs.Fields("dir_departamento").Value)
Txt4.Text = CStr(Rs.Fields("descr_departamento").Value)
Txt5.Text = CStr(Rs.Fields("nom_departamento").Value)

End Sub

Muchas gracias a David el grande por correjir mi error de que estaba escribiendo Text1 en vez de Txt1 y a Ginitofl por su codigo de Sub cdmrecorre_Click(Index As Integer)

Saluditos y gracias por su colaboracion

Fiorella
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:27.