Newsgroup: it.comp.appl.access
Titolo: dividere il testo di un campo di una tabella in più campi

Ciao,
vi espongo il mio problema.
Ho una tabella con vari campi, nel campo "Intestatario", ho il cognome e
nome di una determinata persona, ho l'esigenza di suddividere tutte le
lettere che compongono il nome e cognome e inserirle ciancuna in una campo
della tabella.
Esempio:
Campo "Intestatario"   - CAIO SEMPRONIO
Campo "I_1"            - C
Campo "I_2"	       - A  	
Campo "I_3"	       - I
Campo "I_4"	       - O
Campo "I_5"	       - spazio vuoto
Campo "I_6"	       - S
Campo "I_7"            - E
Campo "I_8"            - M
e via di sequito
mi interessa sapere se esiste un sistema, o una funzione adatta allo scopo
grazie
Sthepan

 ha scritto nel messaggio 
news:17lmlgwtvfigh$.ow8sym19rf5z.dlg@40tude.net...

L'operazione è più difficile a dirsi che a farsi.
Prima di tutto devi conoscere la lunghezza massima di un "intestatario". 
Quindi crearti una tabella con N campi e poi usare un po di codice per 
trasferire i dati.
Potresti anche fare tutto da codice compresa la creazione della tabella.
Si tratta di creare qualche ciclo ma nulla di impossibile.
Parole chiave: Mid, Len, Instr, For...next, Field, Table, ecc.
Ciao, Carlo 

 ha scritto nel messaggio
news:17lmlgwtvfigh$.ow8sym19rf5z.dlg@40tude.net...

Mi incuriosice molto saperne il perchč....., trovo la cosa un pň fuori
dagli schemi....!
Innanzitutto ogni Tabella puň contenere al MAX 255 campi, pertanto
nel tuo caso quanti campi prevedi di usare....??
Campo "I_1"
......
Campo "I_255"
Tutti...?
La cosa č un pň anomala ma provo a scriverti 2 righe.
Uso le Transazioni al fine di rendere decisamente piů veloce il
ciclo altrimenti sarebbe abbastanza lento.
Private Function SplitIntestatario() as boolean
    On Error Goto Err_Split
    Dim rsO as DAO.Recordset
    Dim rsD as DAO.Recordset
    Dim X as Integer
    DBEngine.BeginTrans
    Set rsO=CurrentDatabase.OpenRecordset("SELECT [Intestatario] FROM
NomeTabellaOrigine")
    Set rsD=CurrentDatabase.OpenRecordset("SELECT * FROM
NomeTabellaDestinazione")
    If rso.Eof then Exit funxtion
    Do until rsO.Eof
        For x=1 to Len(rsO!Intestatario)
            rsD.AddNew
            rsd.Fields(x)=Mid$(rsO!Intestatario,x,1)
            rsD.Update
        Next
        rsO.Movenext
    Loop
    DBEngine.CommitTrans
    SplitIntestatario=True
Exit_Here:
   DB.close
   Set DB=Nothing
   Exit Sub
Err_Split:
	    DBEngine.Rollback
    MsgBox Err.Description
    SplitIntestatario=False
    Resume Exit_Here
End Sub
Ciao
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------

 Uso le Transazioni al fine di rendere decisamente più veloce il

Ciao e Grazie per l'aiuto ora provo a metterlo in pratica.
Soddisfo la tua curiosità, mi sto cercando di creare un sistema di
compilare e quindi stampare il nuovo modello CH8Bis delle Poste, classico
bollettino di conto corrente. Visto che il nuovo modello prevede tutte
caselline da riempire per essere compilato, quello che mi è venuto in mente
per riuscire a farlo è questo.
ciao
Sthepan

 Sthepan
MMmmmmm!!!
Secondo me, stai prendendo la cosa dal lato meno comodo.
Faresti molto meglio a scomporre il Nome durante la stampa
con una Routine dedicata da eseguire nell'Evento Formattazione
del CORPO.
Probabilmente sarai costretto sempre a spezzare in lettere, ma
non a riempire una Tabella che trovo decisamente NON UTILE.
Tra le altre cose il Numro di CASELLE è FISSO pertanto ti sarà
semplice ricostruirle in un Report, e casualmente Chiamarle con
il progressivo in modo da passare AUTOMATICAMENTE il valore
indicizzandone il nome....!!!!
For x=1 to Len(Me!Intestatario)
        Me.Controls("Casellina_" & cstr(x))=Mid$(Me!Intestatario,x,1)
Next
Mi pare un risparmio di tempo e codice non intifferente........
