Newsgroup: it.comp.appl.access
Titolo: concatenare del testo

Buongiorno o Buonanotte,
a chi riesce a rispondere a questo quesito regalo la foto di Puffo
Forzuto e Puffetta in intimità e 50 codici ABI a vostra scelta!!
Ho un controllo "RICHIESTA" che sta nella maschera principale e diverse
"CAUSALI" che stanno nella sottomaschera. Entrambe sono stringhe di
testo e sono unite da una relazione tale che ad ogni "RICHIESTA"
corrispondono diverse "CAUSALI".
? Come Faccio a comporre un testo nel controllo "RICHIESTA" composto
dalla concatenazione ragionata e ordinata delle "CAUSALI" (provenienti
da record relazionati)?
es: 
CAUSALE-ID1-1 = Nr1 & " Puffo Forzuto"
CAUSALE-ID1-2 = Nr1 & " Puffetta"
CAUSALE-ID1-3 = Nr50 & " Codici ABI"
allora
RICHIESTA-ID1 = "Vorrei tanto le tue foto di " & CAUSALI-ID1 ... " '1
puffo forzuto, 1 puffetta e 50 codici ABI
... in modo che risulti una frase di senso compiuto.
E' possibile andare a pescate e concatenare stringhe da diversi record?
Spero di essere stato chiaro e che a qualcuno piacciano i Puffi,
Puff Puff
Marino
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Spero di essere stato chiaro e che a qualcuno piacciano i Puffi,
No, non sei stato chiaro, almeno per quanto riguarda la descrizione della
tua situazione e struttura dati.
Comunque potresti cominciare a guardare dlookup, anche se probabilmente si
può risolvere anche in altri modi, ma....
Antonio

 Antonio
Allora...
Il campo RICHIESTA della tabella lato 1 deve essere composto dal
concatenamento di tutti i testi provenenti dal campo CAUSALI della
tabella lato molti.
Il testo inoltre deve prevedere dei ritocchi nel testo elaborato, del
tipo "e" di congiunzione, le virgole ecc...
Se per esempio ci sono una serie di campi CAUSALI (Puffo, Puffetta e
ABI) riferiti a una sola RICHIESTA tale richiesta dovrebbe risultare:
"Sono stati richiesti il Puffo, la Puffetta e 50 Codici ABI"
Spero che ora sia meglio.
Grazie per l'interessamento,


 Spero che ora sia meglio.
Non era quello che intendevo (questo era chiaro) comunque...
Il problema č lo sviluppo della tua elaborazione. Quando deve essere
aggiornata RICHIESTA? Che flusso logico di operazioni vengono eseguite
dall'utente? E cosě via.
Per esempio, aprendo un recordset su una query tra la tab1 e la tab2,
filtrata per l'id della richiesta in corso, scorrendo il recordset potresti
concatenare i vari campi lato molti come ti pare....
Antonio

 Antonio
La richiesta si dovrebbe sviluppare man mano che nella sottomaschera
"causali"
compaiono nuovi record, quindi scorrendo il recordset come dici tu.
Vorrei però creare una funzione che ad ogni valore nuovo inserito mi
riformuli
la query e il testo riferito a 2 campi di quella query ([Causale] e
[Nr]).
Grazie per l'attenzione


 Antonio
La richiesta si dovrebbe sviluppare man mano che nella sottomaschera
"causali" compaiono nuovi record, quindi scorrendo il recordset come
dici tu.
Vorrei però creare una funzione in VB da inserire nel controllo
RICHIESTA che ad ogni valore nuovo inserito nella sottomaschera mi
riformuli la query e il testo riferito a 2 campi di quella query
([Causale] e [Nr]).
Grazie per l'attenzione
Marino


 Antonio
La richiesta si dovrebbe sviluppare man mano che nella sottomaschera
"causali" compaiono nuovi record, quindi scorrendo il recordset come
dici tu.
Vorrei però creare una funzione in VB da inserire nel controllo
RICHIESTA nella maschera principale che ad ogni valore nuovo inserito
nella sottomaschera mi riformuli la query e il testo riferito a 2 campi
di quella query ([Causale] e [Nr]).
Grazie per l'attenzione
Marino


 di quella query ([Causale] e [Nr]).
Come lo aggiungi un record nella sottomaschera?
Con un bel pulsantino nella form principale dove hai messo i valori che
verranno accodati alla tabella molti (dimmi di sě) oppure scrivendo
direttamente nella sottomaschera?
Antonio

 Antonio
Non capisco bene cosa cambia ma io ho impostato tutto in modo che si
inseriscano i dati dalla sottomaschera.
Ho una combo "Tipo", una combo "causali" e un controllo "importo".
Questi devono essere raggruppati in una query e elaborati in VB in modo
che risulti un testo leggibile.
E' un concatenamento di stringhe dal risultato di una query...
Comunque mi stai stimolando positivamente, antonio. Grazie ancora per
l'attenzione.
Ciao


Questo è quello che cercavo e che potrebbe servire a qualcuno in futuro:
        Query "Lista Prodotti di IDOrdine"
        PARAMETERS
            [IDOrdine?] Long
        ;
        TRANSFORM
            First(Prodotti.NomeProdotto) AS PrimoDiNomeProdotto
        SELECT
            [Dettagli ordini].IDOrdine
        FROM
            Prodotti
            INNER JOIN
            [Dettagli ordini]
            ON
                Prodotti.IDProdotto = [Dettagli ordini].IDProdotto
        WHERE
            [Dettagli ordini].IDOrdine=[IDOrdine?]
        GROUP BY
            [Dettagli ordini].IDOrdine
        ORDER BY
            Prodotti.NomeProdotto
        PIVOT
            Prodotti.NomeProdotto
        ;
        Query "Dettagli ordini Lista prodotti"
        SELECT
            [Dettagli ordini].IDOrdine _
          , RicavaStringaProdotti([Dettagli ordini].[IDOrdine])
            AS Prodotti
        FROM
            [Dettagli ordini]
        GROUP BY
            [Dettagli ordini].IDOrdine
        ORDER BY
            [Dettagli ordini].IDOrdine
        ;
Option Compare Database: Option Explicit
Public Function RicavaStringaProdotti( _
  ByVal IDOrdine As Long _
) As String
  On Error GoTo erh
  Dim oDaoRecordset As DAO.Recordset
  Dim a_vRows()     As Variant
  Dim lIndex        As Long
  With CurrentDb.QueryDefs![Lista Prodotti di IDOrdine]
    .Parameters![IDOrdine?] = IDOrdine
    Set oDaoRecordset _
      = .OpenRecordset( _
            DAO.dbOpenSnapshot, DAO.dbFailOnError)
    a_vRows = oDaoRecordset.GetRows(1)
  End With
  For lIndex = 1 To UBound(a_vRows, 1)
    RicavaStringaProdotti _
      = RicavaStringaProdotti & a_vRows(lIndex, 0) & ", "
  Next
  RicavaStringaProdotti _
    = Left$( _
          RicavaStringaProdotti _
        , Len(RicavaStringaProdotti) - 2) _
    & "."
ext:
  On Error Resume Next
  oDaoRecordset.Close: Set oDaoRecordset = Nothing
  Exit Function
erh:
  Resume ext
End Function


 inseriscano i dati dalla sottomaschera.
Cambia perchč mi serviva per individuare un evento nel quale scrivere il
codice per il ricalcolo della stringa RICHIESTA
Antonio