Access - Como convertir un String en un nombre de campo

 
Vista:

Como convertir un String en un nombre de campo

Publicado por Juan Jesus (1 intervención) el 12/07/2007 17:53:10
Hola a TODOS!!!... y desde ya gracias de antemano a quien aporte alguna respueta.

Para poder usar el nombre de un campo con su propiedad OldValue (ejemplo: cliente.OldValue) tengo una rutina que carga en un array de String los nombres de los campos de una tabla. Pero cuando quiero usar algun nombre de los campos del array sucede que es solamente un String y no me sirve para referenciar a la propiedad OldValue. He tratado de asignar el String (uno sacado del array) a una variable tipo Fields (ej: Campo As Fields; para llamar Campo.OldValue) pero no me da resultado.

Por favor, si alguien entre Uds. que saben MUCHISSSIIIMO más que yo (se pueden dar cuenta inclusive en mi manera de preguntar) puede ayudarme le estare muy agradecido, ya que tengo una necesidad APREMIANTE de implementarlo.

Nuevamente gracias!!!

Juan Jesus - [email protected] / [email protected]
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 Alejandro

Referenciar la propiedad OldValue de un campo utilizando un nombre de campo en forma dinámica

Publicado por Alejandro (4142 intervenciones) el 15/08/2023 19:40:38
Para lograr acceder a la propiedad OldValue de un campo utilizando su nombre almacenado en un array de strings, puedes seguir estos pasos:

1. Abre el formulario o módulo donde necesitas implementar esta funcionalidad.

2. Declarar una variable de tipo Recordset que se utilizará para acceder a los campos de la tabla:

1
Dim rs As Recordset

3. Declara una variable para almacenar el nombre del campo en el que estás interesado:

1
Dim nombreCampo As String

4. Declara una variable para almacenar el valor OldValue del campo:

1
Dim valorOld As Variant

5. En tu rutina que carga los nombres de los campos en un array de strings, asegúrate de incluir el siguiente código para acceder a la propiedad OldValue de cada campo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Dim arrCampos() As String
Dim i As Integer
 
' Código para cargar los nombres de los campos en el array arrCampos
 
' Recorrer los nombres de los campos en el array
For i = LBound(arrCampos) To UBound(arrCampos)
    nombreCampo = arrCampos(i)
 
    ' Abre el Recordset del formulario actual y mueve al registro deseado
    Set rs = Me.RecordsetClone
    rs.MoveFirst  ' O utiliza rs.FindFirst para buscar un registro específico
 
    ' Accede al campo y obtiene su valor OldValue
    valorOld = rs(nombreCampo).OriginalValue
 
    ' Puedes usar el valorOld para lo que necesites aquí
 
    ' Cierra el Recordset
    rs.Close
    Set rs = Nothing
Next i

Este código te permitirá acceder a la propiedad OldValue de cada campo utilizando su nombre almacenado en el array `arrCampos`. Asegúrate de reemplazar el código que carga los nombres de los campos en el array según tu implementación específica.

Recuerda adaptar este código a tu situación particular y a tu forma de trabajar con los campos y registros en Access. Ten en cuenta que este es solo un ejemplo de cómo puedes acceder a la propiedad OldValue de un campo utilizando su nombre en forma dinámica.
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