Access - Bucle recorrer tabla

   
Vista:

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