Oppure

Loading
19/08/09 10:59
hemmaus
Allora non devi spostare il Next, altrimenti ti crea tanti record quanti sono i valori della ListBox.

Così:

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.
aaa
20/08/09 7:29
magicolotto
ok perfetto

funziona


adesso se dovrei richiamarla???
inserendo ogni riga in un item diverso?
aaa
20/08/09 12:40
hemmaus
Postato originariamente da magicolotto:

adesso se dovrei richiamarla???
inserendo ogni riga in un item diverso?


:grr: SCUSA MA E' PIU' FORTE DI ME: SE DOVESSI, non è difficile generalmente il se richiede la doppia s. ;)

Come risolvere:

Recupera i dati dal DB.
Controlla con un FOR e con la funzione MID quando c'è il # quindi prendi la parte iniziale e la immagazzini nella listbox.

Chiaro ?
aaa
21/08/09 13:36
magicolotto
ok capito :blush:
che figura :rotfl::(

ok quindi??? piccolo esempio?
aaa
23/08/09 9:29
hemmaus
Ciao,
lo spirito del forum è aiutare chi è in difficoltà non scrivere per lui il codice.

Leggi il record dal DB singolarmente.

poi per separare i dati, ti mostro il codice per recuperare i campi da inserire nella listbox:


'Questa è la variabile che contiene il record che hai estratto dal DB
Dim RecordS as String 
Dim I,G as integer
G=1

For I=1 to Len(RecordS)

   If Mid(RecordS,I,1)="#" then 
     list1.additem Mid(recordS,G,I-1)
     G=I+1
   End IF

Next I



Testalo perchè l'ho scritto di getto.
Ciao.
aaa
09/09/09 21:50
magicolotto
grazie tanto per l'aiuto , ok l'ho provato

funziona in parte

nella lista mi riporta

# ad riga...

ed ogni riga è formata cosi
#1
#1#2#
#1#2#3#
#1#2#3#4#
#1#2#3#4#5#

cioè riporta il valore della riga precedente ..con il nuovo valore

G = 1

For I = 1 To Len(rs("list1";).Value)

If Mid(rs("list1";), I, 1) = "#" Then
List1.AddItem Mid(rs("list1";).Value, G, I - 1)
Else

G = I + 1
End If

Next I

aaa
13/09/09 17:55
magicolotto
:-?
aaa
13/09/09 19:42
theprogrammer
Usa la funzione

Split

... ma non mi chiedere il codice ... studia la funzione e prova ...
Ultima modifica effettuata da theprogrammer 13/09/09 19:44
aaa