Utilizo di Variabile in Vbasic

di il
6 risposte

Utilizo di Variabile in Vbasic

Io ho un problema e non so se qualcuno può aiutarmi; in pratica ho 10 campi ingrediente01,ingrediente02...ingrediente10 che possono esere riempiti o no e 10 campi IngredienteUnita01, IngredienteUnita02....IngredienteUnita10 che devono essere visibili tan solo se il suo corrispondente ingredientexx ha qualche dato.
Io ho pensato in usare un For...Next, pero non riesco a farlo funzionare per una cattiva conoscenza di Vbasic
Questo è il script che ho messo:

For Index = 1 To 10
If Not IsNull("Me.Ingrediente" + [Index]) And Not "Me.Ingrediente" + [Index] = "" Then
Me.IngredienteUnita + [Index].Visible = False
Else
Me.IngredienteUnita + [Index].Visible = True
End If

6 Risposte

  • Re: Utilizo di Variabile in Vbasic

    Sicuro che l'idea di avere 10 campi come ingredienti sia giusta...?
    Lo chiedo perché spesso questo approccio lo usa chi proviene da Excel e non ha ancora ben assimilato il concetto di Database relazionale che non funziona in questo modo.
    Puoi valutare meglio:
    TabRicette(1)---->(m)TabIngredienti

    Il codice che poi proponi... ad esempio non funzionerebbe in una maschera continua...deve in ogni caso riferirsi alla collection Controls nella quale puoi indirizzare al Control tramite il nome
    me.controls("Nomecontrollo" & Indice).visible=...
  • Re: Utilizo di Variabile in Vbasic

    Non he una maschera continua, sino una maschera singola.
    Veramente sono due tabelle, una con gli ingredienti ed un'altra con le ricette pero in questa ce un richiamo a 10 ingredienti (massimo), il problema è che non volevo fare vedere le caselle vuote e mi sembrava meglio usare un For..Next a scrivere lo steso script per 10 ingredienti.

    Poi devo dire che non sono un gran che con Vbasic e ne meno con il italiano
  • Re: Utilizo di Variabile in Vbasic

    Dici cose poco sensata per chi ti legge...
    Se hai 1 tabella ricette ed una ingredienti la tua situazione è impossibile salvo tu non abbia messo 10 campi nella tabella ingredienti ed è proprio questo l'errore...
    Quindi vedi tu... ma di certo quello che hai fatto ha mi lati oscuri.
  • Re: Utilizo di Variabile in Vbasic

    Force non riesco a farmi capire bene… mi dispiace
    praticamente di questa maniera funziona

    If Not IsNull(Me.Ingrediente01) And Not Me.Ingrediente01 = "" Then
    Me.Ingrediente01.Visible = True
    Me.IngredienteQuantita01.Visible = True
    Me.IngredienteUnita01.Visible = True
    Me.PrezzoIng01.Visible = True
    Else
    Me.Ingrediente01.Visible = False
    Me.IngredienteQuantita01.Visible = False
    Me.IngredienteUnita01.Visible = False
    Me.PrezzoIng01.Visible = False
    End If

    If Not IsNull(Me.Ingrediente02) And Not Me.Ingrediente02 = "" Then
    Me.Ingrediente02.Visible = True
    Me.IngredienteQuantita02.Visible = True
    Me.IngredienteUnita02.Visible = True
    Me.PrezzoIng02.Visible = True
    Else
    Me.Ingrediente02.Visible = False
    Me.IngredienteQuantita02.Visible = False
    Me.IngredienteUnita02.Visible = False
    Me.PrezzoIng02.Visible = False
    End If

    If Not IsNull(Me.Ingrediente03) And Not Me.Ingrediente03 = "" Then
    Me.Ingrediente03.Visible = True
    Me.IngredienteQuantita03.Visible = True
    Me.IngredienteUnita03.Visible = True
    Me.PrezzoIng03.Visible = True
    Else
    Me.Ingrediente03.Visible = False
    Me.IngredienteQuantita03.Visible = False
    Me.IngredienteUnita03.Visible = False
    Me.PrezzoIng03.Visible = False
    End If

    If Not IsNull(Me.Ingrediente04) And Not Me.Ingrediente04 = "" Then
    Me.Ingrediente04.Visible = True
    Me.IngredienteQuantita04.Visible = True
    Me.IngredienteUnita04.Visible = True
    Me.PrezzoIng04.Visible = True
    Else
    Me.Ingrediente04.Visible = False
    Me.IngredienteQuantita04.Visible = False
    Me.IngredienteUnita04.Visible = False
    Me.PrezzoIng04.Visible = False
    End If

    If Not IsNull(Me.Ingrediente05) And Not Me.Ingrediente05 = "" Then
    Me.Ingrediente05.Visible = True
    Me.IngredienteQuantita05.Visible = True
    Me.IngredienteUnita05.Visible = True
    Me.PrezzoIng05.Visible = True
    Else
    Me.Ingrediente05.Visible = False
    Me.IngredienteQuantita05.Visible = False
    Me.IngredienteUnita05.Visible = False
    Me.PrezzoIng05.Visible = False
    End If

    If Not IsNull(Me.Ingrediente06) And Not Me.Ingrediente06 = "" Then
    Me.Ingrediente06.Visible = True
    Me.IngredienteQuantita06.Visible = True
    Me.IngredienteUnita06.Visible = True
    Me.PrezzoIng06.Visible = True
    Else
    Me.Ingrediente06.Visible = False
    Me.IngredienteQuantita06.Visible = False
    Me.IngredienteUnita06.Visible = False
    Me.PrezzoIng06.Visible = False
    End If

    If Not IsNull(Me.Ingrediente07) And Not Me.Ingrediente07 = "" Then
    Me.Ingrediente07.Visible = True
    Me.IngredienteQuantita07.Visible = True
    Me.IngredienteUnita07.Visible = True
    Me.PrezzoIng07.Visible = True
    Else
    Me.Ingrediente07.Visible = False
    Me.IngredienteQuantita07.Visible = False
    Me.IngredienteUnita07.Visible = False
    Me.PrezzoIng07.Visible = False
    End If

    If Not IsNull(Me.Ingrediente08) And Not Me.Ingrediente08 = "" Then
    Me.Ingrediente08.Visible = True
    Me.IngredienteQuantita08.Visible = True
    Me.IngredienteUnita08.Visible = True
    Me.PrezzoIng08.Visible = True
    Else
    Me.Ingrediente08.Visible = False
    Me.IngredienteQuantita08.Visible = False
    Me.IngredienteUnita08.Visible = False
    Me.PrezzoIng08.Visible = False
    End If

    If Not IsNull(Me.Ingrediente09) And Not Me.Ingrediente09 = "" Then
    Me.Ingrediente09.Visible = True
    Me.IngredienteQuantita09.Visible = True
    Me.IngredienteUnita09.Visible = True
    Me.PrezzoIng09.Visible = True
    Else
    Me.Ingrediente09.Visible = False
    Me.IngredienteQuantita09.Visible = False
    Me.IngredienteUnita09.Visible = False
    Me.PrezzoIng09.Visible = False
    End If

    If Not IsNull(Me.Ingrediente10) And Not Me.Ingrediente10 = "" Then
    Me.Ingrediente10.Visible = True
    Me.IngredienteQuantita10.Visible = True
    Me.IngredienteUnita10.Visible = True
    Me.PrezzoIng10.Visible = True
    Else
    Me.Ingrediente10.Visible = False
    Me.IngredienteQuantita10.Visible = False
    Me.IngredienteUnita10.Visible = False
    Me.PrezzoIng10.Visible = False
    End If

    pero io volevo fare un script più corto usando una variabile insieme a for … next per evitare di tenere tanto scritto
    e posibile che non sia in grado di esprimermi bene o che voglia fare una cosa complessa pero en mi testa sembra cosi semplice, lo unico che mi serviva era cambiar i numeri per il valore della variabile.
  • Re: Utilizo di Variabile in Vbasic

    Premesso che se non vuoi una gestione multilivello ma un domani hai 11 ingredienti dovrai rivedere: codice, maschere e tabelle; ne consegue che sarebbe preferibile, oggi, rivedere la struttura, almeno, in ottica normalizzata.
    Comunque per il codice puoi realizzare un ciclo che prenda a riferimento il controllo in modo da verificare da 1 a 10 gli elementi voluti:
    "forum.masterdrive.it/access-79/access-2003-vba-ciclo-riferimenti-controlli-49762"
  • Re: Utilizo di Variabile in Vbasic

    willy55 ha scritto:


    Premesso che se non vuoi una gestione multilivello ma un domani hai 11 ingredienti dovrai rivedere: codice, maschere e tabelle; ne consegue che sarebbe preferibile, oggi, rivedere la struttura, almeno, in ottica normalizzata.
    Comunque per il codice puoi realizzare un ciclo che prenda a riferimento il controllo in modo da verificare da 1 a 10 gli elementi voluti:
    "forum.masterdrive.it/access-79/access-2003-vba-ciclo-riferimenti-controlli-49762/"
    Il fatto dica di Avere 2 Tabelle è bizzarro:

    PabloFC ha scritto:


    ....
    Veramente sono due tabelle, una con gli ingredienti ed un'altra con le ricette pero in questa ce un richiamo a 10 ingredienti (massimo)....
    Anch'io all'inizio avevo inteso al tuo stesso modo, ma risulta evidente che in questo caso non servirebbe la Tabella lato Molti(INgredienti) che invece dice di avere, ed è quì che mi ha ulteriormente spiazzato...
Devi accedere o registrarti per scrivere nel forum
6 risposte