Popolare ListBox & ADO Excel

di il
5 risposte

Popolare ListBox & ADO Excel

Ho inserito all'interno di una documento Word 2016 un form con alcuni controlli.

Uno di questi è una listBox che vorrei popolare con dei dati contenuti all'interno di un foglio Excel da estrare mediante ADO:

Ho impostato questa routine:

Sub ListBoxADOElencazioneDati()
    Dim sSQLQry As String
    Dim ReturnArray
    Dim Conn As New ADODB.Connection
    Dim mrs As New ADODB.Recordset
    Dim DBPath As String, sconnect As String
    Dim a As Long
    Dim Nazione As String       
             DBPath = «C:\Dati.xls»
                     sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes';"
        Conn.Open sconnect
             sSQLSting = "SELECT * From [DATA$] "
               mrs.Open sSQLSting, Conn
                     For a = 1 To mrs.Fields.Count - 1
                            With ListBox1
                                If mrs.Fields(a).Value <> "" Then
                                            .AddItem mrs.Fields(a).Value
                                       Else
                                End If
                          End With
                   Next a
          mrs.Close
    Conn.Close
End Sub

Il problema è che mi inserisci solo una colonna di dati. Non riesco a completare l'impostazione del ciclo in modo da inserire tutte le altre colonne.

grazie a chi  mi darà un aiuto.

P.S. spero di aver postato nella sezione giusta.

Altrimenti spostatemi.

5 Risposte

  • Re: Popolare ListBox & ADO Excel

    Eh no dai… che c'entra l'ingegneria del codice? Dopo tanto tempo e messaggi posti a caso?

  • Re: Popolare ListBox & ADO Excel

    Ho spostato in altra sezione 

  • Re: Popolare ListBox & ADO Excel

    07/12/2023 - Toki ha scritto:


    Ho spostato in altra sezione 

    Quale?

  • Re: Popolare ListBox & ADO Excel

    Questa in cui si trova adesso:

    https://www.iprogrammatori.it/forum-programmazione/visual-basic/

  • Re: Popolare ListBox & ADO Excel

    Mi servo di questa routine per estrarre dei dati da un foglio Excel e mediante Ado ed inserirli in un controllo list Box.

    Tuttavia così come è, temo di sbagliare l'impostazione del ciclo, perchè mi inserisci tre volte la stessa riga.

    Dove sbaglio?

    Sub ADOExcelEstraiDati()
      Dim a As Integer
      Dim b As Integer
      Dim sSQLQry As String
      Dim ReturnArray
      Dim Conn As New ADODB.Connection
      Dim mrs As New ADODB.Recordset
      Dim DBPath As String, sconnect As String  
      ListBox1.ColumnCount = 3
      DBPath = "C:\Dati.xlt"
          sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes';"
       Conn.Open sconnect
           sSQLSting = "SELECT * From [Dati$]"
            mrs.Open sSQLSting, Conn           
        For a = 1 To mrs.Fields.Count - 1    
            Do Until mrs.EOF
                If Not VBA.IsNull(mrs.Fields("PAESI").Value) Then
                     For icount = 1 To 3
                     ListBox1.AddItem
                     ListBox1.List(icount - 1, 0) = mrs.Fields("Numeri").Value
                     ListBox1.List(icount - 1, 1) = mrs.Fields("PAESI").Value
                     ListBox1.List(icount - 1, 2) = mrs.Fields("MESI").Value
                      Next icount                 
                   Else
                End If
              mrs.MoveNext
           Loop
         Next a  
       mrs.Close
      Conn.Close
    End Sub
Devi accedere o registrarti per scrivere nel forum
5 risposte