Duda en Programación en Microsoft Access

Estoy haciendo un formulario en Access en el cual abajo hay insertado un subformulario cuyo origen de datos es una tabla. Mi consulta tiene que ver con un buscador que quiero hacer. Simplemente quiero que a la hora de introducir el número de albarán en el cuadro de texto que aparece debajo el botón "BUSCAR POR Nº DE ALBARÁN" (adjunto imagen), aparezca en el Subformulario el registro con dicho número de Albarán.

Muchas gracias de antemano y un saludo.

2 Respuestas

Respuesta

No necesitas el botón. Suponiendo que NAlbaran sea texto y que el subformulario se llame Albaranes, en el evento Después de actualizar del cuadro de texto NAlbaran crees un procedimiento de evento y entre Private Sub y End sub poner

me!albaranes.form.recordsource="select * from albaranes where Nalbaran='" & me.nalbaran & "'"

En caso de que fuera numérico sería lo mismo pero terminado

.................................NAlbaran=" & me.nalbaran & ""

Es decir, que el origen de registros del subformulario sea aquel registro de la tabla Albaranes en que su campo NAlbaran sea igual al que acabas de escribir.

Pero, si de todas formas lo quieres poner en el botón te aconsejaría que en el evento Al hacer clic de él lo pongas como

If not isnull([nalbaran]) then

me!....lo de arriba

else

Msgbox"Muchacho, hay que poner el número de albarán", vbokonly,"Inténtalo otra vez"

Nalbarán setfocus

end if

Así, si pulsaras en el botón y el control Nalbaran está vacío te aparece el mensaje y el cursor se va a él.

También podrias sustituirlo por un combinado con origen de la fila en los campos Nalbarán de la tabla. El código sería igual que en el primer caso.

Respuesta

También puede aplicar un filtro por formulario, bien sea porque utilice el botón o en el evento después de actualizar el Albarán. Algo como:

1- Si lo hace mediante el botón:

Private Sub Albaran_AfterUpdate()
  Me.nombfreSubformulario.Form.Filter = "[N° ALBARÁN]=" & Me.albaran
  Me.nombfreSubformulario.Form.FilterOn = True
End If

2. Si lo hace en el Evento Después de Actualizar:

Private Sub Albaran_AfterUpdate()
  Me.nombfreSubformulario.Form.Filter = "[N° ALBARÁN]=" & Me.albaran
  Me.nombfreSubformulario.Form.FilterOn = True
End If

Si utiliza la forma 1 tiene que agregar un botón para eliminar el filtro. Con la forma 2 solo borre el contenido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas