|
Responder
|
Página <12 |
| Autor | ||
pitxiku
Colaborador
Unido: 27/Septiembre/2017 Localización: En mi casa Estado: Sin conexión Puntos: 1536 |
Enviado: 28/Abril/2021 a las 22:22 |
|
|
También puedes convertir las etiquetas en cuadros de texto, y colocar un Siinm:
=Siinm(Nz(Campo,"")<>"", "Nombre",Null) Y luego ya es cuestión de usar el Autocomprimible y Autoextensible. Otra posibilidad es preparar una consulta que devuelva los títulos y valores, pero para hablar sobre eso hay que saber cómo tienes los datos en las tablas. |
||
![]() |
||
fcoval
Asiduo
Unido: 19/Enero/2013 Estado: Sin conexión Puntos: 225 |
Enviado: 29/Abril/2021 a las 07:57 |
|
No creo que te supere si ya has programado anteriormente, al menos eso creo porque la programación que he usado no es nada complicada. Aunque ya lo tengas solucionado, te voy a dar detalle de como lo he hecho por si quieres intentarlo. Te aconsejo que lo hagas, que lo intentes al menos, y si algo no entiendes, pregunta que en este foro se ayuda y mucho. Te voy a dar detalle de como lo he hecho yo y que mas o menos es como te ha indicado Xavi. Suponiendo que SOLO tienes 7 cuadros de texto, yo en mi ejemplo he usado los siguientes: modelo n_fabricacion año_fabricacion voltaje potencia volt_salida frecuencia Y he definido sus etiquetas así … Etiq_modelo Etiq_n_fabricacion Etiq_año_fabricacion Etiq_voltaje Etiq_potencia Etiq_volt_salida Etiq_frecuencia El codigo completo queda así :
Saludos. |
||
![]() |
||
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14926 |
Enviado: 29/Abril/2021 a las 09:13 |
|
|
Solo por recordar algo sobre las etiquetas asociadas a controles que no todo el mundo sabe y/o recuerda.
Se puede acceder a la etiqueta asociada al control utilizando la colección Controls del control con su índice 0. Me!miTextBox.Controls(0).Name Nos devolverá el nombre de la etiqueta asociada al cuadro de texto miTextBox. De ese modo nos podemos ahorrar algo de tiempo en el nombrado de controles. Un saludo
|
||
![]() |
||
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: en línea Puntos: 14428 |
Enviado: 29/Abril/2021 a las 11:27 |
|
|
¿Recordar? ... mira yo esa no me la sabía ...
![]() Siempre suelo nombrar la etiqueta de un control como Et_NombreControl. Y por cierto, si tienes etiqueta + control asociados, al volver invisible el control también se vuelve invisible la etiqueta. |
||
![]() |
||
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14926 |
Enviado: 29/Abril/2021 a las 11:55 |
|
|
Existe otra forma de acceder al nombre de la etiqueta asociada a un control, pero tiene truco. Si vamos a un formulario en diseño y miramos las propiedades de un control, en la pestaña "Otras", aparece la propiedad "Nombre de etiqueta". Si analizamos con la ventana de inspección, esa propiedad no aparece. Si hacemos una pequeña función para recuperar las propiedades de un control, una tontería como esta:
Obtenemos en la ventana de inmediato todas las propiedades con sus valores (casca al llegar a la Text por enfoque pero da lo mismo) Entre las propiedades hay una llamada LabelName que equivale al "nombre de etiqueta" de la ventana. Pero si preguntamos por Me!miControl.LabelName obtenemos un error 438. De hecho, LabelName ni siquiera aparece en el IntelliSense. Para acceder a la propiedad se debe hacer así: Me!miControl.Properties("LabelName") ¡¡Manda güevos!! (con perdón) |
||
![]() |
||
a.alf
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Colaborador
Unido: 19/Octubre/2006 Localización: Castello España Estado: Sin conexión Puntos: 508 |
Enviado: 29/Abril/2021 a las 21:07 |
|
|
Hola.
He estado aplicando el código de "fcoval" y me ha funcionado correctamente, como era de esperar. El código lo he entendido todo menos lo siguiente:
No entiendo el "pos +1 " la posicion que asigna... Adjunto imagen del resultado. ![]() Gracias. |
||
|
Un saludo.
Si alguien te regala su tiempo, agradecelo eternamente, ya que te está dando algo que nunca recuperará. |
||
![]() |
||
fcoval
Asiduo
Unido: 19/Enero/2013 Estado: Sin conexión Puntos: 225 |
Enviado: 30/Abril/2021 a las 08:47 |
|
|
Me alegro que lo hayas aplicado... veamos si soy capaz de explicarte la duda.
Partimos del siguiente supuesto: Que tienes 7 cuadros de texto modelo n_fabricacion año_fabricacion voltaje potencia volt_salida frecuencia y que si todos tuvieran valor, el orden de su posicion seria 0,1,2,3,4,5 y 6. Y ademas, el campo "modelo" siempre va a tener información y por tanto, la posición incial de dicho cuadro de texto siempre sera la definida como 0 y será siempre visible para este campo únicamente. Pero para el resto de campos, el 0 significará que no tienen valor y que deben de ocultarse. Por tanto tengo que tener algo que me indique la posicion de cada campo y que salvo el 0 (que usaremos para ocultar campos que no tengan valor), deben de ser valores que no se pueden repetir para no tener dos cuadros de texto en la misma posicion. Por esta razón, el primer If es para tratar el siguiente campo llamado "n_fabricacion"
Analizamos cada campo y: - si no tiene valor, digo que su pos_xxxxxxx será 0 para posteriormente ocultarlo. - si tiene valor, digo que la posición de ese campo debe de ser la siguiente a la ya ocupada, y para el primer If, sera 1 (pos = pos + 1, partimos de pos = 0) y le asigno dicho valor a la posicion de dicho campo con pos_xxxxxxx = pos Analizo el siguiente campo y lo mismo: - si no tiene valor, digo que su pos_xxxxxxx será 0 para posteriormente ocultarlo. - si tiene valor, digo que la posición de este campo será la siguiente, y en este caso ya sera 2 (pos = pos + 1, porque "pos" ya era 1) y le asigno dicho valor a la posicion de dicho campo con pos_xxxxxxx = pos Tengo que tener una variable (que yo he llamado "pos") y que su valor desde 1 al 6 no se me puede repetir. No sé si me he sabido explicar. Un detalle mas, el codigo que yo te puse era con etiquetas independientes de los cuadros de texto porque no sé si las tenias asociadas o no (es muy facil asociarlas) en caso de tenerlas asociadas, como bien comento Xavi y Mihura, con solo aplicar visibilidad True o False al cuadro de texto le vas a trasladar el mismo estado a su etiqueta asociada. Xavi, coincido con Mihura en lo que te comenta sobre "Me!miTextBox.Controls(0).Name", tampoco lo conocia. muchas gracias. |
||
![]() |
||
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14926 |
Enviado: 30/Abril/2021 a las 08:51 |
|
|
A ver, que yo tampoco lo sabia "de toda la vida". De hecho, hace poco menos de un año que lo puse aqui explicando de dónde lo había sacado.
Me alegro que sea útil. Un saludo |
||
![]() |
||
a.alf
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Colaborador
Unido: 19/Octubre/2006 Localización: Castello España Estado: Sin conexión Puntos: 508 |
Enviado: 30/Abril/2021 a las 23:42 |
|
|
Gracias, te has explicado perfectamente.
Dejo el código así y no emplearé los dos informes mas. Gracias a todos por ayudarme una vez mas. Por mi se puede cerrar el hilo. Gracias.
|
||
|
Un saludo.
Si alguien te regala su tiempo, agradecelo eternamente, ya que te está dando algo que nunca recuperará. |
||
![]() |
||
Responder
|
Página <12 |
|
Tweet
|
| Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |