Ventana emergente contabilizando registros

Tengo una base de datos con un campo llamado"articulos" y me gustaría que al escribir en el formulario, en dicho campo, me apareciese (al erminar de escribir o al cambiar de campo) una ventana que dijese que ese nombre ya existe y que hay (x) registros. Por ejemplo: Hay 4 registros con ese nombre. Y al ser posible que se visualizasen los registros en otro formulario distinto.
Creo que es algo complicado.

1 Respuesta

Respuesta
1
De nuevo basedatos.
No, no es tan complicado como parece. Se puede hacer con código pero me parece más fácil hacerlo mediante una "consulta" (lo pongo entrecomillado porque no tiene que ser una consulta al uso, sino el origen de datos de un formulario por ejemplo).
Según lo que quieras mostrar, puedes crear un formulario o un cuadro de lista. Te puede mostrar "cuantos" o te puede mostrar directamente los registros, con todos los campos del registro o sólo con los que desees... Depende de lo que quieras exactamente.
El origen de datos de ese formulario seria una consulta sobre la tabla, y en el campo "articulos" le pondrías como parámetro "= [forms]![nombredelformulario]![nombredelcontrol].
También debes decidir cuando quieres mostrarlo. Yo tengo en una BD algo parecido y lo muestro al hacer doble clic sobre el campo, ya que si lo pones en el evento al cambiar o al perder el enfoque, o similar, cuándo "revises" un registro y quieras que te muestre ese formulario tendrías que entrar en el campo y lanzar el evento.
Se me olvidaba, lógicamente en el evento escogido haces que se abra el formulario.
Hola Kepasada, es un placer estar por aquí contigo. Veras... como te dije en preguntas anteriores (por cierto resueltas con éxito, gracias nuevamente), se trata de una BD con más de 30.000 registros, y lo que trato de evitar es repetir algún artículo. Lo que me gustaría, es que en el campo de "artículos" donde escribo la descripción del articulo en cuestión, me "cantára" mediante una ventana emergente "mensaje de alerta o similar"que dijese ESTE ARTICULO YA EXISTE. Pero como hay artícuos, cuyas características son iguales, pero que se difrencian por ejemplo por el color, me gustaría si es posible, que ese mensaje de "alerta" me diera la opción de ver un formulario más sencillo en este caso, para poder ver los artículos que ya existen, a ser posible con su foto respectiva.
De todas formas, con el hecho de que la BD, me dijese ESTE ARTICULO YA EXISTE, al poner el nombre del artículo (por ejemplo: Bolígrafo BIC), ya me daría por satisfecho. Pero no cabe duda que si pudiera abrir un pequeño formulario para "consultar los que YA EXISTEN"sería mucho mejor.
En cualquier caso, si tu respuesta puede valer para mis necesidades, me gustaría que me la aclareases un poco mejor, creo que te entiendo... pero si me la explicas un poco paso a paso quizá lo entienda mejor ya que por mis escasos conocimientos he intentado pornerla en práctica y no he podido.
Un cordial Saludo
Jose Antonio.
¿No es posible que cada artículo tenga un código o similar que lo haga único?. Es decir, si yo al articulo "bolígrafo BIC azul punta fina" le doy un código único (o la definición del artículo es esa literalmente), no es complicado que al meter el mismo código o la misma denominación del artículo, te avise de que existe y te lleve al registro existente.
Dime tú si es posible, ya que no se cómo lo tienes "montado".
Cómo ejemplo, te comento: Yo tengo una aplicación para un cliente, que sirve para el control de un inventario. Cada pieza tiene un número de serie que lo identifica, por lo que cuando se crea un nuevo registro, al introducir el número de serie, si este ya existe, le lanza un mensaje y le lleva al registro en cuestión. Pero se puede hacer sobre el número de serie o sobre cualquier campo que identifique, en tu caso, un articulo unicamente.
Hola, efectivamente es como dices, pero lo que pasa es que no todos los artículos (la mayoría) tienen nº de código. Por ello, me interesaría que al escribir la definición del artículo en el campo"artículo", me dijese que ya existe. Las "peculiaridades" de los artículos están en otros campos, como color, forma, material, etc...
Un saludo.
Bueno si es como dices, creo que lo mejor es optar por que te muestre un formulario directamente y "manualmente" decidir si está repetido o no.
Aunque también podrías crear una tabla con los artículos, donde sólo fuese la "definicion" "color" "forma" "material", etc., del tal forma que cada articulo seria único. Si luego en el formulario en cuestión vas eligiendo (mediante cuadros combinados por ejemplo) la definición, color, forma, material, etc, te diría que está repetido. Pero bueno, sino quieres liarte, de momento, seguro que posteriormente sí, puedes hacerlo de la siguiente manera:
Crea un formulario con origen de datos en una consulta de la tabla que como parámetros tenga en cada campo el mismo que en el formulario, me explico:
Campos de la tabla: Definición, color, forma, material
Controles en el formulario:  F_Definicion, F_color, f_forma, F_material...
En el origen de datos del formulario que quieres mostrar, lo basarías en una consulta, no tiene que ser "fisica", en la cual escogerías los campos que quiere que te muestre, por ejemplo los que hemos comentado anteriormente.
Luego en el criterio de cada campo pondrías.
En el campo"descripcion":
[forms]![Nombre_del_formulario_donde_introduces_los_datos]![F_descripcion]
Y así para todos los siguientes.
Luego sólo tendría que llamara a ese formulario en el evento que te pareza más apropiabo y ya est<
Hola, ya he creado un formulario... ni se si lo hice bien ya que no lo he basado en una consulta, sino en los campos de las tablas que me interesa saber si un artículo se repite.
Cuando me dices que no debe ser una consulta física, entiendo que no es necesario crear una consulta específica.
Tampoco se a que te refieres cuando me dices que en el criterio de cada campo ponga el código [forms]! [Nombre_del_formulario_donde_introduces_los_datos]![F_descripcion], pues no se "donde" está ese criterio.
Estoy algo liado.
Una Saludo.
Una visión general para que entiendas mi enfoque (que tal vez no es el tuyo): En mi trabajo "construyo" y manejo bastantes "aplicaciones" (me gusta llamarlas así porque no siempre son bases de datos como tal) A cada una de ellas entra un número cuantioso de usuarios. Cada una de ellas realiza muy diversas cosas, por lo que al final puede tener cada una, por ejemplo, 10 tablas, 30 consultas, 8 formularios y 12 informes.
Cuando uno tiene que modificar una de ellas por cualquier causa, es una locura volver a mirar de que consulta pende cada formulario, informe, cuadro combinado etc.
Por eso digo que no tiene que ser "fisica". Tú entras en el apartado consultas de la BD, creas una consulta, le das un nombre ( a eso le llamo yo una consulta "fisica") y posteriormente basas en ella un formulario, un informe, un cuadro combinado, una lista de valores... Un "follon". Además de que sobrecargo una Bd sin necesidad.
Puedes hacer lo mismo si por ejemplo, en un formulario, vas a el origen de datos, pinchas en los tres puntitos "..." y creas la "consulta", que se quedara como sentencia SQL en ese origen de datos y no aparecerá en el apartado consultas. Luego es mucho más fácil saber de dónde viene todo y modificarlo directamente en ese origen de datos.
Ahora pasando a tu consulta: Si basas el formulario en la tabla directamente, ¿cómo vas a hacer para que Access te descrimine los que se repiten?. Access te mostrara todos los datos que están en esa tabla, sin hacer ninguna distinción.
Para establecer unos criterios de quieres que te devuelvan (Ejem: Dame los artículos que su precio sea mayor a 89) debes hacer una consulta. Lógicamente lo puedes hacer de las dos maneras "fisica" o "integrada" en el formulario. Para el resultado final, da igual, la diferencia es la que te comentaba antes.
Es en esa consulta dónde debes poner los parámetros (condiciones) debajo de cada campo. Sí sólo pusieses el parámetro que te he comentado anteriormente, devolvería todos los registros de la tabla cuyo campo "descripción" fuese exactamente igual al control del formulario "descripcion". Debes ir añadiendo criterios de esta forma para que te devuelva exactamente lo que quieres. (Puedes consultar en la ayuda de access sobre los criterios que se pueden introducir en una consulta)
Después de este "tocho" (lo he escrito de "corrido")
Hola, siento mucho haber tardado tanto en contestar, pero he estado muy ocupado.
Bien,... parece que te he entendido, lo que no sé es si sabré llevarlo a la práctica. Lo voy ha intentar y te comento algo. Mañana intentaré responderte con los resultados.
Gracias nuevamente por tu interés.
Un Saludo.
Jose Antonio.
Hola, buenas tardes.. Te explicaré paso por paso lo que hice, abrir el formulario donde escribo los datos, que se llama Introducir datos, en las propiedades de dicho formulario, en la pestaña DATOS, donde dice Origen del Registro, hice clic en (...) y se abre una ventana que dice "Lamo al generador de consultas sobre una tabla" ¿desea crear una consulta basada en al tabla?, hice clic en SI.., se habré la ventana Instrucción SQL Generador de consultas, en dicha ventana selecciono el campo "artículos", debajo aparece la única tabla que tengo Tabla 1, en Criterios escribo
[forms]![Introducir datos]![articulos]
Cierro la ventana y me pregunta si deseos guardar los cambios en la instrucción SQL y actualizar la propiedad, hago clic en SI. Cierro las propiedades del formulario. Me aparece una ventana con un campo que dice Introduzca el valor del parámetro, ademas de una leyenda que dice Formularios! Introducir datos! Artículos. No escribo nada en el campo porque no se lo que hay que escribir, cierro todo. Cuando vuelvo a abrir la BD, aparece de nuevo la ventana con el campo.
Creo que algo no hice bien.
Saludos.
Te estoy preparando un rápido ejemplo de cómo hacerlo. Dame tu dirección o mandame un mensaje a [email protected] y te lo mando.
Hola, mi e-mail es [email protected]
Gracias, un saludo.
Te he mandado el ejemplo (en dos email, porque en el primero te explico el procedimiento pero se me olvido mandarte la BD).
Espero que te sirva.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas