• Domingo 22 de Diciembre de 2024, 13:02

Autor Tema:  Moverse En Dao  (Leído 6805 veces)

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Moverse En Dao
« en: Jueves 23 de Febrero de 2006, 00:54 »
0
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
El pasado son solo recuerdos, el futuro son solo sueños

Sagutxo

  • Miembro MUY activo
  • ***
  • Mensajes: 320
    • Ver Perfil
Re: Moverse En Dao
« Respuesta #1 en: Jueves 23 de Febrero de 2006, 17:22 »
0
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
  1. Private Sub RegIni_Click()  'IR AL PRIMER REGISTRO
  2.   
  3. Data1.Recordset.MoveFirst
  4. CambiaBotones False, True
  5.  
  6.   If ValSon = 1 Then
  7.   Hablame.Speak "Primer registro"
  8.   End If
  9.  
  10. End Sub
  11.  
  12. ---------------------------------------------------------
  13.  
  14. Private Sub RegMas_Click()
  15.     
  16. Data1.Recordset.MoveNext
  17.       
  18.     If Data1.Recordset.EOF Then   'SI ESTABA EN EL ÚLTIMO REG
  19.     Data1.Recordset.MoveLast      'SITUO EN EL ÚLTIMO REG
  20.     CambiaBotones False, False
  21.  
  22.       If ValSon = 1 Then
  23.       Hablame.Speak "último registro"
  24.       End If
  25.  
  26.     Exit Sub
  27.     End If
  28.  
  29. CambiaBotones True, True
  30.  
  31. End Sub
  32.  
  33. ------------------------------------------------------------
  34.  
  35. Private Sub RegMenos_Click()
  36.     
  37. Data1.Recordset.MovePrevious
  38.       
  39.   If Data1.Recordset.BOF Then     'SI EStOY EN EL PRIMER REGISTRO
  40.   Data1.Recordset.MoveFirst        'SITUO EN PRIMER REGISTRO
  41.  
  42.   CambiaBotones False, True
  43.  
  44.     If ValSon = 1 Then
  45.     Hablame.Speak "Primer registro"
  46.     End If
  47.  
  48.   Exit Sub
  49.   End If
  50.  
  51. CambiaBotones True, True
  52.  
  53. End Sub
  54.  
  55. ----------------------------------------------------------------
  56.  
  57. Private Sub RegFin_Click()
  58.  
  59. Data1.Recordset.MoveLast
  60. CambiaBotones False, False
  61.     
  62.     If ValSon = 1 Then
  63.     Hablame.Speak "último registro"
  64.     End If
  65.  
  66. End Sub
  67.  

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:
Mi mujer tiene un físico bárbaro!!!. Einstein.

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Moverse En Dao
« Respuesta #2 en: Viernes 24 de Febrero de 2006, 01:00 »
0
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.
El pasado son solo recuerdos, el futuro son solo sueños

cpmario

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Moverse En Dao
« Respuesta #3 en: Viernes 24 de Febrero de 2006, 02:20 »
0
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
  1. Data1.Recordset.MoveFirst
  2.  

colocar algo así

Código: Text
  1. rsMyRecordset.MoveFirst
  2.  

Una vez que se mueve la base de datos, entonces cargas los cuadros de texto con la información con:

Código: Text
  1. txtMes = !NUM_MES
  2. dtpDate = !FECHA
  3. txtTipo = !TIPO
  4. Etc....
  5.  

 :comp:

ebolo

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Moverse En Dao
« Respuesta #4 en: Viernes 24 de Febrero de 2006, 14:19 »
0
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
  1.  
  2.    Dim cn As ADODB.Connection, rs As ADODB.Recordset
  3.    Dim consulta as string
  4.    Set cn = New ADODB.Connection
  5.    Set rs = New ADODB.Recordset
  6.    cn.Open "Provider=Microsoft.Jet.Oledb.4.0; Data Source=c:\turuta.mdb"
  7.    
  8. 'Para Abrir un recordset
  9.    Set rs.ActiveConnection = cn
  10.    
  11.    'para acceder a un campo concreto
  12.    consulta="SELECT CampoNombre FROM tutabla"
  13.    rs.Open consulta
  14.    msgbox rs!CampoNombre
  15.    
  16.    'Usa rs.EOF para saber si No te da resultados una consulta
  17.    if rs.EOF then
  18.       rs.close
  19.    End if  
  20.  
  21. 'Para añadir líneas a una tabla
  22.    consulta="INSERT INTO........."
  23.    cn.Execute consulta
  24.  
  25. 'Para modificar un dato de una tabla
  26.    consulta="UPDATE............"
  27.    cn.Execute consulta  
  28.  
  29. 'Cerramos cn y rs
  30.    rs.close
  31.    cn.close
  32.    set rs=nothing
  33.    set cn=nothing
  34.  
  35.  
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.

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Moverse En Dao
« Respuesta #5 en: Sábado 25 de Febrero de 2006, 16:20 »
0
Cita de: "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.
 
Gracias ebolo por tú consejo, pero como dije al principio empece con DAO y no con ADO.... :(  :(  :(  :( , voy suave y primero con lo facil.

Hola cpmario gracias por el consejo, ya lo habia intentado pero al reves, osea, así:

txtMes = !NUM_MES
dtpDate = !FECHA
txtTipo = !TIPO
rsMyRecordset.MoveFirst

Primero acomodaba los registros y después me movia y se me bloqueaba la aplicación, voy a tratar de esta forma y les cuento, gracias a todos, por todo.

PD. Alguien me puede ayudar con el MSFlexGrid?????

Gracias Chao.
El pasado son solo recuerdos, el futuro son solo sueños