Imprimir página | Cerrar ventana

Insert into condicional al contenido de cuadro com

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=85935
Fecha de impresión: 29/Marzo/2024 a las 11:15


Tema: Insert into condicional al contenido de cuadro com
Publicado por: damian_colomb
Asunto: Insert into condicional al contenido de cuadro com
Fecha de publicación: 05/Abril/2021 a las 08:38
Hola! Sigo molestando por acá, doy un paso y aparecen problemas por resolver! Creo que es un poco lo adictivo de esto!!

Tengo un formulario, dónde a través de un botón con insert to, registro en una tabla un cod_id que lo uso para relacionar con otra tabla y un motivo. Los datos registrados están en un formulario:
El cod_informe en un cuadro de texto(me trae el último valor del id que se registro en la tabla relacionada) es el que uso de enlace.
Y el motivo de consulta está en un cuadro combinado. Le hice 3 cuadros combinados y para evitar la limitante de si un día necesito agregar más de 3, al finalizar la instrucción, le agregué un msgbox con si/no cancelar, que me pregunta si quiero agregar más motivos, si la respuesta es si, se insertan los datos y se vuelve abrir el formulario, si la respuesta es no, pasa a otro formulario y si es cáncelar cierra el msgbox.

Ahora esto funciona bien, con el detalle, si yo completo un solo cuadro combinado, me agrega a la tabla los otros dos cod_id, con el campo motivo vacío. Es decir me está registrando los cuadros combinados que no tienen contenido.

Pensé que por ahí usando un condicional como ID not null, iba a poder solucionarlo, pero me da error que no se encuentra el objeto.
Probé con casé y tampoco pude

If cc.motivo1.value is not null then
Insert to tabla (campos) value (objetos)
End if

No escribí completo el insert to, porque estoy justo con el celular y es la parte que funciona, no tengo problemas.

En resumen, porque si di demasiado detalle que embrollo el asunto, necesito encontrar la forma de insertar en una tabla solo los registros provenientes de los cuadros combinados que tengan contenido.

Muchas gracias



Respuestas:
Publicado por: Mihura
Fecha de publicación: 05/Abril/2021 a las 09:00
Debería valerte con:

If Nz(me.CuadroCombinado, "") <> "" then
   INSERT ...
End If


Acostumbrate al uso del Nz que te quitará más de un problema. Por cierto no uses (.) (,) (blanco) (caracteres especiales) en los nombres de los campos, tanto de formularios como de tablas, te ahorrarás muuuuchos problemas.




-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: damian_colomb
Fecha de publicación: 05/Abril/2021 a las 13:32
Buen día Mihura funcionó a la perfección!! Muchísimas gracias! Ahora voy a leer un poco acerca del NZ "">< que no conocía!

Si con la aclaración de abajo te referis al "cc.motivo", fue un error del celular, muchas gracias por la sugerencia, no uso esos caracteres en los nombres de los campos, utilizo más el _ para separar! Por ahí terminan siendo muy descriptivos los nombres de los objetos y formularios, pero para mi que estoy arrancando en esto, se me hace más fácil leerlos!
Por ejemplo cc_motivo_frm_informe
Si la sugerencia viene por otro lado que no me doy cuenta, házmelo saber por favor!!

Muchísimas gracias, esta resuelta mi duda
Se puede cerrar


Publicado por: Mihura
Fecha de publicación: 05/Abril/2021 a las 13:57
Usar el _ es una manera, a mi que me gusta teclear lo menos posible uso mayúculas / minúsculas y el resultado es bueno (por lo menos se lee perfectamente):

Me.FechaInicial
Me.CodMotivoInforme


-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es



Imprimir página | Cerrar ventana