Access - URGENTE. Establecer valor en cuadro combinado

 
Vista:

URGENTE. Establecer valor en cuadro combinado

Publicado por Lobo (2 intervenciones) el 20/01/2002 15:13:05
Hola a todos y gracias de antemano.
Llevo varios días bloqueado con este problema: Tengo un formulario en el cual el valor de un cuadro combinado depende del valor de otro control (texto). Si el valor que se introduce en el cuadro de texto no está en una tabla, ha de guardar los tres primeros caracteres en el cuadro combinado.
Lo estoy haciendo con una macro con EstablecerValor, pero me da un error: No hay ningún registro activo. Sin embargo, si establezco ese mismo valor a otro control que no sea un cuadro combinado, si que funciona.
Agradecería todo tipo de ayuda o sugerencia.
Saludos
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

URGENTE. Establecer valor en cuadro combinado

Publicado por Alejandro (4142 intervenciones) el 19/04/2023 23:55:57
Hola.

Es posible que el error se deba a que el cuadro combinado no tiene ningún registro seleccionado en ese momento. Una solución sería agregar un registro temporal al origen de registro del cuadro combinado y establecer el valor en ese registro temporal.

Aquí te dejo un ejemplo de código VBA que puedes usar para establecer el valor en el cuadro combinado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub txtValor_AfterUpdate()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strSQL As String
 
    'Abre la tabla origen del cuadro combinado como un recordset
    Set db = CurrentDb()
    strSQL = "SELECT * FROM tabla_combobox"
    Set rs = db.OpenRecordset(strSQL)
 
    'Agregar registro temporal al recordset
    rs.AddNew
    rs!ID = -1 'Puede ser cualquier valor único que no exista en la tabla
    rs!Valor = Left(Me.txtValor, 3) 'Establece el valor del cuadro combinado a los tres primeros caracteres del valor en el cuadro de texto
    rs.Update
 
    'Establece el valor del cuadro combinado al registro temporal
    Me.cboCombobox.Value = rs!ID
 
    'Cierra el recordset y la base de datos
    rs.Close
    Set rs = Nothing
    Set db = Nothing
End Sub

En este ejemplo, asumimos que el origen de registro del cuadro combinado es una tabla llamada "tabla_combobox" con campos "ID" y "Valor". Al agregar un registro temporal con un ID único y establecer su valor en el cuadro combinado, el cuadro combinado ahora tiene un registro seleccionado, lo que debería permitir establecer el valor sin errores.

Espero que esto te sea útil.
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