Access - Bucle recorrer tabla

 
Vista:
sin imagen de perfil

Bucle recorrer tabla

Publicado por Miguel (29 intervenciones) el 09/11/2014 11:42:48
Hola, en un formulario continuo tengo dos campos (Fuente y elLink), necesito recorrer uno de ellos y poner los datos modificados en el otro campo. Tengo un código que lo hace sólo para uno, cómo podría hacerlo para que con un bucle lo haga para todos los registros? El código es:

Private Sub Comando12_Click()
Dim elTexto As String
Dim elCaracter As String
Dim largoTexto As Long
Dim i As Long, j As Long
elTexto = Nz(Me.Fuente.Value, "")
If elTexto = "" Then Exit Sub
largoTexto = Len(elTexto)
For i = 1 To largoTexto
elCaracter = Mid(elTexto, i, 1)
If elCaracter = "#" Then
j = j + 1
Exit For
Else
j = j + 1
End If
Next i
Me.elLink.Value = Right(elTexto, (largoTexto - j))
End Sub
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
Imágen de perfil de Toni

Bucle recorrer tabla

Publicado por Toni (129 intervenciones) el 15/11/2014 20:51:46
Hola Miguel

Creo que podrías hacerlo creando una consulta de actualización y luego si quieres mandarla a ejecutar mediante código, esa sería una opción.

La otra que tu pides, creo, que por código sería más o menos ási:

Sustituye NOMBRETABLA por el nombre de la tabla en cuestión



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
Dim dbTemporal As DAO.Database
 
    Dim rsREGISTROS As DAO.Recordset
 
    Set dbTemporal = CurrentDb
 
    'Seleccionamos toda la tabla, aunque también podrías seleccionar sólo una parte con una
   'consulta, etc.. 
    Set rsREGISTROS = dbTemporal.OpenRecordset("NOMBRETABLA", dbOpenDynaset)
 
    'Por si acaso
    rsREGISTROS.MoveLast
    rsREGISTROS.MoveFirst
 
    'Ahora empezamos a recorrer el conjunto de registros
    Do While Not rsREGISTROS.EOF
          'Ahora estamos en el primer registro  
          '....aqui iría todo tu código,  teniendo en cuenta que para referirte a cada campo de tu tabla debes
          'hacerlo así:
 
          rsREGISTROS!Fuente=.....lo que sea...
          rsREGISTROS!elLink
 
         'y para asegurarte guardar cambios en el registro poner al final de la modificación
         rsREGISTROS.update
 
           rsREGISTROS.MoveNext   'siguiente registro 
    doevents
    Loop
 
     'limpiamos y liberamos
    rsREGISTROS.Close
    dbTemporal.Close
    Set rsREGISTROS = Nothing
    Set dbTemporal = Nothing


Espero que te funcione ya que no he podido probarlo y puede tener algun error de sintaxis.

Saludos
Toni
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

Bucle recorrer tabla

Publicado por JULIO CESAR (1 intervención) el 17/09/2019 13:21:19
Funciona muy bien muchas gracias, me fue de utilidad.
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

Bucle recorrer tabla

Publicado por Blas Silva (1 intervención) el 29/08/2020 22:14:33
Que genio sos, te mereces el cielo
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

Bucle recorrer tabla

Publicado por Samuel (1 intervención) el 03/12/2021 13:03:48
Desarrolle el Bucle y cuando voy a Actualizar con el Update, da un error 3020
Update sin Edti o Addnew.
coloque estos antes del update pero igual me da error
If T3OBSERVA = "" Then
.Edit
rsREGISTROS!T3OBSERVA = "PRUEBA" 'Asignamos valores a los campos
rsREGISTROS.Update 'Grabamos el registro
End If
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

Bucle recorrer tabla

Publicado por Anonimo (3316 intervenciones) el 03/12/2021 14:04:21
Solo se muestra una parte del código y le faltan detalles importantes.

En el IF ¿a que hace referencia el objeto 'T3OBSERVA'? ....
Puede ser:
.- un cuadro de texto del formulario ===>> IF Me.T3OBSERVA Then
.- una variable sea publica/privada ===>>> IF T3OBSERVA Then
.- uno de los campos de la tabla a actualizar ===>>> IF rsREGISTROS!T3OBSERVA = "" Then
.- (con Whit) ===> IF !T3OBSERVA = "" Then

Supongamos que Access la encuentra y se cumple que ejecuta el contenido:
.Edit <<<<<===== el punto que antecede a la palabra clave debería existir una relación con un 'WITH' anterior que defina al objeto por defecto

Asumo que en base al código que continua, no se corresponde con el objeto a modificar, lo adecuado seria así:

Sin WITH (define a un objeto por defecto)
1
2
3
rsREGISTROS.Edit
rsREGISTROS!T3OBSERVA = "PRUEBA" 'Asignamos valores a los campos
rsREGISTROS.Update 'Grabamos el registro

Con With:
1
2
3
4
5
6
7
With rsREGISTROS
.......
.Edit
!T3OBSERVA = "PRUEBA" 'Asignamos valores a los campos
.Update 'Grabamos el registro
.......
End With
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