** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Cuadro Combinado Cascada Continuos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCuadro Combinado Cascada Continuos

 Responder Responder Página  12>
Autor
Mensaje
jimmycharret Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 28/Enero/2019
Localización: Honduras
Estado: Sin conexión
Puntos: 23
Enlace directo a este mensaje Tema: Cuadro Combinado Cascada Continuos
    Enviado: 13/Marzo/2020 a las 04:19
Buenas Noches Foro. Estoy trabado en un Formulario continuo, Exactamente en Cuadros Combinados en cascada: cuando ingreso un nuevo registro El programa funciona(Cuadros combinados) los combos en cascada, el problema esta en la modificacion de los combos y exactamente en el ultimo. al no coincidir con los anteriores combos queda vacio osea no carga nada, Y ESO ESTA BIEN, lo que no quiero es que siga adelante o que NO PUEDA GUARDAR, a pesar de que salio vacio el cuadro combinado deja pasar a la siguiente caja y guarda el dato que se guardo por primera vez guardando una informacion falsa o no escogida.

alguien q me ayude puedo enviar el archivo.

no puedo seguir avanzando con mi proyecto sino corrijo esto. les agradesco por adelantado.

Saludos desde Honduras

jidasoft
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14720
Enlace directo a este mensaje Enviado: 13/Marzo/2020 a las 10:57
Hola,

Mira este hilo:

Encontrarás el clásico ejemplo de Marius y el de emiliove

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
jimmycharret Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 28/Enero/2019
Localización: Honduras
Estado: Sin conexión
Puntos: 23
Enlace directo a este mensaje Enviado: 13/Marzo/2020 a las 18:09

Buenas, si entiendo que no me explique bien enviare una foto y el archivo.


http://www.filebig.net/files/55FryCW7Ts

Explicacion.
ASI ESTA ORDENADO EL FORMULARIO:
PO(COMBO) CODESTILO(COMBO) LOTE(COMBO) CODCOLOR(COMBO) TALLA(COMBO)

****tengo el combo PO, Que al escoger un registro llena el siguiente combo que es ESTILO
Private Sub cmbPO_AfterUpdate()
Me.COD_ESTILO = Me.cmbPO.Column(1)

*****EL COMBO LOTE AL ESCOGER UN REGISTRO LLENA EL SIGUIENTE COMBO CODCOLOR Y TAMBIEN LLENA TALLA DE ACUERDO A LO QUE ESCOGIMOS OSEA PO,ESTILO, Y COLOR SI LOS TRES COMBOS ESTAN EN EL PEDIDO APARECE LA TALLA, PERO SI NO COINCIDE ESOS 3 COMBOS NO APARECE NADA EN EL COMBO TALLA (HASTA TODO BIEN).
EL PROBLEMA ESTA QUE SI YO DEJO ESE ESPACIO VACIO SIEMPRE SE GUARDA EL DATO ANTERIOR ACUERDATE QUE ESTAMOS
MODIFICANDO EL REGISTRO.

Private Sub LOTE_AfterUpdate()
Me.COD_COLOR = Me.LOTE.Column(3)
Me.COD_TALLA.RowSource = "SELECT Entrada_Gilma.TALLA, TALLA.TALLA FROM Entrada_Gilma INNER JOIN TALLA ON Entrada_Gilma.TALLA = TALLA.Id_TALLA WHERE PO = '" & Me.cmbPO & "' AND ESTILO = " & Me.COD_ESTILO & " AND COLOR = " & Me.COD_COLOR & " GROUP BY Entrada_Gilma.TALLA, TALLA.TALLA"


Cuando ingreso un nuevo dato Todos los cuadros combinados funcionan super bien.
El problema es cuando edito o modifico el dato de unos o dos combos y como funciona en cadena afecta al ultimo combo que es Talla,


Gracias por su atención


jidasoft
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14720
Enlace directo a este mensaje Enviado: 13/Marzo/2020 a las 19:21
Vale, creo que no te entendí bien. Fallo mio.

Entiendo que el último campo no puedes permitir que quede vacío. Supongo que controlar el evento Exit de ese cuadro combinado para ver si está todo relleno sería la primera opción.

Un saludo 


Xavi, un minyó de Terrassa

Mi web
Arriba
jimmycharret Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 28/Enero/2019
Localización: Honduras
Estado: Sin conexión
Puntos: 23
Enlace directo a este mensaje Enviado: 14/Marzo/2020 a las 01:51
Xavi Gracias por responder.
Pero intente esto y nada

'If IsNull(Me![COD_TALLA] Or Me![COD_TALLA] = "") Then 'If IsNull(Me!LOTE) Or Me!LOTE = "" Then
'    Beep
'    MsgBox "INGRESE TALLA", vbInformation, "¡¡¡Preste Atención!!!"
'    'Me.COD_TALLA.SetFocus
'End If
_____________________________________________

esto tampoco
'If VarType(Me.COD_TALLA.Value) = vbNull Then
'MsgBox "Debe seleccionar un elemento de la lista."
'Cancel = True
'End If
________________
If IsNull(Me.COD_TALLA) Or Me!COD_TALLA= "" Then Cancel = True

y nada de nada supongo que es que ese combo ya tiene el dato anterior solo que no aparece por el la nueva consulta. por eso estos codigo no le hacen efecto.

SAludos
jidasoft
Arriba
jimmycharret Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 28/Enero/2019
Localización: Honduras
Estado: Sin conexión
Puntos: 23
Enlace directo a este mensaje Enviado: 14/Marzo/2020 a las 01:54
Xavi no se si viste el archivo. Puse el Hipervinculo. te agradezco por tu tiempo.
jidasoft
Arriba
01loko Ver desplegable
Colaborador
Colaborador


Unido: 17/Agosto/2017
Localización: Santander
Estado: Sin conexión
Puntos: 807
Enlace directo a este mensaje Enviado: 14/Marzo/2020 a las 05:02
Si no he entendido mal, quieres que si talla esta vacio no siga.
Prueba:

Private Sub COD_TALLA_LostFocus()
Dim respuesta
 If Me.COD_TALLA.Value = "" Or IsNull(Me.COD_TALLA.Value) Then respuesta = MsgBox("Ojito,talla vacia", vbOKOnly, "ERROR")

If respuesta = vbOK Then Me.COD_COLOR.SetFocus
End Sub




Editado por 01loko - 14/Marzo/2020 a las 05:04
Recordar de que soy nuevo y estoy aprendiendo.
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1510
Enlace directo a este mensaje Enviado: 14/Marzo/2020 a las 11:17
Lo que yo entiendo es que es la lista lo que se queda vacía, no el valor. Es decir si tenemos 2 cuadros combinados, donde en el primero se puede seleccionar Fruta o Verdura; y en el segundo de puede seleccionar Manzana o Pera para la fruta, y Lechuga o Alcachofa para la verdura, le ocurre que en un registro ya creado: Fruta-> Manzana, si después selecciona Verdura, el valor en el segundo cuadro combinado "desaparece" porque Manzana no es una verdura, pero si no lo modifica sigue quedando ese valor en el campo de la tabla.

Sí es esto, lo más sencillo es probar a poner a Sí la propiedad Limitar a lista del curso combinado, para que Acceda se queje si el valor a guardar no coincide con un valor de la lista.

Otra posibilidad es comprobar la propiedad ListIndex de los cuadros combinados cada vez que cambies la lista. Y si no es un número mayor o igual que cero, limpiar el valor:

- https://support.office.com/es-es/article/listindex-propiedad-b1cbf55a-3813-40d6-81ac-d69a42e45230

Editado por pitxiku - 14/Marzo/2020 a las 11:17
Arriba
jimmycharret Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 28/Enero/2019
Localización: Honduras
Estado: Sin conexión
Puntos: 23
Enlace directo a este mensaje Enviado: 14/Marzo/2020 a las 16:16
Gracias por las respuestas inmediatas, probare las dos opciones que me dieron. ojalá y sea eso brother. estoy empezando a preocuparme.
Gracias


jidasoft
Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5694
Enlace directo a este mensaje Enviado: 14/Marzo/2020 a las 16:47
Mas posibilidades: En el evento después de actualizar del primer combo, puedes indicarle que en el origen de la fila del combo encadenado te establezca los valores que le corresponden y te ponga el valor del primero, que se vaya el foco a dicho combo y lo despliegue, para tener que establecerlo por fuerza.

Tal como lo hago aquí: 


Saludos.


Editado por emiliove - 14/Marzo/2020 a las 16:56
Arriba
jimmycharret Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 28/Enero/2019
Localización: Honduras
Estado: Sin conexión
Puntos: 23
Enlace directo a este mensaje Enviado: 14/Marzo/2020 a las 17:57
El que dio en el clavo en lo que necesito es pitxiku pero a pesar de los ejemplos no me funcionó ninguno.

1. la opcion de cambiar la propiedad Limitar a lista del cuadro combinado a SI ya lo tenia
2. La opcion de comprobar la propiedad ListIndex de los cuadros combinados cada vez que cambie la lista. Y si no es un número mayor o igual que cero, limpiar el valor no ENTENDI
3. Y LA OPCION 3 NO ME FUNCIONO

Dim l As Long
l = Forms![ENTRADAS_FORM_CORTEKIT].Controls(COD_TALLA).ListIndex

envio el archivo para que me puedan ayudar.


Gracias y saludos
jidasoft
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1510
Enlace directo a este mensaje Enviado: 15/Marzo/2020 a las 11:16
Después de la línea:

Private Sub LOTE_AfterUpdate()
Me.COD_COLOR = Me.LOTE.Column(3)
Me.COD_TALLA.RowSource = "SELECT Entrada_Gilma.TALLA, TALLA.TALLA FROM Entrada_Gilma INNER JOIN TALLA ON Entrada_Gilma.TALLA = TALLA.Id_TALLA WHERE PO = '" & Me.cmbPO & "' AND ESTILO = " & Me.COD_ESTILO & " AND COLOR = " & Me.COD_COLOR & " GROUP BY Entrada_Gilma.TALLA, TALLA.TALLA"


Pon algo así:

MsgBox Me.COD_TALLA.ListIndex


Y observa la diferencia cuando el elemento exista o no en la lista, cada vez que se actualice. Una vez comprobada, cambia el MsgBox por un If ... Que modifique el valor de la talla cuando el actual no esté en la lista, dejándolo vacío o nulo, según interese.

Editado por pitxiku - 15/Marzo/2020 a las 11:18
Arriba
jimmycharret Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 28/Enero/2019
Localización: Honduras
Estado: Sin conexión
Puntos: 23
Enlace directo a este mensaje Enviado: 17/Marzo/2020 a las 21:06
Amigo PITXIKU, CON ESTE CODIGO LOGRE QUE SI NO COINCIDE CON LOS ANTERIORES COMBOS
SE CANCELE LA MODIFICACION, PERO AHORA EL PROBLEMA ES CUANDO INGRESO UNO NUEVO.
NO ME DEJA SE CANCELA Y NO LLEGO A TALLA.

QUE PUEDO ARREGLAR, PERO YA VOY SALIENDO GRACIAS


Private Sub LOTE_AfterUpdate()

On Error GoTo solu_err

        Me.COD_COLOR.Enabled = False
        Me.COD_COLOR = Me.LOTE.Column(3)
        Me.LOTE.Enabled = False
        Me.COD_TALLA.RowSource = "SELECT Entrada_Gilma.TALLA, TALLA.TALLA FROM Entrada_Gilma INNER JOIN TALLA ON Entrada_Gilma.TALLA = TALLA.Id_TALLA WHERE PO = '" & Me.cmbPO & "' AND ESTILO = " & Me.COD_ESTILO & " AND COLOR = " & Me.COD_COLOR & " GROUP BY Entrada_Gilma.TALLA, TALLA.TALLA"
       
If Me.COD_TALLA.ListIndex = -1 Then
        MsgBox "No existe esta Orden de Piezas ...."
        DoCmd.RunCommand acCmdUndo

jidasoft
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1510
Enlace directo a este mensaje Enviado: 18/Marzo/2020 a las 07:15
Estas usando Undo, más lo que hayas puesto después que no se ve. En vez de ese Undo, solo modifica el valor de la talla:

Me.COD_TALLA = vbNull

El control del gasto en la talla hazlo cuando intentes guardar el registro, o en los eventos de su control.
Arriba
jimmycharret Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 28/Enero/2019
Localización: Honduras
Estado: Sin conexión
Puntos: 23
Enlace directo a este mensaje Enviado: 21/Marzo/2020 a las 02:39
pitxiku hice un video de 1 minuto miralo porfa

https://www.filebig.net/files/pMrDfSz3ik


Gracias
jidasoft
Arriba
 Responder Responder Página  12>
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable