Newsgroup: it.comp.appl.access
Titolo: creare tabella da testo

Buongiorno,
ho fatto un casino con l'immissione di alcuni dati, in pratica ho creato la 
seguente tabella:
 
ID (non univoco), sostanza, pericolo
 
nel campo pericolo ho inserito tutti i pericoli indicati con Hxxx dove xxx 
sono tre numeri, questa è la grande c...a da me commessa.
 
quel che vi chiedo esiste qualcosa che riesce a discriminare il testo? mi 
spiego: voglio dire ad access leggi nel campo pericolo e quando trovi Hxxx e 
crea il record in una nuova tabella in tal modo: ID (non univoco), sostanza, 
pericolo
 
do un esempio per evitare equivoci:
 
ho il seguente record:
 
244,     Cloruro di Cd,     "H301
H330
H340
H350
H360FD
H372
H410 "
 
vorrei ottenere quanto segue:
 
244,     Cloruro di Cd,   H301
244,     Cloruro di Cd, H330
244,     Cloruro di Cd, H340
244,     Cloruro di Cd, H350
244,     Cloruro di Cd, H360FD
244,     Cloruro di Cd, H372
244,     Cloruro di Cd, H410
 
grazie in anticipo
Akery
 
 
---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
 
 

 H410 "
Volevi dire un record fatto così:
244, Cloruro di Cd, H301 H330 H340 H350 H360FD H410
----------------------------------------------------------
La virgola essendo, in questa rappresentazione, il separatore
di campo e lo spazio essendo, nel terzo campo della tua tabella,
il separatore di stringa.
???
 
Ma quanti sono i record che tu non possa trattarli
con le tue manine?
 
Bruno

buona pasqua,
 
i records sono 400, e sono riuscito a giungere al risultato ma con excel, in effetti il separatore del terzo campo è il carattere a capo, tuttavia per esercizio volevo farlo anche lato access perchè riesco a rappresentare molto meglio i risultati. I suggerimenti che ricevo in questo newsgroup mi hanno permesso di fare passi da gigante nell'utilizzo di access, mi piacerebbe che access diventasse una mia skill trasversale, sono un chimico non un programmatore.
Grazie per la risposta
Akery

caprico...@gmail.com
 wrote on 27-03-16 :

In questo caso, e in molti altri ancora, il codice VBA di Excel
è molto simile se non uguale a quello di Access.
Là con un For Next fai la scansione su una colonna, qui fai
la stessa cosa sui campi specifici dei record.
Hai usato la funzione SPLIT() per costruire per ogni record
l'array di tutti quegli Hxxx del campo Pericolo? o quale
altro procedimento?
 
Bruno

non ho usato codice :(
ho usato la funzione =SOSTITUISCI(E82;CODICE.CARATT(10);" "), poi il copia incolla-trasponi avendo cura di inserire le righe vuote necessarie ed infine ho trascinato gli altri campi per completare.
Ovvio che è una soluzione molto poco elegante.
 
Akery

caprico...@gmail.com
 wrote on 28-03-16 :

Usando il codice di Access 2016:
==================================
Private Sub Command0_Click()
Dim RS(1 To 2) As Recordset
Dim Table(1 To 2) As String
Dim i As Long, TmpArray
 
Table(1) = "T_2"    ' Source Table
Table(2) = "T_22"   ' Target Table
Set RS(1) = CurrentDb.OpenRecordset(Table(1), dbOpenDynaset)
Set RS(2) = CurrentDb.OpenRecordset(Table(2), dbOpenDynaset)
 
Do Until RS(1).EOF
    TmpArray = Split(RS(1)![Pericolo], Chr(13), -1, vbTextCompare)
    For i = 0 To UBound(TmpArray)
        With RS(2)
            .AddNew
            ![ID] = RS(1)![ID]
            ![Sostanza] = RS(1)![Sostanza]
            ![Pericolo] = TmpArray(i)
            .Update
        End With
    Next
    RS(1).MoveNext
Loop
 
End Sub
===============================
Nell'ipotesi che Target Table sia vuota e che
l'operazione debba farsi una volta sola.
 
Bruno

ottimo!!! funziona facendo minimi cambiamenti, non funziona se il campo è null ma sono riuscito a superare l'ostacolo.
grazie 1000 per il supporto

 null
Quando dici che il campo contiene stringhe CHR(10)-separated
non dichiari affatto che può anche essere Null!
 
Qui nessuno dispone della sfera di cristallo.
 
Bruno

Scusami non intendevo essere irrispettoso, ti ringrazio ancora per l'aiuto 
che mi hai dato
 
Akery
 
"Bruno Campanini"  ha scritto nel messaggio 
news:nde199$11mh$1...@gioia.aioe.org...

