Filtro de Cliente en el Formulario

Me podrían comentar como hacer lo siguiente:

Quisiera que cuando vaya agregar un registro y ponga el rut del cliente en el punto 1, en el punto 2 busque automáticamente el nombre del cliente en la tabla de cliente y así pueda visualizar su nombre y en caso que no este creado el cliente de un mensaje como "Cliente No Existe".

2 respuestas

Respuesta
1

En las propiedades del cuadro de texto, que para el ejemplo llamaremos RutCliente, en sus Propiedades-Eventos-Después de actualizar puedes poner

If nz(dcount("*","Clientes","rut=" & me.rutcliente & ""))=0 then

msgbox"No te canses, ese cliente no existe",vbokonly,"Otra vez será"

else

nombrecliente=dlookup("nombrecliente","clientes","rut=" & me.rutcliente & "")

end if

Me explico, cuando escribes un número( supongo que el RUT es numérico) y pulsas Enter, comprueba en la tabla Clientes si hay algún cliente que tenga ese RUT. Si no lo hay te sale el mensaje. Si lo hay, en el combinado NombreCliente te pone su valor.

En caso de que RUT fuera texto, por ejemplo 22222222T, tendrías que poner el criterio como

....."Rut='" & me.rutcliente & "'"

O sea, apostrofe comillas & y cierra & comillas apostrofe comillas

Hola Julián,

Agradezco tu ayuda, pero no pude hacer funcionar lo que me indicas :/.

Te dejo unas fotos con los nombres de las tablas y los campos quizás estoy haciendo algo mal de lo que me detallaste:

Como tengo tu correo te mando varios ejemplo.

Gracias Julián, te pasaste por la información, me fuiste de gran ayuda.

Saludos.

Como tienes mi correo, cualquier cosa que necesites dímelo.

Respuesta
1

Si en el combo (señalado como '2' en la imagen adjuntada) hay una columna con los RUT asociados a los nombres se puede hacer.

Pero no hace falta un combo para eso (a no ser que se utilice para más funcionalidades), pues el Rut se puede buscar en el origen de datos (el que se le asigna al combo) y si existe devolver el nombre asociado (y más datos si fueran necesarios), en caso de no localizarlo enviar un mensaje, o incluso proponer (abrir el formulario de toma de datos) crear un nuevo registro.

Si se dispone del RUT y (se le encuentra) y se visualiza el nombre, utilizar un combo no es la mejor idea pues 'sin desearlo' (es un combo) el usuario puede cambiar cambie el elemento seleccionado y ver un nombre en el combo y tener un RUT (en el cuadro de texto marcado con '1' en la imagen adjunta) que no se corresponde.

Me plantearía cambiar el combo por un cuadro de texto si solo se utiliza para mostrar un dato (el nombre) y en todo caso modificar el comportamiento del combo para actualizar el RUT (pero qué sentido tiene localizar un RUT y después ignorarlo).

Hola Enrique,

Gracias por tu respuesta, no manejo mucho Access pero mi intención es que al colocar el Rut en el cuadro 1 se visualice el dato del nombre en caso de que exista y me parece buena idea que se abra el formulario de ingreso de cliente en caso que no exista. Me podrías ayudar a como hacer esto por favor.

Quedo atento.

Saludos.

Pocos datos para generar un poco de código.

En síntesis, necesitaría el nombre de la tabla en la que están los datos del cliente y los nombres de los campos que se utilizaran para poder generar las funciones de dominio (conocer si existe en la tabla utilizando la función DCount y de existir con la función de dominio DLookup asignárselo al cuadro de texto del formulario ... del que aún no se conoce el nombre)
Si se desea abrir el formulario de toma de datos el nombre es indispensable y si en el hay un cuadro de texto para recibir el RUT... su nombre.

Tras crear el nuevo registro se cerraría el formulario y regresaría al formulario que lo llamo reanudando lo que quedó en suspenso.

Provee los datos y se genera el código que iría en el evento 'después de actualizar' del cuadro de texto en el que se introduce el Rut, a la vuelta (si hay que crear el nuevo RUT) el nombre aparecería en el cuadro de texto correspondiente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas