Visualizzazione dei risultati da 1 a 5 su 5

Discussione: variabili annidate

  1. #1

    variabili annidate

    gentile forum aiuto !
    ho un piccolo problema da risolvere entro domattina:
    devo leggere il valore di una variabile contenuta in un'altra...
    ma non concatenando i contenuti.
    io, quando usavo dBase me la cavavo egregiamente con una cosa che si chiamava "macrosostituzione" e che si traduceva così:
    v_1="print"
    v_2=v_1 dava v_2="print"
    v_2=&v_1 dava il via alla stampa

    quindi bastava anteporre il carattere "&" alla variabile per abilitare il suo contenuto (e, se era un comando, attivarlo).
    c'è qualcosa di simile in VBA ?
    Grazie


  2. #2
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    111

    Re: variabili annidate

    Originariamente inviato da lorisr
    gentile forum aiuto !
    ho un piccolo problema da risolvere entro domattina:
    devo leggere il valore di una variabile contenuta in un'altra...
    ma non concatenando i contenuti.
    io, quando usavo dBase me la cavavo egregiamente con una cosa che si chiamava "macrosostituzione" e che si traduceva così:
    v_1="print"
    v_2=v_1 dava v_2="print"
    v_2=&v_1 dava il via alla stampa

    quindi bastava anteporre il carattere "&" alla variabile per abilitare il suo contenuto (e, se era un comando, attivarlo).
    c'è qualcosa di simile in VBA ?
    Grazie

    non ho capito molto bene. tu vorresti qualcosa che riconosca i comandi all'interno di una variabile?

  3. #3
    si, o meglio:
    1) io ho una maschera in Access con 3 campi logici che si chiamano SC1,SC2,SC3

    2) clicco, e quindi imposto a VERO, il campo SC1

    3) nel codice della maschera ho impostato
    v_1 = Screen.ActiveControl.Name (al debug mi risulta: v_1="SC1")

    4) ora devo testare la mia selezione
    v_2 = "Me." & v_1 & ".value"

    if v_2 = True then
    fai una giravolta
    else
    fai una capriola
    end if

    il problema è che il contenuto di v_2 viene visto come una stringa che si chiama "Me.SC1.Value" e non per testare il contenuto.

    spero di aver spiegato .... Rigrazie

  4. #4
    no non ti sei spiegato neanche un po'
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  5. #5
    vabbè.
    ho passato una notte (quasi) insonne vagando per manuali e trattati di VBA, nonche help in linea di access (che spessissimo non serve a niente) ma non ne sono uscito.
    io provo a richiedere aiuto cercando si spiegare meglio il problema:

    1) ho una maschera di Access con alcune caselle di controllo

    2) SC1 è una casella di controllo con la spunta (quindi impostrato a TRUE) e ha una etichetta che si chiama SC1_Etichetta

    3) in una routine evento scrivo
    if me.SC1.value = true then
    me.sc1_etichetta.backcolor = rosso
    else
    me.sc1_etichetta.backcolor = bianco
    end if

    4) l'etichetta SC1_Etichetta diventa rossa (essendosi verificato il primo caso)

    il problema nasce ora:

    5) per ragioni complesse ho la necessità di mettere il nome della casella di controllo in una variabile
    v_1="SC1"

    6) ora devo inserire la variabile v_1 nella routine di cui sopra e l'unico modo che conosco è creare una nuova variabile che concateni le parti del comando
    v_2= "me." & v_1 & ".value"

    7) eseguire quindi
    if v_2 = true then
    me.sc1_etichetta.backcolor = rosso
    else
    me.sc1_etichetta.backcolor = bianco
    end if

    8) ecco: così non funziona !

    spero sia spiegato meglio e di non avervi tediato troppo...
    a presto (spero)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.