Concatena testo

di il
25 risposte

Concatena testo

Buongiorno,
avrei bisogno del vostro consiglio.
ho un report che mi rende dei dati come di seguito:

nome cliente ------ n.ro impegno

cod. articolo: NAMCP1
cod. articolo: NAMCP2
cod. articolo: NAMCP3

Totale record: 3

ho bisogno di un campo che mi elenchi in fila il codice degli articoli così
NAMCP1|NAMCP2|NAMCP3

come posso fare?
Gentili come sempre, vi ringrazio.

25 Risposte

  • Re: Concatena testo

    Predisponi una variabile Stringa e su evento Format del Corpo, o della sezione in cui hai quei campi/controlli, vai a concatenare i valori.
    
    sConc=sConc & Me!txtBoxNumeroImpegno & ";"
    Poi sulla sezione in cui vuoi mettere la TextBox, vai a valorizzarla con la variabile...
    
    Me!txtRiepilogo=sConc
  • Re: Concatena testo

    Sono certa che non ho interpretato bene le tue indicazioni, perchè non funziona.

    Considera che il Report è così suddiviso:

    intestazione gruppo0
    qui ci sono i campi -nome cliente- e -num doc (il numero impegno) e la casella testo54 non associata
    ------------------------
    dalla finestra proprietà - evento - sul click - genera codice ho scritto:
    Private Sub IntestazioneGruppo0_Click()
    Me!txtRiepilogo = sConc
    End Sub
    --------------------------------
    intestazione gruppo1
    qui c'è solo 'etichetta del cod art

    corpo
    qui c'è il cod art
    nella finestra delle proprietà - evento - sul clic
    ------------------------------------------
    dalla finestra proprietà - evento - sul click - genera codice ho scritto:
    Private Sub Corpo_Click()
    sConc=sConc & Me!txtBoxnum doc & ";"
    End Sub

    sperando di aver fatto giusto il primo passaggio, nella casella di testo 54 cosa devo scrivere?
    Mi scuso per la mia ignoranza.
  • Re: Concatena testo

    Hai provato a capire la corretta sequenza degli Eventi delle sezioni...?
    Se condo te l'INTESTAZIONE Gruppo, che mi pare ovvio venga graficata prima del Corpo, è possibile che venga eseguita DOPO quando la variabile [sConc] è stata valorizzata...?
    Se viene eseguita PRIMA, come a rigor di LOGICA forse potresti intuire se non hai verificato la sequenza con qualche prova, come puoi aver valorizzato la variabile [sConc] di conseguenza vedere qualche cosa nel controllo non associato...?

    Il Debug temo sia strumento fondamentale per avvicinarsi alla programmazione VBA, e si deve imparare PRIMA di accedere all'IDE.
  • Re: Concatena testo

    Forse non ho capito il problema, ma per me si potrebbe risolvere con una query e la funzione di concatenazione di Allen Browne. Leggi qui
    http://allenbrowne.com/func-concat.htm
    poi fai poggiare il report sulla query.
  • Re: Concatena testo

    Scusami ho scritto male nel corpo del msg, ti faccio un copia incolla di ciò che ho scritto, purtroppo sono a lavoro e mi è partito l'invio senza prima aver riletto:

    Private Sub Corpo_Click() (qui c'è la casella del cod. art.)

    End Sub

    Private Sub IntestazioneGruppo0_Click()
    sConc=sConc & Me!txtBoxnum doc & ";" (perchè qui ho il campo del numero d'impegno)
    End Sub

    Private Sub PièDiPaginaGruppo0_Click() (perchè qui ho la casella di testo 54)
    Me!txtRiepilogo = sConc
    End Sub

    adesso potresti dirmi cosa ho sbagliato o cosa ancora devo fare?
    grazie per la pazienza.
  • Re: Concatena testo

    Grazie Osvaldo.
    ne terrò sicuramente conto come le indicazioni di Alex di studiare il debug.
    solo che adesso ho cominciato con le istruzioni Alex che spero riuscire a portare a termine.
    Siete veramente tanto disponibili grazie di cuore.
    Angela
  • Re: Concatena testo

    Nei Report il metodo suggerito da Osvaldo non ha senso perchè la query di cui parla appesantisce molto l'esecuzione nei tempi di elaborazione, mentre nel Report l'impatto è sostanzialmente nullo.
  • Re: Concatena testo

    Ok, quindi Alex come continuo
    o cosa sbaglio.
  • Re: Concatena testo

    Angelo68 ha scritto:


    Ok, quindi Alex come continuo
    o cosa sbaglio.
    Ti ho spiegato, cercado di farti capire dove forse puoi aver sbagliato...
  • Re: Concatena testo

    Chiaro, ma io ho interpretato così quello che mi hai scritto:

    Private Sub IntestazioneGruppo0_Click()
    sConc=sConc & Me!txtBoxnum doc & ";"
    End Sub
    --------------------------------------------
    Private Sub Corpo_Click()
    Me!txtRiepilogo = sConc
    End Sub
    ------------------------------------------------
    Private Sub PièDiPaginaGruppo0_Click()

    End Sub
    ----------------------------------------------
    Private Sub Testo56_Click()

    End Sub
    -----------------------------------------------
    ma dove dovrebbe restituirmi i dati, forse mi manca qualche altra informazione? ho fatto le giuste correzioni?
  • Re: Concatena testo

    Ti faccio notare che stai gestendo solo gli eventi "_Click". @Alex ti ha spiegato che la concatenazione va fatta nell'evento Format del Corpo. Dovrai pertanto avere una cosa tipo
    Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
    'concateno la stringa...
    End Sub
    Poi in un altro evento, magari il PièDiPagina_Format, fai l'assegnazione.

    Ovviamente la variabile va dichiarata a livello di modulo, altrimenti il valore non persiste da un evento all'altro.
  • Re: Concatena testo

    Quindi se ho capito bene così:

    Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
    sConc=sConc & Me!txtBoxCOD ART & ";"

    End Sub

    Private Sub PièDiPaginaGruppo0_Format(Cancel As Integer, FormatCount As Integer)
    Me!txtRiepilogo = sConc
    End Sub
    -----------------------------------------------------------------
    non ho bene be capito
    "Ovviamente la variabile va dichiarata a livello di modulo, altrimenti il valore non persiste da un evento all'altro."
    scusa sembro stupida, ma in effetti è perchè non sono molto pratica di VBA.
    Altra domanda:
    ma coi come faccio a visualizzare i valori nella casella di testo non assegnata?
  • Re: Concatena testo

    Angelo68 ha scritto:


    Quindi se ho capito bene così:
    ...
    Altra domanda:
    ma coi come faccio a visualizzare i valori nella casella di testo non assegnata?
    Hai provato?

    Angelo68 ha scritto:


    non ho bene be capito
    "Ovviamente la variabile va dichiarata a livello di modulo, altrimenti il valore non persiste da un evento all'altro."
    Serve studiare l'ambito di visibilità delle variabili. Ti lascio il link: https://docs.microsoft.com/en-us/office/vba/language/concepts/getting-started/understanding-scope-and-visibility

    Altro argomento interessante ed utile: https://docs.microsoft.com/it-it/office/vba/language/reference/user-interface-help/option-explicit-statement

    P.S: come da regolamento, usa il TAG apposito per il codice.
  • Re: Concatena testo

    Angelo68 ha scritto:


    ....
    non ho bene be capito
    "Ovviamente la variabile va dichiarata a livello di modulo, altrimenti il valore non persiste da un evento all'altro."
    scusa sembro stupida, ma in effetti è perchè non sono molto pratica di VBA.
    Altra domanda:
    ma coi come faccio a visualizzare i valori nella casella di testo non assegnata?
    E' indispensabile uno studio di base, altrimenti la fruizione dei suggerimenti si traduce in nulla di fatto...!
    Direi che le indicazioni sono sufficienti, ora prova a fare qualche passo indietro e colmare le lacune di base magari approfittando di qualche buon testo.
Devi accedere o registrarti per scrivere nel forum
25 risposte