Necesito ayuda para auto completar campos al crear nuevas categorías en Microsoft Access

Tengo el siguiente problema
1.- Tengo una tabla llamada rubros
2.- Tengo un formulario llamado categorías (tabla categorías) y un sub formularios llamado
sfpercepciones (tabla percepciones).
3.- Lo que quiero es que al crear una nueva categoría se carguen el el subformulario "sfpercepciones" los rubros que tenga marcado como obligatorios
"feliz año nuevo 2006 a todos gracias"

1 respuesta

Respuesta
1
Vamos por partes.
1º No dices si la tabla Rubros tiene un campo Obligatorio(tipo Sí/no). Vamos a suponer que sí, que tiene los campos Rubro y Obligatorio.
2º Cuando dices crear una nueva categoría supongo que será en un registro nuevo del formulario.
3º Vamos a suponer que el campo común del formulario y el subformulario es Idcategoría, y que en el formulario hay un cuadro de texto llamado Categoría(donde vas a escribir la nueva).
4º Supongamos que la tabla Percepciones tiene un campo Rubro
En las propiedades de ese cuadro de texto, en eventos-Antes de actualizar crea un procedimiento de evento y entre Private Sub y End Sub escribe
If dcount("Categoría","Categorías","[categoría]=[forms]![Categorías]![categoría]")>=1 then
msgbox"Esa categoría ya existe"
docmd.cancelevent
end if
Esto es para que si escribes una categoría que ya está en la tabla no la acepte y no te deje pasar.
En las propiedades de ese mismo cuadro de texto en el evento Despuérs de actualizar escribe
Form.Refresh
DoCmd.SetWarnings False
DoCmd.RunSQL "Insert into percepciones select rubro from rubros where [obligatorio]=true"
DoCmd.RunSQL "update percepciones set idcategoría=[forms]![categorías]![idcategoría] where idcategoría is null"
Form.Requery
De todas formas, si ves que tienes algún problema, y quieres, dime tu dirección y te mando un ejemplo.
Un saludo y Feliz Año 2006
funciona perfectameente pero hay algo que le modifique y que ademas no comprendo este renglon DoCmd.RunSQL "update Percepciones set IdCateg=[forms]![Categorias]![IdCateg]where IdCateg = is null" asi no funcionaba y asi DoCmd.RunSQL "update Percepciones set IdCateg=[forms]![Categorias]![IdCateg]where IdCateg =0" funciona correctamente cual es la diferencia...
Eso es porque como Idcategoría de la tabla Percepciones es numérico, le habrás dejado como valor predeterminado el 0. Yo soy totalmente enemigo de los valores predeterminados. Por eso le puse lo de "Is null". Es decir, que cuando inserta los valores de rubro, el campo Idcategoría queda en blanco(en mi caso)
Soy enemigo del valor predeterminado 0, porque a veces en un campo calculado, el resultado puede ser 0, y entonces no sabes si es 0 por el valor predeterminado o por el cálculo propiemanete dicho.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas