** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Propiedad ControlSource de un TEXTBOX
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoPropiedad ControlSource de un TEXTBOX

 Responder Responder
Autor
Mensaje
AlvaroAEM Ver desplegable
Nuevo
Nuevo


Unido: 02/Marzo/2020
Localización: Madrid
Estado: Sin conexión
Puntos: 3
Enlace directo a este mensaje Tema: Propiedad ControlSource de un TEXTBOX
    Enviado: 02/Marzo/2020 a las 16:27
Buenas tardes

Estoy intentando crear un procedimiento en VBA que me genere en un formulario existente una serie de campos que cada vez que se abra el formulario recalculen su contenido. Para ello estoy usando campos TextBox y de ellos su propiedad "ControlSource"

El código que estoy usando es:

 nombres(0) = "c" & indicador & "Mesactual" 'indicador es un parámetro de entrada en la función
 origen(0) = "=DCont(""*"",""" & nombres(0) & """)"

    Set ctlText = CreateControl("Resumen", acTextBox, , "", "", intDataX, intDataY)
     With Forms!Resumen.Controls(nombres(i))
       .Width = 650
       .OnClick = "=ejecuto_Click()"
       .ControlSource = origen(i)
       .BorderStyle = 0
    End With

El código está en un bucle ya que son varios los campos que tengo que crear de ahí el uso de Arrays 

El problema me lo estoy encontrando en que cuando abro el formulario, el campo contiene #¿Nombre? en lugar del valor "cuenta" de la tabla "nombres(0)". Lo que me está volviendo loco es que si abro el formulario en vista de diseño, la propiedad contiene el valor esperado:=DCont("*";"cCI22173Mesactual") Y SIN CAMBIAR NADA PULSO ACEPTAR Y EL FORMULARIO CALCULA CORRECTAMENTE EL VALOR ESPERADO

Muchas gracias de antemano, cualquier ayuda será bienvenida



Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1536
Enlace directo a este mensaje Enviado: 02/Marzo/2020 a las 19:02
Cuando trabajas en VBA, mejor usar los nombres de funciones, propiedades,... en inglés. Y lo mismo vale para los separadores (puntos, comas,...):

origen(0) = "=DCoUnt(""*"",""" & nombres(0) & """)"
Arriba
AlvaroAEM Ver desplegable
Nuevo
Nuevo


Unido: 02/Marzo/2020
Localización: Madrid
Estado: Sin conexión
Puntos: 3
Enlace directo a este mensaje Enviado: 02/Marzo/2020 a las 22:24
Eureka!!!

Muchísimas gracias pitxiku. Toda una semana dando vueltas al dichoso código y la solución era tan obvia y sencilla cómo cuentas.

Gracias de nuevo. No habría llegado por mi mismo a la solución
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable