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

MovePrevious (Visual Basic)

Estas en el tema de MovePrevious (Visual Basic) en el foro de Visual Basic clásico en Foros del Web. Hola!!! Tengo un problema estoy jalando una base de datos en access a Visual Basic, ya hago consultas generales en un MSflexigrid y altas pero ...
  #1 (permalink)  
Antiguo 06/08/2004, 18:36
 
Fecha de Ingreso: septiembre-2003
Ubicación: Morelos
Mensajes: 83
Antigüedad: 20 años, 6 meses
Puntos: 0
MovePrevious (Visual Basic)

Hola!!!

Tengo un problema estoy jalando una base de datos en access a Visual Basic, ya hago consultas generales en un MSflexigrid y altas pero también quiero hacer consultas individuales registro por registro, y ya medio lo hago hacia adelante con movenext pero hacia atrás nadamás no puedo me dice que esa acción no esta permitida no sé si tengo que darle alguna parámetro o algo al momento de abrir la base de datos, aqui está mi código a ver si alguien me puede ayudar.


Dim conexion As ADODB.Connection
Dim cadena_SQL As String
Dim cadena_c As String
cadena_c = "DSN=Nike;uid=;pwd=;"
Set conexion = New ADODB.Connection
conexion.Open cadena_c
Set consulta = New ADODB.Command
Set consulta.ActiveConnection = conexion
cadena_SQL = "select * from Avion"
consulta.CommandText = cadena_SQL
Set res = consulta.Execute()

Botón Siguiente
Private Sub Siguiente_Click()
res.MoveNext
If res.EOF = True Then
Siguiente.Enabled = False
Else
For x = 0 To cont
Text1(x).Text = res.Fields(x)
Next
End If
End Sub

Botón Anterior

Private Sub Anterior_Click()
res.MovePrevious
If res.BOF = TrueThen
Anterior.Enabled = False
else
For x = 0 To cont
Text1(x).Text = res.Fields(x)
Next
End If
End Sub


Gracias!!
  #2 (permalink)  
Antiguo 08/08/2004, 01:42
Avatar de aavg  
Fecha de Ingreso: abril-2002
Ubicación: Morelia México
Mensajes: 356
Antigüedad: 22 años
Puntos: 1
prueba lo siguiente

Hola Luz_per:

Mira aqui te envio un pequeño ejemplo de una manera que a mi me parece mucho mejor de la que lo estas programando, ya que para empezar los DSN dejan mucho que desear y son latosos, ya que en cada maquina que instales tu sistema debes de crearlos. Espero que te sirva y si tienes alguna duda te puedo enviar un ejemplo de codigo que te ayude un poco mas.

'PRIMERO te recomiendo que agregues esto en un módulo, para que lo puedas acceder desde cualquier formulario de tu proyecto

'Declaramos nuestras conexiones y recordsets
Dim Cnn As New ADODB.Connection
Dim Rst As New ADODB.Recordset

Sub main()
'Se abre la conexion
Cnn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\Prueba.mdb"
Cnn.Open
'Al poner la instruccion App.Path indicamos que la base de datos se encuentra en el mismo directorio que nuestro proyecto, en caso contrario indicale la ruta fisica de tu base de datos .. ejemplo:
'Cnn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Prueba.mdb"

'Inicializamos el recordset y abrimos la consulta
With Rst
.ActiveConnection = Cnn
.LockType = adLockReadOnly
.CursorType = adOpenStatic
.Open "Select * from Avion"
End With

Form1.Show 'Suponiendo que Form1 es tu formulario principal

End Sub

'Algo muy IMPORTANTE es que en tu proyecto vayas al Menu PROYECTO -> PROPIEDADES DE PROYECTO y en la opcion de OBJETO INICIAL elegir del combo la opcion SUB MAIN de lo contrario pega todo lo anterior en tu formulario principal y lo que esta en sub main ponselo antes al evento LOAD del formulario

'DESPUES EN TU FORMULARIO (Suponiendo que se llama Form1)

Private Sub Form_Load()
Set Grid.DataSource = Rst
Rst.MoveFirst

For x = 0 To cont
Text1(x).Text = Rst.Fields(x)
Next

End Sub

'BOTON SIGUIENTE

Private Sub Siguiente_Click()
Rst.MoveNext
If Rst.EOF = True Then
Siguiente.Enabled = False
Else
For x = 0 To cont
Text1(x).Text = Rst.Fields(x)
Next
End If
Anterior.Enabled = True
End Sub


'BOTON ANTERIOR

Private Sub Anterior_Click()
Rst.MovePrevious
If Rst.BOF = True Then
Anterior.Enabled = False
Else
For x = 0 To cont
Text1(x).Text = Rst.Fields(x)
Next
End If
Siguiente.Enabled = True
End Sub



Espero te haya sido de ayuda, cualquier pregunta no dudes en hacerla.
__________________
Abraham Velasco
Usuario # 516 en los Foros del Web.
El hombre no vale por lo que sabe, sino por lo que transmite
C'est parce qu'il y a un Dieu que nous sommes libres
  #3 (permalink)  
Antiguo 10/08/2004, 07:09
 
Fecha de Ingreso: abril-2004
Ubicación: caracas
Mensajes: 58
Antigüedad: 20 años
Puntos: 0
Private Sub primereg_Click() // ir al primer registro
If tcheque.EOF Then // tcheque es el recordset
MsgBox "No hay registros en la base de datos", vbExclamation, "Aviso"
Else
tcheque.MoveFirst // c va al primer registro
mostrar //procedimiento q muestra los datos
End If
End Sub

' *** PROCEDIMIENTO IR AL ANTERIOR REGISTRO ***
Private Sub anterior_Click()
If Not tcheque.BOF Then //anterior registro
tcheque.MovePrevious
If tcheque.BOF Then tcheque.MoveNext
mostrar
End If
End Sub

' *** PROCEDIMIENTO IR AL SIGUIENTE REGISTRO ***
Private Sub siguiente_Click()
If Not tcheque.EOF Then
tcheque.MoveNext
If tcheque.EOF Then tcheque.MovePrevious
mostrar
End If
End Sub

' *** PROCEDIMIENTO IR AL ULTIMO REGISTRO DE LA B.D.***
Private Sub ultreg_Click()
If tcheque.EOF Then
MsgBox "No hay registros en la base de datos", vbExclamation, "Aviso"
Else
tcheque.MoveLast
mostrar
End If
End Sub

espero q t sirva.. saludos
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 03:35.