Estrazione dati

bertolino

Nuovo Utente
25 Mag 2013
6
0
0
Ciao,
ho un problema al quale non riesco a trovare una via di uscita.
Ho una tabella Access dove allo stesso nome è associato uno, due o più numeri di telefono.
Questi numeri compaiono in diversi record:
id idNome Nome Telefono
1 1 Mario 1111
2 1 Mario 2222
3 1 Mario 3333

e così di seguito...
Dovrei inserire tutti i numeri di telefono in un unico record:

1 1 Mario 1111,2222,3333

e non so come gestire la cosa, magari sarà pure banale ma io non riesco a venirne a capo.
Se c'è qualcuno che sa consigliarmi ...
Grazie per ogni suggerimento.
Saluti
bertolino
 
Dovrei inserire tutti i numeri di telefono in un unico record:

1 1 Mario 1111,2222,3333

e non so come gestire la cosa, magari sarà pure banale ma io non riesco a venirne a capo.

...io realizzerei così la tua esigenza:

relazione.JPGtabella.JPG

Il risultato è identico, un solo nome/cognome, infiniti numeri di telefono.
 
Ciao e grazie per la risposta che probabilmente è la strada più tranquilla e meno contorta.
Anche per fare un controllo sui numeri già esistenti posso mantenere la tabella con facilità ed apportare a quella dove ho inserito i nomi tutte le altre modifiche.
Nella tabella avevo già selezione un TOP id_ditta a cui ho assegnato 1 mentre agli altri valore Null, quindi ad ogni NOME riesco ad associare i vari numeri e apportare le modifiche agli altri campi, però ora i nomi sono tanti e le SQL sempre più articolate.
Quando estraggo i dati riesco a stampare a video ciò che voglio ma non riesco a inserirli in un array che poi potrei trasformare in stringa.
Dovrei fare un ciclo lunghissimo prima con INSERT e poi con UPDATE aggiornando il nuovo numero integrandolo con quello già esistente...
Oggi avevo provato di usare getrows e creare un application, trasformare l'array in stringa e fare l'INSERT, ma forse è meglio se chiedo un T.S.O
a parte gli scherzi ... il tutto orbita intorno a questo problema o sbaglio?
Per chi ha la PAZIENZA:


Set Con=Server.CreateObject("ADODB.Connection")
Con.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath(database)


sqlString = "SELECT * FROM TP_ND2 WHERE isNull(idTop) = false"
Set Rs = Con.Execute(sqlString)
while NOT Rs.EOF

response.write Rs("id_ditta") & " - " & Rs("telefono") & "<br>"

sqlString = "SELECT telefono FROM TP_ND2 WHERE id_ditta = " & Rs("id_ditta") & " AND isNull(idTop) = true"
Set Rs2 = Con.Execute(sqlString)
while NOT Rs2.EOF

telefono = Rs2("telefono")
response.write telefono & "<br>"

Rs2.MoveNext
WEND

Rs.MoveNext
WEND
 
Ultima modifica:
Problema risolto

Sono riuscito così:

<%
Server.ScriptTimeout = 90


FUNCTION invalidForm(strForm)
If INSTR(1,strForm,",",1) <> 0 Then
invalidForm = TRUE
Else
invalidForm = FALSE
End If
END FUNCTION


database = "test.mdb"


Set Con=Server.CreateObject("ADODB.Connection")
Con.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath(database)


sqlString = "SELECT * FROM TP_ND2 WHERE isNull(idTop) = true"
Set Rs = Con.Execute(sqlString)
while NOT Rs.EOF

id1 = Rs("id")
telefono1 = Rs("telefono")

response.write Rs("id_ditta") & " - " & Rs("telefono") & "<br>"

sqlString = "SELECT id, id_ditta, telefono FROM TP_ND2 WHERE id_ditta = " & Rs("id_ditta") & " AND isNull(idTop) = false"
Set Rs2 = Con.Execute(sqlString)
while NOT Rs2.EOF


' Get Information
ID = Rs2("id")
IDDITTA = Rs2("id_ditta")
telefono2 = Rs2("telefono")

if invalidForm(telefono2) then


sqlString = "UPDATE TP_ND2 SET " &_
"telefono='" & telefono2 &","& telefono1 & "'" &_
"WHERE id=" & ID
Con.Execute sqlString

sqlString = "DELETE FROM TP_ND2 " &_
"WHERE id =" & id1
Con.Execute( sqlString )

Rs2.MoveNext
response.write telefono2 & "<br>"

else

sqlString = "UPDATE TP_ND2 SET " &_
"telefono='" & telefono2 &","& telefono1 & "'" &_
"WHERE id=" & ID
Con.Execute sqlString

sqlString = "DELETE FROM TP_ND2 " &_
"WHERE id =" & id1
Con.Execute( sqlString )

Rs2.MoveNext
response.write telefono2 & "<br>"

end if

WEND

Rs.MoveNext
WEND


response.write "<br>"

Con.close
%>

Grazie per l'ospitalità
Saluti
bertolino
 

Discussioni simili