magicolotto (Normal User)
Expert
Messaggi: 338
Iscritto: 21/01/2008
|
Codice sorgente - presumibilmente Visual Basic 6 |
For I = 0 To List1.ListCount - 1
sql = "select * from gruppo"
rec.Open (sql), cn, adOpenDynamic, adLockOptimistic
rec.AddNew
List1.ListIndex = I
numeri = List1.List(I)
rec.Fields("list1") = numeri
rec.Update
rec.Close
Next I
|
con questo metodo
mi inserisce ogni riga della lista in un recordset diverso
mentre il mio intento e inserire tutte le righe della lista in un solo recordset
grazie
|
|
hemmaus (Normal User)
Pro
Messaggi: 96
Iscritto: 15/07/2009
|
Ciao non ha molto senso quelle che vuoi fare, facendo come vuoi avrai maggiori problemi nel recupero delle informazioni. Ma se così desideri un motivo ci sarà.
Fai così:
Codice sorgente - presumibilmente VB.NET |
Dim stringa as string For I = 0 To List1.ListCount - 1 sql = "select * from gruppo" rec.Open (sql), cn, adOpenDynamic, adLockOptimistic rec.AddNew List1.ListIndex = I numeri = List1.List(I) Stringa=Stringa + " " + numeri Next I rec.Fields("list1") = Stringa rec.Update rec.Close
|
Non l'ho provato, ma dovrebbe andare.
Ciao
|
|
magicolotto (Normal User)
Expert
Messaggi: 338
Iscritto: 21/01/2008
|
grazie assai
lo provero' stasera
se dovessi importare invece nella listabox il contenuto del campo?
|
|
magicolotto (Normal User)
Expert
Messaggi: 338
Iscritto: 21/01/2008
|
ciao
mi da errore
" incompatiblita tra tipi "
l'errore di debug me lo da su questa riga
rec.Fields("list1") = stringa
come mai
sara' per l'archivio?
|
|
magicolotto (Normal User)
Expert
Messaggi: 338
Iscritto: 21/01/2008
|
ok corretto
era il db
ho provato il codice
fa bene, inserisce tuto su un recordset
pero inserisce tanti recordset quanti sono le line della list box
|
|
hemmaus (Normal User)
Pro
Messaggi: 96
Iscritto: 15/07/2009
|
Postato originariamente da magicolotto:
pero inserisce tanti recordset quanti sono le line della list box
|
in che senso ? i recordset sono valorizzati sempre con gli stessi valori ?
Mi sembra strano.
Prima di fare l'update visualizza il contenuto di stringa in una Textbox, vedi cosa registra. |
|
magicolotto (Normal User)
Expert
Messaggi: 338
Iscritto: 21/01/2008
|
se scrivesse un solo recordset andrebbe bene
ma lo duplica per quanto sono le righe della lista
ho cercato di scriverla la stesa i diverso modo..ma nulla
|
|
magicolotto (Normal User)
Expert
Messaggi: 338
Iscritto: 21/01/2008
|
da come l'avevi scrita
ho dovuto spostare next i
alla fine
dopo rec.close
per altrimenti dava errore
l'operazione non è consentita se l'oggetto è aperta
pero' spostandolo crea tanti recordset quanti sono le righe della listbox
cmq... sescrivesse un solo recordset andrebbe bene per ora
salvo problemi quando poi dovro' riapopolare la lista dallo stesso recordset
grazie
|
|
hemmaus (Normal User)
Pro
Messaggi: 96
Iscritto: 15/07/2009
|
Allora non devi spostare il Next, altrimenti ti crea tanti record quanti sono i valori della ListBox.
Così:
Codice sorgente - presumibilmente VB.NET |
Dim stringa, numeri as string Dim cn As ADODB.Connection Dim rs As ADODB.Recordset For I = 0 To List1.ListCount - 1 List1.ListIndex = I numeri = Numeri + "#"+ List1.List(I) Next I stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\test\database.mdb" Set cn = New ADODB.Connection Set rs = New ADODB.Recordset cn.Open stringa rs.Open "TABELLA", cn, 3, 3 'qui metti il nome della tabella access rs.AddNew rs("list1") = numeri rs.Update Set cn = Nothing Set rs = Nothing MsgBox "Inserimento effettuato", vbOKOnly, "CONFERMA"
|
Scusa ma il tuo era un po' confuso.
In questo modo hai una connessione al DB stabile e semplice da usare.
Inoltre la stringa sarà del tipo "1ValoreList1#2ValoreList1#NvaloreList1" quindi i valori sono separati dal # sarà più semplice poi recuperarli.
Fammi sapere.
Ciao.
|
|