Ciclo For con nomi Textbox

di il
20 risposte

Ciclo For con nomi Textbox

Salve,
devo sommare più volte(decine) la seguente stringa:

(IIf(IsNull([TXB_colazione1]), 0, ([TXB_colazione1].Column(6) * [TXB_colazione_qta1]) / 100))

e nella stringa varia solo il numero finale del nome della textbox TXB_colazione1,TXB_colazione2,TXB_colazione3,TXB_colazione4 etc
e stessa cosa per TXB_colazione_qta1, TXB_colazione_qta2,TXB_colazione_qta3 etc...

sto provando a buttur giu un ciclo for next ma non ne vengo a capo.
Credo sia una cosa piuttosto banale ma le mie scarse conoscenza la fanno diventare complicata.
Ho fatto un pò di ricerche ma non trovo niente che associ il nome di una textbox ad una variabile.
Potete aiutarmi?

Grazie

20 Risposte

  • Re: Ciclo For con nomi Textbox

    Secondo me, non so se ha senso darti un suggerimento strettamente legato alla tua domanda. Più direttamente, mi viene da chiederti:
    Perchè hai tutte quelle textbox con quei nomi? Non puoi elencarli "verticalmente" in una tabella figlia?
  • Re: Ciclo For con nomi Textbox

    Come mai devi sommare dai controlli e non da una Query DATI...?
    La cosa è abbastanza anomala... magari ha senso ma se non lo spieghi... non è scontato.
  • Re: Ciclo For con nomi Textbox

    Come scritto le mie conoscenze sono piuttosto limitate, quindi è probabile che abbia strutturato male tutto.
    Provo a descrivere quello che devo fare.
    Ho una serie di caselle combinate(TXT_colazione1,TXT_colazione2 etc...) che hanno come origine una query con X colonne.
    Da ognuna delle caselle combinate seleziono la riga che mi interessa e poi devo sommare tutti i valori di ogni colonna(moltiplicati per TXB_colazione_qta1,TXB_colazione_qta2 etc...) in altrettante textbox con i valori totali.
    In realtà ho provato anche a fare una query ma mi sono perso nel tentativo....
  • Re: Ciclo For con nomi Textbox

    tramas ha scritto:


    ...
    Ho fatto un pò di ricerche ma non trovo niente che associ il nome di una textbox ad una variabile.
    (Hai cercato poco)
    Per riferirsi ad un controllo presente in una maschera (o in un report, il principio non cambia), ci sono vari sistemi. Uno di questi è
    NomeMaschera("NomeControllo"), che in realtà è la forma contratta di NomeMaschera.Controls("NomeControllo")
    NomeControllo è... il nome del controllo ma può essere anche il risultato di un'operazione di concatenazione tra una parte fissa, tipo "TXB_colazione" e una parte variabile costituita da un numero che cambia all'interno di un ciclo.
    Prova a scrivere questo codice nell'evento Click di un pulsante di comando, creato per questa prova
    Dim i As Integer
    For i = 1 To 10
         Debug.Print "TXB_colazione" & i
    Next
    e guarda cosa compare nella Finestra immediata.
    Adesso fai tu i pochi passi che mancano a raggiungere il tuo obiettivo.

    Permettimi però di prenderti in parola quando scrivi

    tramas ha scritto:


    ...Potete aiutarmi?
    mettendoti questa pulce nell'orecchio: sicuro che quello che stai facendo sia giusto?
    Non che ciclare tra i vari controlli sia una cosa sbagliata in assoluto, no, quanto piuttosto il fatto che tu abbia n controlli che si chiamano "TXB_colazione" con un suffisso numerico e che tu debba farne la somma. Fa venire il sospetto che sotto ci sia un'origine dati non normalizzata. Pensaci. Vedo che anche Osvaldo ed @Alex invece di darti una risposta secca hanno percorso la stessa mia seconda indicazione (che però dovresti mettere al primo posto).
  • Re: Ciclo For con nomi Textbox

    Io ho il forte sospetto che l'errore più grande sia nella progettazione tabelle alla BASE. Quali sono i nomi propri di tabelle (con relativi campi), maschere, eventualmente query?
  • Re: Ciclo For con nomi Textbox

    Philcattivocarattere ha scritto:


    tramas ha scritto:


    ...
    Ho fatto un pò di ricerche ma non trovo niente che associ il nome di una textbox ad una variabile.
    (Hai cercato poco)
    no, guarda, forse ho cercato male......

    Comunque grazie, per la dritta.
    Per quanto riguarda la struttura sono certo che con le dovute conoscenze si possa fare diversamente e meglio.
    Proverò non appena possibile!
  • Re: Ciclo For con nomi Textbox

    OsvaldoLaviosa ha scritto:


    Io ho il forte sospetto che l'errore più grande sia nella progettazione tabelle alla BASE. Quali sono i nomi propri di tabelle (con relativi campi), maschere, eventualmente query?
    Ho una tabella alimenti con una 50ina di campi, una tabella utenti(che però in questo caso non fà differenza).
    Una query che in base ad alcune selezione nella maschera "Dieta" visualizza nelle casellacombinata gli alimenti che poi selezione e vorrei ottenere la somma delle varie colonne.
    La difficoltà(per me) nel fare una query nasce dal fatto che ogni CCombinata va moltiplicata per un valore q.tà.....
  • Re: Ciclo For con nomi Textbox

    tramas ha scritto:


    Ho una tabella alimenti con una 50ina di campi
    In teoria una tabella può contenerne anche molti di più, ma il mio sospetto continua. Molti di quei campi si chiamano tipo Alimento1, Alimento2, Alimento3...?
  • Re: Ciclo For con nomi Textbox

    No, la tabella alimenti ha campi ID, decsrizione, Kcalorie, proteine, lipidi, glucidi....etc....
  • Re: Ciclo For con nomi Textbox

    tramas ha scritto:


    No, la tabella alimenti ha campi ID, decsrizione, Kcalorie, proteine, lipidi, glucidi....etc....
    La Tabella non può prevedere questi Attributi... gli attributi dell'alimento sono da interpretare di norma in Relazione 1-M... quindi ti potrebbe mancare 1 Tabella.
  • Re: Ciclo For con nomi Textbox

    Non ne capisco il motivo.....Ogni alimento ha il proprio ID e un proprio valore per ogni colonna.....perchè un ulteriore tabella?
  • Re: Ciclo For con nomi Textbox

    Se sono Attributi SEMPRE FISSI può anche aver una ragione d'essere...ma credo che possa innescare poi complicazioni in termini di Query ed altro...
    La struttura normale dovrebbe vedere appunto Questi come Attributi dell'alimento e, nell'insieme la logica richiederebbe una relazione 1-M, non è che questa si applica solo se serve flessibilità... si applica perchè dinamicamente il sistema relazionale è fatto per essere gestito cosi... ovviamente questo ti obbliga a fare queste complicazioni che non avresti in Forma NORMALE.
    Aggiungo che, in caso di Maschere continue, potresti avere sorprese più fastidiose quando vai ad editare il singolo Attributo e devi rigenerarne il Valore calcolato finale...
    Come sempre, per considerare come agire, serve prima di tutto avere una discreta conoscenza della Teoria, poi del Mezzo che si usa e solo così si può decidere per il meglio.
  • Re: Ciclo For con nomi Textbox

    Gli attributi sono fissi.
    ma se dovessi creare 2 tabelle, la seconda conterrebbe gli attributi e la prima solamente ID e Descrizione?
  • Re: Ciclo For con nomi Textbox

    tramas ha scritto:


    se dovessi creare 2 tabelle, la seconda conterrebbe gli attributi e la prima solamente ID e Descrizione?
    Esatto. Non dimenticare il campo IDAlimento (mi raccomando nomina i campi ID sempre esplicitamente) nella tabella Attributi come Chiave Esterna (FK).
Devi accedere o registrarti per scrivere nel forum
20 risposte