Jump to content
Sign in to follow this  
jrojasa

Evitar ingreso de datos dos o más veces

Recommended Posts

Hola, quisiera saber si me pueden ayudar, tengo una planilla en la que se ingresan datos mediante un formulario, pero tengo el problema de que si alguien ingresa los datos por segunda o tercera vez, no tengo como "informar" al usuario que los datos ya fueron ingresados y que no los deje grabados en la base de datos, los datos que se ingresan son varios, tratando de resumir, deben ingresar OT, nombre, serie, trabajo efectuado, y otros datos, por lo que se pueden repetir varios datos, pero la diferencia esta en el trabajo efectuado, o el técnico, intente hacer algo con concatenar y luego comparar, pero me quedé entrampado.

Todo se ingresa a la planilla a través de un formulario que cree con una macro, adjunto un ejemplo

Gracias

prueba de repetidos.xls

Share this post


Link to post
Share on other sites

Principalmente el trabajo efectuado, pero mi idea es que verifique todos los datos, ya que se da que un mismo equipo con la misma OT, la misma serie, en general los mismos datos los vea otro técnico, lo que eventualmente estaría bien, el problema es que los técnicos ingresan los datos pero no tienen la precaución de marcar de alguna manera el documento físico del que están tomando los datos, por lo que están ingresando dos o más veces la misma información y necesito sacar información la más veraz posible para hacer mis informes diarios, y que los técnicos no me digan que no ingresaron los datos porque no sabían si ya los habían ingresado antes...

Share this post


Link to post
Share on other sites

Hola

Estoy leyendo nuevamente tu trabajo para entenderlo mas, ya que no tengo mucha informacion, sin embargo, creo comprender que lo que necesitas es tipo de formulario que se genere automaticamente, tipo orden correlativo y que este orden correlativo sea el que ingreses con el formulario para que no se duplique.

Es decir; abres un formulario con su correlativo, seleccionas el tipo de trabajo asignado quizas y seleccionas a la persona que lo hará, imprimis y ese numero correlativo y tipo de trabajo mas la persona seleccionada quedan grabados en tu base de datos.

Luego de realizar el trabajo, este ingresa el numero correlativo con una consulta, llama toda la informacion, llena los campos que deba llenar y guarda. Al guardar, ya esta registrado y por tanto no se podria hacer cambios o llamar el documento ya que está registrado.

Es una idea pero quizas puede servirte y que quizas requiera un analisis para plasmarlo.

Pero igual dejame ver que puedo hacer con lo tuyo.

Observacion : Para cerrar un formulario es mejor Unload me que Me Hide.

Share this post


Link to post
Share on other sites

Hola Enigma25,

Gracias por responder, la idea es llenar una planilla, con los datos de documentos "físicos", la numeración ya esta creada, cuando puse formulario, me refería al que se crea con macros para ingresar datos. Lo que pasa es que estos datos los utilizo para generar reportes que tengo que entregar a diario, todo nació a raíz de que algunos usuarios decían no saber excel, por lo que se me ocurrió que lo mejor era crear una macro que les permitiera sólo ingresar los datos datos solicitados, sin que tuvieran que ir al final de los datos, o buscar alguna información, sólo deben ingresar lo que se pide en el UserForm.

El problema que se me presenta ahora es que los reportes me estaban saliendo con datos repetidos o de menos, ya que los técnicos no se preocupaban si ya habían ingresado los datos o no y volvían a ingresar datos ya digitados, y ahora para no repetir datos se quedan con documentos sin ingresar a la planilla, razón por la que creo que la mejor solución es que ingresen todo lo que tengan por digitar y si se les repite algún documento, la planilla aparte de darles el mensaje de dato duplicado, no deje registrada esta linea duplicada.

No se si me enrede más o pude clarificar el asunto.

En el fondo la cuestión es que al abrir el archivo que adjunté, si le das click a inicio, se abre un formulario para ingresar datos (acá tengo problemas con las fechas, no se como hacer que dpticker muestre la fecha actual, independiente de que se pueda cambiar a fechas anteriores, no futuras; pero esto da para otro tema), en el formulario abierto, ingreso los datos requeridos y le doy click a registrar y la macro tomas los datos y los pone al final de la hoja Data (primera fila vacía) y limpia todos los campos de registro, quedando en espera de nuevos datos.

A ver si ahora pude darme a entender de mejor manera

Saludos

Share this post


Link to post
Share on other sites

Marco Antonio,

La idea es que no se repita ninguna linea completa igual desde la columna "B" a la "L", por ejemplo:

B | C | D | E | F | G | H | I | J | K | L

25-10-13 | PABLO CARRASCO | 123 | 456 | 789 | 912 | REPARACIÓN BÁSICA | Edo Castro | 4,2 | Edo Castro | duplex 3, rpt y 2 equipos Pro 3101

25-10-13 | PABLO CARRASCO | 123 | 456 | 789 | 912 | REPARACIÓN BÁSICA | Edo Castro | 4,2 | Edo Castro | duplex 3, rpt y 2 equipos Pro 3101

Estas son dos líneas que tienen exactamente los mismos datos, por lo que la idea es que cuando se de click a "registrar", la macro haga alguna verificación antes de ingresar los datos, entregue una alerta al usuario y no deje registrados estos datos, dejando el formulario listo para recibir nuevos datos

Saludos

Share this post


Link to post
Share on other sites

Mañana le echo un vistazo si nadie te contesta esta noche.

De todas maneras, ¿Eres consciente que cuando entran textos en estas comparaciones, una simple coma, acento espacio, dará como resultado No duplicado?

Share this post


Link to post
Share on other sites

Macro Antonio,

Gracias por la ayuda y por el comentario, si estoy consciente de lo que me indicas, por eso en la mayoría de los combobox le puse como propiedad que deben ingresar un dato exacto, de lo contrario no lo deja registrar, pensando en esto, quizás la única columna que da lo mismo es la "L" que es un comentario libre.

De todas formas se agradece cualquier ayuda que me puedan dar, ya que seguramente se habrán dado cuenta de que no soy ningún experto en macros, sólo aprendí algunas cosas básicas y con eso estoy tratando de generar esta "base de datos" por llamarla de alguna manera

Share this post


Link to post
Share on other sites

Al igual que el Maestro Macro Antonio, estaré viendo que hacer con el codigo y ver con que puedo ayudarte. sin embargo lo del correlativo era para que fuese el numero de documento unico con el cual ;

1- Limprimas para la persona que lo usara

2- Luego Registres los datos en el

3- Evitar que se registre nuevamente por medio de codigo.

Era una alternativa.

Si se encuentra con el codigo macro con la cual se puede resolver tu trabajo, te daria un ejemplo de como se haria pero necesitaria algo de tiempo.

Share this post


Link to post
Share on other sites

Hola

Tal como lo expresa el Maestro Macro Antonio; "una coma, un punto, un acento dará como resultado No duplicados".

De hecho tambien te digo que si los registros que insertas en la hoja los haces tanto con mayusculas asi como minusculas, siempre serán Datos no duplicados.

Es importante que definas el tamaño de la letra usarás. Esto ayudaria bastante en el como esperamos lograr darte la solucion.

Mis respetos.

Share this post


Link to post
Share on other sites

Enigma25, la verdad es no había pensado en eso de que minúsculas y mayúsculas son diferentes, si existiera alguna forma de que al compararlas no importe el tamaño seria genial, de lo contrario tendría que ver como hacer que todo quede en mayúsculas

Gracias por el apoyo que me están dando

Share this post


Link to post
Share on other sites

Hola, pues esta interesante el tema no tengo mucho tiempo ya que hoy me quedo mucho trabajo, pero les dejo una idea que talvez les sea de utilidad o talvez no.

Bueno hice un botón para probar la macro, lo que hace es recorrer todos los textbox y combobox del formulario y buscar su contenido en una fila, si en una fila se encuentran 9 coincidencias entonces lanza un mensaje si no no pasara nada y buscara en la siguiente fila.

Tengo problemas con el DTpicker pero con los textbox y combobox funciona bien, bueno es solo una idea a ver si se les ocurre algo menos complicado a ustedes.

Haber si me logre explicar bien, pueden probar reduciendo el numero de coincidencias que deba encontrar. En el archivo explico un poco el proceso.

Un saludo @[uSER=98799]Enigma25[/uSER] y @[uSER=46507]Macro Antonio[/uSER].

prueba de repetidos.zip

Share this post


Link to post
Share on other sites

Hola Riddle

Mis respetos.

Vi su idea y está genial. De hecho es mejor que la idea que tenia porque ayer estaba algo enredado con los codigos. Yo igual tengo mis problemas con el DTpicker pero con los demas controles estoy bien.

Share this post


Link to post
Share on other sites

Yo lo he enfocado de otra manera:

Al empezar el formulario he llenado un combobox con todas las columnas concatenadas, y en el momento de añadir se comprueba concatenando de nuevo las columnas del rango B:K en el combobox, si el índice es distinto de -1, es que el registro está duplicado.

De hecho es lo que @[uSER=160987]jrojasa[/uSER] describe que era su intención hacer, pero que no lo había conseguido.

No está probado, por lo que es posible que exista algún pequeño error.

Saludos a todos

prueba de repetidos.xls

Share this post


Link to post
Share on other sites

Hola nuevamente, no he podido dar con la forma de evitar ingresos duplicados, por lo que les pido nuevamente ayuda a los maestros del VB, muchas gracias denuevo por lo que me puedan aportar

Saludos

Share this post


Link to post
Share on other sites

Buen dia

Amigo en verdad me disculpo por no dar con la posible solucion a tu tema. No obstante mantengo lo dicho sobre hacer algo mas practico y lo explico de esta manera..:

Imaginate que le asignas una tarea a un tecnico especifico, pues bien, solo tendrias que crear bajo un numero de control el trabajo asignado con los primeros campos llenados (obligatorios). Luego de que el tecnico culmine con dicha tarea, por medio del numero correlativo haga a consulta y llene los campos faltantes y registre.

cuando eso ya se dé por terminado, este registro aunque pueda ser consultado nuevamente no se podrá hacer cambios ya que está cerrado y con ello daria la posible solucion a los datos repetidos.

Es una posible solucion pero que quizas sea funcional si la visualizamos bien. Solo dependeria de usted si le parece.

Mis respetos.

Share this post


Link to post
Share on other sites

Enigma25, gracias nuevamente por atender mi solicitud, la verdad he estado dando vueltas al asunto, para ver como simplificar mi problema, te cuento a grandes rasgos como es el trabajo en mi área, se reciben diferentes equipos ya sea para reparación y/o mantencion, cuando se recibe, se le asigna una Orden de Trabajo (OT), esta orden puede pasar por varios procesos no simultáneos, me explico, llega un equipo se le hace mantencion y se detecta que requiere reparación, por lo que el técnico que hizo la mantención lo ingresa a la planilla como mantención, lo toma otro técnico que le hace la reparación y lo ingresa a la planilla como reparación y luego lo toma un tercer técnico quien le hace Control de Calidad y tambien lo ingresa a la planilla, todo esto con la misma OT, en este caso cada tarea que se realizó se debe ingresar por separado y claramente no es un dato repetido, sin embargo es el mismo equipo, la misma OT, la misma serie, el mismo cliente, el mismo destinatario de servicio, cambian el técnico y la tarea realizada, además de las fechas en que se realizaron las tareas, el problema que tengo es justamente como poder identificar por ejemplo que el técnico que hizo control de calidad ingresó dos veces el control de calidad de un mismo equipo.

Por otra parte hay equipos a los que se les debe hacer programación, apertura de rango, alineamiento, actualización de firmware, y otras tareas, que llevan exactamente los mismos datos excepto la tarea a realizar, entonces aquí es donde me enredo, porque no soy un experto en VB.

Una alternativa que se me ocurre y que puede ser lo que me intentas decir y que no logro comprender, pero que tampoco sabrá como hacerlo, es ingresar el número de documento y que la planilla haga una búsqueda para saber si ya está ingresado y en el caso de que si se haya ingresado, me muestre las posibles tareas por realizar y que tome los datos del equipo, permitiéndome sólo cambiar la fecha, técnico y tarea realizada, quizás estoy pidiendo mucho pero son ideas que me van llegando

Gracias nuevamente

Saludos

Share this post


Link to post
Share on other sites

En realidad no imprimo ningún documento, con esta planilla, lo que hago es sacar las estadísticas de cuanto de cada tarea se hizo y quien la realizó.

los datos que ingreso son los que se incluyen en el formulario que se abre al abrir el archivo o dar click en inicio.

donde dice periodo "desde" "hasta" se refiere al mes de realización de la tarea, es decir si se hizo una programación el 31 de enero y por algún motivo se realizo el registro el 1 de febrero, se pone desde 01-01-2014 hasta 31-01-2014, esto quizás también se pueda mejorar con algo más sencillo; en fecha va la fecha en que se realizó la tarea, me hubiera gustado poner como restricción que no puede ser una fecha posterior a la actual o que esté dentro del rango "desde-hasta", el tipo y número de documento depende de el documento físico que se este ingresando al la planilla, de todo esto lo que me interesa es que las fechas sean correctas y evidentemente que no se repitan las tareas para un mismo articulo, espero haber aclarado las dudas,

Gracias

Share this post


Link to post
Share on other sites

Perfecto, ese es un adelanto entonces.

Veo que no quieres que se repita desde la columna b hasta la l mantiniento asi lo demas quieto. Pues bien, con mas razon para emplear un numero correlativo para que este valide la informacion dada por el usaurio al momento de registrar. Te voy a dar un jemplo de lo que te estoy diciendo y luego me lo confirmas.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×
×
  • Create New...

Important Information

Privacy Policy