Programación General > Visual Basic 6.0 e inferiores
Moverse En Dao
RadicalEd:
Hola chicos de SoloCodigo, sigo con lo de la DB en DAO, ahora quisiera saber como asignar los métodos MoveFirst, MovePrevious, MoveNext y MoveLast en varios controles de texto, los mismos que la consulta anterior:
!NUM_MES = txtMes
!FECHA = dtpDate
!TIPO = txtTipo
!AUDITOR = txtAuditor
!COD_ZONA = txtZona
!EXCEPCIONES = chkExep.Value
!COD_EXEPCION = txtExcep
!VLR_AJUSTE = txtVrAjuste
!PDV = txtMostrador
!ENCARGADO = txtPDV
!COMPROMISO = txtCompro
He tratado pero se me bloquea la aplicación y no me corre, pero si lo asigno a una variable UN SOLO CAMPO si se muestra y se mueve, si es más de un campo no me muestra nada.
Ahora otra pregunta??????
Necesito un ejemplo si pueden :whistling: :whistling: , si quieren o mejor me explican, de los métodos FindFirst, FindPrevious, FindNext y FindLast en un MSFlexGrid o MSHFlexGrid, para las consultas y todo y así, con los mismos campos.
PD. Don't Worry zeekel, solamente te mostraba que esa parte estaba como un comentario.
Gracias por todo, pero es que no manejo DB siempre las odie y ahora me toca...
Chao
Sagutxo:
Salu2, a ver si te sirve esto.
Comprueba principio y final para mover registros, es muy sencillo, si no me explico lo suficiente si quieres te mando la aplicación.
--- Código: Text ---Private Sub RegIni_Click() 'IR AL PRIMER REGISTRO Data1.Recordset.MoveFirstCambiaBotones False, True If ValSon = 1 Then Hablame.Speak "Primer registro" End If End Sub --------------------------------------------------------- Private Sub RegMas_Click() Data1.Recordset.MoveNext If Data1.Recordset.EOF Then 'SI ESTABA EN EL ÚLTIMO REG Data1.Recordset.MoveLast 'SITUO EN EL ÚLTIMO REG CambiaBotones False, False If ValSon = 1 Then Hablame.Speak "último registro" End If Exit Sub End If CambiaBotones True, True End Sub ------------------------------------------------------------ Private Sub RegMenos_Click() Data1.Recordset.MovePrevious If Data1.Recordset.BOF Then 'SI EStOY EN EL PRIMER REGISTRO Data1.Recordset.MoveFirst 'SITUO EN PRIMER REGISTRO CambiaBotones False, True If ValSon = 1 Then Hablame.Speak "Primer registro" End If Exit Sub End If CambiaBotones True, True End Sub ---------------------------------------------------------------- Private Sub RegFin_Click() Data1.Recordset.MoveLastCambiaBotones False, False If ValSon = 1 Then Hablame.Speak "último registro" End If End Sub
Espero haberme explicado.
-------------------------------------------
Respecto a que se te bloquea la aplicación ¿NO tendrás nuevamente puesto el Resume Next?, por da la sensación de que hay un error, y como NO comentas que te de ninguno, pos no se :).
:comp: :smartass: :comp:
RadicalEd:
Hola Sagutxo, muchas gracias por tú código, pero el problema es que no estoy usando el control Data (LO ODIO), estoy usando la referencia DAO 3.60, el Data lo he manejado y ya no me gusta, lo estoy haciendo todo por código.
Gracias Chao.
cpmario:
Lo que se necesita para para moverse por el DataControl o por código es muy similiar por ejemplo en el código de Sagutxo debes de cambiar todas las referencias del data control por la variable Recordset, en este caso:
--- Código: Text ---Data1.Recordset.MoveFirst
colocar algo así
--- Código: Text ---rsMyRecordset.MoveFirst
Una vez que se mueve la base de datos, entonces cargas los cuadros de texto con la información con:
--- Código: Text ---txtMes = !NUM_MES dtpDate = !FECHAtxtTipo = !TIPOEtc....
:comp:
ebolo:
Hola Radicaled, ya que estas medio empezando con las bd, te aconsejo que aprendas a usar ADO, porque es mucho más rápido el acceso a los datos, tanto cuando tienes que añadir datos como modificarlos.
Por ADO la conexión a bd de access la hago de esta forma:
--- Código: Text --- Dim cn As ADODB.Connection, rs As ADODB.Recordset Dim consulta as string Set cn = New ADODB.Connection Set rs = New ADODB.Recordset cn.Open "Provider=Microsoft.Jet.Oledb.4.0; Data Source=c:\turuta.mdb" 'Para Abrir un recordset Set rs.ActiveConnection = cn 'para acceder a un campo concreto consulta="SELECT CampoNombre FROM tutabla" rs.Open consulta msgbox rs!CampoNombre 'Usa rs.EOF para saber si No te da resultados una consulta if rs.EOF then rs.close End if 'Para añadir líneas a una tabla consulta="INSERT INTO........." cn.Execute consulta 'Para modificar un dato de una tabla consulta="UPDATE............" cn.Execute consulta 'Cerramos cn y rs rs.close cn.close set rs=nothing set cn=nothing Debes tener activada la referencia Microsoft Activex Data Objets 2.8 Library (ó la 2.6, 2.7...)
Buscaté un manual de SQL, que hay muchos, para ver como se hacen las sentencias de SQL, ó aprovecha, como yo, el que viene con el access, y te será más fácil hacer las SQL.
Navegación
[#] Página Siguiente
Ir a la versión completa