Rellenar campo automáticamente mediante un cuadro combinado

Con esto ya acabo.

Tengo dos tablas:

Fichas, con los campos Ficha, Ubicación, Fecha Creación Ficha, Barrio,

Actuaciones, con los campos Ficha (relacionada con la otra tabla), Dirección, Dia, Hora, Fecha Creación Ficha, Barrio

En un formulario llamado IntroActuaciones que alimenta la tabla Actuaciones, tengo un cuadro combinado en el cual selecciono la Ficha de un desplegable de Fichas.

Al lado tengo un campo independiente que me muestra el campo Ubicación, porque no me interesa guardarlo. Esta me funciona OK con la propiedad column  (=[Intro_Ficha].[column](2))

Ahora he añadido los campos Barrio y Fecha Creación Ficha porque los necesito para otra cosa, y lo que quiero es que al seleccionar una Ficha en el cuadro combinado, se rellenen automáticamente estos campos, Y SE GRABEN. Lo he probado todo y no consigo que lo grabe en el campo...

Por cierto, soy bastante básico, aviso... XD

Respuesta
1

Para buscar puedes poner en el evento Después de actualizar del combinado Ficha

Barrio=Dlookup("barrio","fichas","ficha='" & barrio & "')

Lo mismo para Fechacreacion

Para que te lo grabe, o bien en las propiedades del cuadro de texto Barrio, en Origen del control le pones Barrio, o bien le pones, después del código anterior

docmd.runsql"Update actuaciones set barrio='" & barrio & "' where ficha=forms!introactuaciones!ficha"

De todas formas, como tengo tu correo, si quieres, dímelo y te mando un par de ejemplos.

1 respuesta más de otro experto

Respuesta
1

este ejemplo que preparé para la web de Neckkito: http://siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/279-cuadros-combinados 

En él explico diversas formas de hacerlo. Cualquier duda, me comentas.

Saludos!


Lo intento, pero no me funciona, se queda en blanco.

He intentado reproducir el caso que pones en el último ejemplo, ya que me interesa que al seleccionar en el cuadro combinado se guarden los campos.

Yo pongo:

Private Sub TxtUbicacion_AfterUpdate()
    Me.Ubicacion = Me.Intro_Ficha_carpeta_barrio.Column(2)
End Sub

Private Sub Barrio_BeforeUpdate(Cancel As Integer)
Me.Barrio = DLookup("Barrio", "Fichas_carpetas_de_barrio", "Ficha_carpeta_de_barrio=" & Me.Ficha_carpeta_barrio)
Me.Barrio.SetFocus
End Sub

El primer caso, en que quiero ver y no grabar la ubicación, lo hace correcto.

El segundo, en que quiero grabar el barrio de la ficha, no hay manera

Primeramente fíjate que yo utilizo los eventos AfterUpdate (Después de actualizar), aunque por ahí no debería venir el problema.

En segundo lugar, si el criterio es de tipo texto, tu linea de código tendrá que ser ésta:

Me.Barrio = DLookup("Barrio", "Fichas_carpetas_de_barrio", "Ficha_carpeta_de_barrio='" & Me.Ficha_carpeta_barrio & "'")

Si el dato que quieres grabar lo tienes en una columna del cuadro combinado, puedes usar la misma sintaxis que usas para el cuadro de texto independiente (con la propiedad Column(indice) )

Saludos!


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas