Añadir lo tecleado en tesbox que es un campo búsqueda a la tabla donde lo busca

Tengo un formulario que tiene un tesbox que es un campo de búsqueda de datos en una tabla, pero si tecleo un dato que no está en la tabla de búsqueda como hago para que sea admitido en la tabla.

1 respuesta

Respuesta
1

Por lo que dices parece que el cuadro de texto es independiente. Vamos a suponer que ese cuadro se llama(propiedades-otras-nombre) Buscar y "busca" en el campo Nombre de la tabla Clientes. En sus propiedades-eventos-despues de actualizar puedes poner

If dcount("*","clientes","nombre='" & me.buscar & "'")>=1 then

lo que quieres que haga si existe ese valor

else

docmd.runsql"insert into clientes(nombre)values('" & me.buscar & "')"

end if

Me explico. Si ese valor de nombre igual a lo que has escrito existe que haga... y si no existe que lo inserte en el campo Nombre de la tabla Clientes.

Perdona creo que me explique mal es un formulario creado desde  una tabla que tiene un campo busquedas que lo toma de otra tabla ej: artículo (  ese artículo lo busca en la tabla artículos y al encontralo lo pone en el campo artículo, pero si el artículo buscado no existe , tengo otro formulario para darlo de alta y funciona pero mi intencion es que al teclearlo en el campo si no está en la tabla lo añada.

Gtacias.

Supongamos que tengo una tabla Articulos como la de la imagen

Y una tabla Ventas

Con ésta última hago un formulario en el que pongo un cuadro de texto Buscar. Si escribo Patatas, que como puedes ver, sí está en la tabla y pulso Enter

Por el contrario, si pongo Manzanas, que no está en la tabla y pulso Enter, se abre el formulario Artículos en un registro nuevo para "dar de alta" ese artículo.

En él escribo manzanas y me pasa el valor al formulario Ventas.

El código del cuadro de texto Buscar es

If DCount("*", "articulos", "articulo='" & Me.Buscar & "'") >= 1 Then
Articulo = Buscar
Else
DoCmd.OpenForm "articulos", , , , acFormAdd, acDialog
End If

Y en el evento Después de actualizar del cuadro de texto Articulo del formulario Articulos le pongo

If CurrentProject.AllForms("ventas").IsLoaded Then
Forms!ventas!Articulo = Articulo
End If

y en la tabla Articulos ya te guarda el nuevo articulo

Dicho todo esto, te tengo que decir (si no lo hago reviento) que yo no lo haría así. La programación es para trabajar lo menos posible, por eso se nos da bien a los vagos. Quitaría el cuadro de texto Buscar, no sirve para nada y convertiría el cuadro de texto Articulo del formulario Ventas en un combinado con origen de la fila en el campo Artículo de la tabla Articulos. Pondría Limitar a la lista Sí, y en el evento al no estar en lista le diría que abriera el formulario Articulos para darlo de alta y que me lo pase al combinado del formulario Ventas.

Si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te mando un ejemplo de como lo haría. Si lo haces, en el asunto del mensaje pon tu alias Fernando, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas