** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Trabajar con botones VBA y Access
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoTrabajar con botones VBA y Access

 Responder Responder
Autor
Mensaje
JMJR Ver desplegable
Nuevo
Nuevo


Unido: 06/Febrero/2023
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Tema: Trabajar con botones VBA y Access
    Enviado: 06/Febrero/2023 a las 15:39
Hola.
En un formulario tengo 5 botones y se llaman Boton1, Boton2.... y la etiqueta está vacía.
Pues bien, por otro lado tengo una tabla de Artículos con un IdArticulo y otros campos. Y hay 5 registros.
Quiero que al cargar el formulario que contiene los botones asignará como etiqueta a cada botón el IdArticulo desde el primer registro de la tabla artículos hasta el 5 por ejemplo.
No consigo crear un comando que diga:
***********************************
X=1
Tabla.movefirst
Do while not tabla.eof
"Botón"+STR(x).Caption=IdArticulo
X=x+1
Tabla.movenext

Loop
**********************************
Ésto es lo que no me funciona:

Botón"+STR(x).Caption

Me podrías ayudar?

Muchas gracias.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Enlace directo a este mensaje Enviado: 06/Febrero/2023 a las 18:08
Hay varias maneras de nombrar los controles, a mí me gusta:

   Me.Controls(NombreDelControl).Propiedad = Valor

Por cierto, bienvenido.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
JMJR Ver desplegable
Nuevo
Nuevo


Unido: 06/Febrero/2023
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 06/Febrero/2023 a las 18:20
Muchas gracias por su respuesta. Pero creo que eso no me resuelve el problema que planteó ya que lo deseo es ir aplicando un valor a la etiqueta del botón, pero para identificar cada botón tengo que identificarlo de alguna forma y sería la suma de "Botón"+una variable numérica, X, y mediante un bucle incrementaría x y debería darme "Boton1", "Boton2"....
No sé si me estoy explicando.
Muchas gracias de nuevo.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Enlace directo a este mensaje Enviado: 06/Febrero/2023 a las 19:08
NombreDelControl puede ser tanto una variable string como un literal: "boton1".

Como variable le puedes crear el valor como quieras, p.ej.:

For i = 1 to 5
NombreDelControl = "Boton" & i
Next


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
JMJR Ver desplegable
Nuevo
Nuevo


Unido: 06/Febrero/2023
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 06/Febrero/2023 a las 20:14

Lo que pretendo es crear un panel de botones (Boton1, Boton2...), n botones, para representar unos artículos tipo TPV táctil.
Al entrar al formulario de ventas TPV los 20 botones representaran los 20 primeros artículos de la tabla artículos y al pulsar sobre un botón añadirá una línea de venta.
Lo que no sé hacer es ("Botón"+X).Caption=tablaarticulos.idarticulo

No sé si ahora me he llegado a explicar.
Muchas gracias no obstante por contestar.
Un brazo.

Juan María
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Enlace directo a este mensaje Enviado: 06/Febrero/2023 a las 20:22
Pues ya te he escrito la respuesta.

Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
JMJR Ver desplegable
Nuevo
Nuevo


Unido: 06/Febrero/2023
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 06/Febrero/2023 a las 20:33
Vamos a ver que soy un puro ladrillo. Approve
¿Algo así sería?

Dim NombreDelControl as String

'hago lo necesario para abrir la tabla

Tabla.movefirst ' y me posiciono en el primer registro

Do while not tabla.eof or i>20
   NombreDelControl = "Boton" & i
   Me.Controls(NombreDelControl).Caption = tabla.IdArticulo
   i=i+1
  Tabla.movenext

Loop

'cierro tabla y todo eso
---------------------------------
Muchas gracias

Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Enlace directo a este mensaje Enviado: 06/Febrero/2023 a las 21:07
Thumbs Up a la notación del botón.

La notación de la tabla, un par de opciones:

    Tabla("MICampo")
o
    Tabla!MiCampo


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
JMJR Ver desplegable
Nuevo
Nuevo


Unido: 06/Febrero/2023
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 06/Febrero/2023 a las 21:11
Perfecto.
Mañana lo voy a implementar a ver si lo cuadro todo.
Muchísimas gracias.
Un fuerte abrazo.
Juan María
Arriba
JMJR Ver desplegable
Nuevo
Nuevo


Unido: 06/Febrero/2023
Localización: España
Estado: Sin conexión
Puntos: 15
Enlace directo a este mensaje Enviado: 07/Febrero/2023 a las 08:52
Buenos días.
Toda ha ido perfecto.
Muchísimas gracias Mihura por la ayuda.

Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable