Programación General > Visual Basic 6.0 e inferiores

 Moverse En Dao

(1/2) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa