Oppure

Loading
24/09/09 10:57
dylan666
Avrei bisogno, come da titolo, di popolare gli Item di una Combo con gli elementi di una colonna di un file excel, mettiamo caso la colonna A di elenco.xls

Chi mi aiuta? Siate chiare e usate un codice semplice per favore, perché sono propri agli inzi :)

Grazie in anticipo
aaa
24/09/09 11:32
theprogrammer
Leggi questo

support.microsoft.com/kb/…

e provaci ...
aaa
24/09/09 12:49
dylan666
Prima prova


Private Sub Form_Load()
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
With cn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = "Data Source=C:\MyFolder\MyWorkbook.xls;" & _
"Extended Properties=Excel 8.0;"
    .Open
End With
End Sub




Errore, il "Dim cn As ADODB.Connection" è uno user-defined type non definito.
Dove sbaglio?

aaa
24/09/09 13:51
theprogrammer
ADODB e' una libreria. Per utilizzarla devi aggiungere un

Riferimento

tramite menu apposito, alla libreria Microsoft ADO
aaa
26/09/09 17:00
dylan666
Intendi il "Microsoft ActiveX Data Objects 2.8 Library" dico bene?
Ok, adesso quello funziona.

Ci sono altri link di esempo per me che devo imprare?
Perché non mi è chiarissima la selezione degli elementi di una colonna
aaa
26/09/09 17:02
theprogrammer
Beh, piu' che altro dovresti aprire un bel libro sulla programmazione DB e studiarlo per qualche mese.

Purtroppo un forum non sostituisce lo studio di base ...
aaa
27/09/09 15:47
dylan666
Risolto grazie al suggerimento ricevuto su un altro forum:

Option Explicit 'Forces you to declare all your variables
Dim cn As ADODB.Connection
Dim rc As ADODB.Recordset
Dim strSQL As String
Private Sub Form_Load()
    Set cn = New ADODB.Connection
    Set rc = New ADODB.Recordset
    With cn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Data Source=C:\test\test.xls;" & _
    "Extended Properties=Excel 8.0;"
        .Open
    End With
    
    'Compose your SQL string
    strSQL = "SELECT * FROM [Foglio$]" 'This is... if you don't rename your sheets
    rc.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly, 1
    
    Dim i As Integer
    Dim cnt As Integer
    cnt = rc.RecordCount
    
    i = 0
    Do While rc.EOF = False
        Combo1.AddItem (rc(0).Value)
        Combo1.ItemData(Combo1.NewIndex) = i
        i = i + 1
        rc.MoveNext
    Loop

    rc.Close
    cn.Close
    Set rc = Nothing
    Set cn = Nothing
End Sub
Ultima modifica effettuata da dylan666 27/09/09 19:02
aaa