Imprimir página | Cerrar ventana

completar campos automáticamente

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=84317
Fecha de impresión: 23/Mayo/2019 a las 23:00


Tema: completar campos automáticamente
Publicado por: McSalas
Asunto: completar campos automáticamente
Fecha de publicación: 21/Febrero/2019 a las 18:02
Hola a todos.
Esta es otra duda de mi batería de preguntas en relación a lo descrito en este otro hilo:
http://www.mvp-access.com/foro/topic84314_post507473.html#507473
Pongo esta referencia a modo de introducción para hacer cargante cada hilo que abra con una duda concreta.

Mi intención es que al ejecutar un formulario e ir añadiendo los datos el registro en los respectivos campos, al rellenar uno de ellos se cumplimenten y aparezcan automáticamente rellenados una serie de valores invariables y que siempre serán los mismos en función del campo principal seleccionado. Sería como por ejemplo al seleccionar el DNI de una persona, que aparezca su nombre, apellidos, fecha de nacimiento... todas esas cosas.

En mi caso quiero que, al ejecutar un formulario y seleccionar una Parcela de una tabla desplegable, se me cumplimenten datos como la superficiePAC, superficieutil y plano (imagen) de la parcela en cuestión.
Toda esta información sería parte de la tabla tbParcelas, cuyos campos serían código_PAR, Finca_PAR, Parcela_PAR, superficePAC_PAR, superficieutil_PAR y plano_PAR.

Todos los campos serían llamados por un formulario, pero los únicos que rellenaría a través de tablas desplegables (asistente de búsqueda) serían Finca y Parcela. Los otros, que se rellenasen solos, porque son más que datos a guardar, información a ofrecer a la hora de rellenar el formulario.
Seguro que es una chorrada pero no doy con ello.

Gracias por vuestra ayuda.



Respuestas:
Publicado por: rokoko
Fecha de publicación: 21/Febrero/2019 a las 19:48
Te podria valer la propiedad column de un cuadro combinado

https://docs.microsoft.com/es-es/office/vba/api/access.combobox.column




Publicado por: McSalas
Fecha de publicación: 22/Febrero/2019 a las 16:59
Muchas gracias por tu ayuda.
He chequeado el enlace que me envías y a priori me suena un poco a chino. Lo veré más despacio y con la bbdd al lado para intentar implementarlo, a ver que sale. Iré informando.


Publicado por: McSalas
Fecha de publicación: 06/Marzo/2019 a las 14:01
Buenas, perdonad mi ignorancia, pero serías (o alguien) tan amable de detallarme cómo hacer lo que se indica en el comentario anterior.
Cualquier información más detallada al respecto sería de buena ayuda.
Gracias


Publicado por: rokoko
Fecha de publicación: 06/Marzo/2019 a las 15:15
A ver si asi lo ves, si no te he entendido mal por aqui tienen que ir los tiros....

https://www.dropbox.com/s/8qgl9fpsdll9jvw/PropiedadColumn.rar?dl=0


Publicado por: McSalas
Fecha de publicación: 14/Marzo/2019 a las 14:37
Muchas gracias por tu ayuda. Me ha sido útil tu ejemplo, junto con algún vídeo de YouTube he conseguido hacerlo. Muchas gracias nuevamente.


Publicado por: McSalas
Fecha de publicación: 15/Marzo/2019 a las 08:59
Publicado originalmente por rokoko rokoko escribió:

A ver si asi lo ves, si no te he entendido mal por aqui tienen que ir los tiros....

https://www.dropbox.com/s/8qgl9fpsdll9jvw/PropiedadColumn.rar?dl=0

Una última cuestión @rokoko:
He conseguido hacer el autorelleno cuando el valor lo selecciono en un cuadro combinado normal, alimentado desde una tabla cualquiera. Sin embargo, tengo un caso en el que me gustaría que el autorrelleno lo hiciese cuando hago la selección en el último cuadro combinado de dos cuadros combinados  en cascada.
He intentado definir el origen de la fila de este segundo cuadro combinado (en cascada) pero aún así no autorrellena.
Alguna idea? gracias


Publicado por: rokoko
Fecha de publicación: 15/Marzo/2019 a las 15:45
Los datos que te harian falta estan en el origen de la fila de ese cuadro combinado?? Tienes todas las columnas creadas en el cuadro combinado??


Publicado por: McSalas
Fecha de publicación: 28/Marzo/2019 a las 13:49
Hola @rokoko.
Lo primero darte la Gracias de nuevo y perdona por tardar tanto en contestar, pero a este asunto le voy dedicando el poco tiempoq me dejan otras cosas en el trabajo que me aprietan mucho más.

Me he ido al panel de Origen de la fila del segundo cuadro combinado de los q están en cascada y he intentado añadir los otros campos (superficie_a, superficie_b) y así lo he hecho, pero no veo resultado.
En la opción de ancho de columnas en propiedades/formato del campo combinado hay valores distintos de cero y de hecho al ejecutar el formulario me aprecen las columnas pero en blanco 👎🏼. Algo estoy haciendo mal porque no me está leyendo los valores que esos campos contienen.
Por cierto, todos los campos están en la misma tabla.

