Access - Dudas Recordset

 
Vista:
sin imagen de perfil
Val: 24
Ha aumentado su posición en 6 puestos en Access (en relación al último mes)
Gráfica de Access

Dudas Recordset

Publicado por Pere (22 intervenciones) el 24/04/2020 10:08:54
Buenos dias,
tengo muy poca experiencia en Recordsets.
Necesito cargar unos 10 campos de un registro de una tabla en una matriz.
Creo que lo mejor es hacerlo mediante un recordset.
Aplicando ejemplos cargo el recorset sin problemas, pero mi duda es el bucle que recorre los campos de un registro concreto.
Sub CONECTA_ACTUAL()

LO que he hecho
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim conexio As New Connection                       'creamos una conexion utilizando el objeto connection'
Set conexio = CurrentProject.Connection          'establecemos conexion con la base actual
Dim instruccio  As String                                    'declaramos variable de tipo texto
instruccio = "select * from T_parametres"           'almacenamos en la variable de tipo texto una instruccio sql
Dim mirecorset As New Recordset                     'creacion de objeto recorset tabla virtual
mirecorset.Open instruccio, conexio                   'abrir el recorset utilizando la conexion activa e insertar  la informacion sql
Do Until mirecorset.EOF                                 'recorre el recorset hasta que llegue al final (EOF)
 Debug.Print mirecorset!ref_client; ‘
mirecorset.MoveNext                                'avanza un registro o linea dentro del recorset
Loop
Do Until mirecorset.EOF
mirecorset.Close                                    'cierra recorset
Set mirecorset = Nothing                            'libera la memoria de los recursos utilizados en el recorset
conexio.Close                                    'cierra la conexion
Set conexio = Nothing                            'libera los recursos utilizados en la conexion
End Sub

aqui me recorre todos los campos ref_client, pero quiero recorrer todo un registro...Como se hace?
Gracias por adelantado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Dudas Recordset

Publicado por jose (830 intervenciones) el 24/04/2020 16:18:17
1
2
3
4
5
6
7
8
9
10
11
Do Until mirecorset.EOF
                              'recorre el recorset hasta que llegue al final (EOF)
for n=1 to numero_de datos_regisro
      Debug.Print mirecorset!ref_client; ‘
       Debug.Print mirecorset!otro_dato1; ‘
      Debug.Print mirecorset!otro_dato2; ‘
       Debug.Print mirecorset!nombre-dato_daton; ‘
       .....
next n
mirecorset.MoveNext                                'avanza un registro o linea dentro del recorset
Loop


OTRA FORMA CON ADO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
REM  CON  ADO------------------------------------------
'Dim rs As Recordset
'Dim CON As Connection
 
'CREA RS COMO RECORDSET
Set rs = CreateObject("ADODB.RecordSet")
Set CON = Application.CurrentProject.Connection
     C10 = ""
 
 
       C10 = C10 & " select  *  from  NOMBRE-TABLA "
 
 
   consulta = c10
 
rs.Open consulta, CON, adOpenDynamic, adLockOptimistic
 
If rs.EOF = False Then
                rs.MoveLast
                rs.MoveFirst
        End If
 
 
 Rem  bucle de recordset  para  saber en Numero de  registros
                        CUENTA = 0
                        Do While rs.EOF = False
                            CUENTA = CUENTA + 1
                        rs.MoveNext
                        Loop
 
 
Texto55 = RS.Fields("ID-T060").Value        ------VER CONTENIDO POR NOMBRE DEL CAMPO   DEL RECORDSET ACTUAL
Texto55 = RS.Fields(6).Value                           ---- VER CONTENIDO POR EL NUMERO DEL CAMPO    DEL RECORDSET ACTUAL
 
 
RS.CLOSE   : PARA CERRAR EL RECORDSET
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 24
Ha aumentado su posición en 6 puestos en Access (en relación al último mes)
Gráfica de Access

Dudas Recordset

Publicado por Pere (22 intervenciones) el 25/04/2020 09:15:21
Gracias por la respuesta José,
he intentado aplicar tu ejemplo en ado a mis necesidades pero no me acaba de funcionar, tengo (creo) las librerias cargadas para poder trabajar en ado, pero me sale error en la linea:
Set rs = CreateObject("ADODB.RecordSet") (Set no me lo reconoce) y si lo quito me sale luegoerror en el objeto: ADODB.RecordSet..

Gracias de antemano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 24
Ha aumentado su posición en 6 puestos en Access (en relación al último mes)
Gráfica de Access

Dudas Recordset

Publicado por Pere (22 intervenciones) el 28/04/2020 08:48:42
Buenos dias Jose Manuel.
las 2 librerias ya las tenia instaladas.
Lo he solucionado, en mi caso (dado que no he trabajado con recordset) me gusta aplicar ejemplos para mi caso.
Mi problema es que los recordset se utiliza mas que nada para recorrer un campo de todos los registros y en mi caso queria cargar varios campos de un registro en vba (como una consulta pero en vba)
La solución és una vez tenemos cargado el recordset en el objeto rs (ejemplo proporcionado Jose)los campos accedo: rs!nombrecampo1,rs!nombre_de campo2..etc

GRACIAS POR LA AYUDA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar