Access - Limitar a escoger valor del cuadro combinado

 
Vista:
sin imagen de perfil

Limitar a escoger valor del cuadro combinado

Publicado por Julian David (20 intervenciones) el 02/12/2013 16:50:26
Buen día amigos,

tal vez esto sea muy básico pero no he podido solucionarlo, les comento:

tengo un cuadro combinado cbo1, el cual depende de los valores de una tabla tbl1, lo que quiero es que al agragar en el cuadro combinado un valor no existente en la tabla tbl1 se genere un mensaje indicando que no hay tal valor en la tabla, cabe resaltar que le agregue al cbo1 la función de limitar a lista pero el mensaje por defecto es muy poco practico, la idea es que quede algo así:

If cbo1 <> " los valores de tbl1"
MsgBox "El valor ingresado no corresponde", vbExclamation, "ERROR"
Exit Sub

End If

agradezco la atención prestada y quedo atento
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
sin imagen de perfil

Limitar a escoger valor del cuadro combinado

Publicado por Marcelo (166 intervenciones) el 02/12/2013 17:41:17
1) Agrega esta rutina en el Evento: "Al no estar en la lista" de tu ComboBox:
2) Crea un cuadro de texto en el formulario que se llame NeoDato, después puedes dejarlo Visible=No.
3) Uso el campo nomCampoTbl1 en la Tabla1.
4) Le di el nombre Formulario1 al formulario.

- Vas bien encaminado con la Opción Limitar a la lista, para esta rutina conviene limitar los valores.
- Esta rutina ve si no está el valor en la Tabla1 y da la posibilidad de agregarlo:

Sub cbo1_NotInList(NewData As String, Response As Integer)

Dim ctl As Control

Set ctl = Me!cbo1

If MsgBox("Este Valor No está en la Tabla1 ¿Agregarlo?", vbInformation + vbYesNo, "Agregar Valor") = vbYes Then

Response = acDataErrAdded
NeoDato.Value = NewData

DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO Tabla1 ( nomCampoTbl1) SELECT [Forms]![Formulario1]![NeoDato] AS Expr1;"

NeoDato.Value = Null

DoCmd.SetWarnings True

Else

Response = acDataErrContinue
ctl.Undo

End If

End Sub
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

Limitar a escoger valor del cuadro combinado

Publicado por Julian David (20 intervenciones) el 04/12/2013 16:24:49
Buen día amigo,

muchas gracias por tu respuesta pero tengo una duda, me podrías regalar la linea para quitar la respuesta de access por defecto, hasta el momento tengo lo siguiente,

Private Sub Cbsubestaciones_NotInList(NewData As String, Response As Integer)
MsgBox "El valor ingresado no corresponde", vbExclamation, "ERROR" ((( despues del mensaje, me arroja la respuesta por defecto de access))))
[CbSubestaciones] = Null
End Sub

si fuese posible me podrías mencionar las características de las funciones que expresaste en el anterior código,

de nuevo muchas gracias..
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