Esto es lo que tengo en Eventos:

Private Sub CCfinca_par_AfterUpdate()
Me.CCnombre_par.RowSource = “SELECT nombre_par FROM tbparcelas WHERE finca_par = ‘“ & Me.CCfinca_paqr & “‘
Me.CCnombre_par = Null

End Sub

Private Sub CCnombre_par_AfterUpdate()
Me.txtsuperficiePAC = Me.CCnombre_par.Column (3)
Me.txtsuperficieefect = Me.CCnombre_par.Column (4)
End Sub

Donde cada cosa es:
tbparcelas: la tabla que contiene todos lo campos
CCfincas_par: el primer campo combinado de los dos en cascada
CCnombre_par: el segundo de los dos Campos combinados en cascada y que tras su elección me gustaría que los siguientes campos se rellenaran automáticamente.
txtsuperficiePAC: nombre del campo a rellenar automáticamente
txtsuperficieefect: nombre del campo a rellenar automáticamente


A ver si se te ocurre donde puede estar el error. Gracias.


Publicado por: rokoko
Fecha de publicación: 28/Marzo/2019 a las 15:25
Aqui, solo te muestra el campo   nompre_par, faltaria  superficiePAC  y superficieefect
Me.CCnombre_par.RowSource = “SELECT nombre_par FROM tbparcelas WHERE finca_par = ‘“ & Me.CCfinca_paqr & “‘ 


Prueba asi
Me.CCnombre_par.RowSource = “SELECT tbparcelas.nombre_par, tbparcelas.superficiePAC, tbparcelas.superficieefect,tbparcelas.finca_par FROM tbparcelas WHERE (((tbparcelas.finca_par)  = '" & Me.CCfinca_paqr & "'));   'En el filtro where tengo dudas si te lo he puesto bien, creo que esta bien, si es texto esta entre comillas simples
Me.CCnombre_par.Requery    'Nos actualiza el cuadro combinado

Lo del Null no veo para que lo quieres, nos quitaria el rowsource y no saldria nada en el cuadro combinado.......

Numero de columnas 3
Ancho columnas lo que quieras, pero 3 anchos, podian ser 0cm y no se verian pero estarian

Y si respetamos el orden del selec nuevo  de arriba
La primerra columna seria la 0 en este caso nompre_par

Me.txtsuperficiePAC = Me.CCnombre_par.Column (1)
Me.txtsuperficieefect = Me.CCnombre_par.Column (2)

A ver si asi te funciona o te da ideas....

Saludos


Publicado por: rokoko
Fecha de publicación: 28/Marzo/2019 a las 16:07
Te he modificado el ejemplo, ahora tienes dos cuadros en cascada, selecionas el primero y luego el segundo que te filtrara sobre el primero.
El segundo con la propiedad column se insertara los datos en los campos.

https://www.dropbox.com/s/8qgl9fpsdll9jvw/PropiedadColumn.rar?dl=0


Publicado por: McSalas
Fecha de publicación: 28/Marzo/2019 a las 18:32
Muchas gracias!!
Iba a subirte una imagen pero ya veo que te has molestado en mirarlo y adecuarlo!

Mañana por la mañana trataré de implementarlo y a ver si sale

PD: No tengo apenas idea de programar. Pongo los comandos en función de lo que veo en videos o recomendaciones de la gente sin saber lo que es cada cosa exactamente. Prueba y error constantemente...


Publicado por: rokoko
Fecha de publicación: 28/Marzo/2019 a las 19:13
Crea una consulta y mirala en vista SQL....asi veras verdaderamente como es si la vas a poner en codigo

Para los filtros se puede hacer de varias formas

Por ejemplo asi tambien te podria valer para el Where, te pongo los dos para que veas la diferencia.

WHERE (((tbparcelas.finca_par)=[Formularios]![NombreFormulario]![CCfinca_paqr]))
WHERE (((tbparcelas.finca_par)  = '" & Me.CCfinca_paqr & "'))

De la forma que lo has hecho, dependiendo si es texto, numero o fecha iria asi

= '" & Me.CCfinca_paqr & "'   Para texto
= " & Me.CCfinca_paqr & "   Para numero
= #" & Me.CCfinca_paqr & "#   Para Fecha




Publicado por: McSalas
Fecha de publicación: 29/Marzo/2019 a las 09:09
Muchísimas gracias @rokoko
Ya lo tengo funcionando.!!
Efectivamente el problema estaba en la falta de columnas que tenía que incluir tras SELECT. Además, tenía yo un error en la nomenclatura del campo en la tabla tbparcelas. La había nombrado superificieefect y luego hacía llamadas a ella como superficieefect...

Este tema ya lo tengo cerrado muchísimas gracias.

Voy a aprovechar tu buena voluntad y te pediría ayuda con este otro tema. No puede ser tan dificil hacer una multiplicación Unhappy

http://www.mvp-access.com/foro/campo-calculado-impide-generar-nuevo-registro_topic84314.html" rel="nofollow - http://www.mvp-access.com/foro/campo-calculado-impide-generar-nuevo-registro_topic84314.html

Espero que también puedas ayudarme.




Imprimir página | Cerrar ventana