Base de donnée avec Excel avec le code de PCPT

Résolu
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012 - 20 janv. 2011 à 09:53
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012 - 21 janv. 2011 à 00:33
Bonjour ,


Je voudrais crée une base de donnée avec Excel via VB6, pour cela j'ai récupérer le code de PCPT sur http://www.codyx.org/snippet_connexion-fichier-excel-comme-base-donnees_790.aspx

Il fonctionne très bien et me retourne bien la deuxième ligne de la colonne REPAR dans une LIST2

 Dim xls As New Class1
    xls.DBConnect "C:\Documents and Settings\test.xls", True
     
    'select sur 1ère colonne
    xls.RSExecute "SELECT [REPAR] FROM  [Feuil1$];"
    
    Form1.List2.AddItem xls.RS.Fields(0).Value
 
    Set xls = Nothing

    End Sub


Par contre je voudrais qu'il me charge la colonne complète REPAR dans une LIST2, mais je n'y arrive pas, voici le code que j'ai écrit.


    Dim i As Integer
   Dim xls As New Class1
    xls.DBConnect "C:\Documents and Settings\test.xls", True
     
    'select sur 1ère colonne
    xls.RSExecute "SELECT [REPAR] FROM  [Feuil1$];"
    
    If DBConnected = True Then
    Else
    RS.MoveFirst                    ?Erreur ici
    Form1.List2.Clear
    While Not (DBConnected)
    Form1.List2.AddItem xls.RS.Fields(0).Value
       
    RS.MoveNext                  ?Erreur ici

    Wend
    End If
    Set xls = Nothing
    RS.Close
    End Sub

Auriez-vous une idée ?


Merci

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
20 janv. 2011 à 10:40
Salut,
j'ai pas testé mais un truc du genre devrait mieux fonctionner.

Dim i As Integer
   Dim xls As New Class1
    xls.DBConnect "C:\Documents and Settings\test.xls", True
     
    'select sur 1ère colonne
    xls.RSExecute "SELECT [REPAR] FROM  [Feuil1$];"
    
    xls.RS.MoveFirst                    'Erreur ici
    Form1.List2.Clear
    While Not (DBConnected)
    Form1.List2.AddItem xls.RS.Fields(0).Value
       
    xls.RS.MoveNext                  'Erreur ici

    Wend
    End If
    Set xls = Nothing
    xls.RS.Close
 End Sub
3
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012
20 janv. 2011 à 22:51
Bonsoir,
j'ai essayé ton code, la list2 commence à se remplir mais le processus s'arrête avec le message d'erreur suivant :

Erreur d'exécution '3021' :
BOF OU EOF est égal à true ou l'enregistrement actuel a été supprimé. L'opération nécessite un enregistrement actuel.

As-tu une idée ?

Merci
0
sancho12345 Messages postés 131 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 18 mars 2012
21 janv. 2011 à 00:33
Bonsoir,

Je te remercie pour ton aide j'ai trouvé mon erreur!!

If xls.RS.EOF = True Then
End
Else
xls.RS.MoveFirst
Form1.List2.Clear
While Not (xls.RS.EOF)


Le code final donne ceci:


Dim i As Integer
   Dim xls As New Class1
    xls.DBConnect " C:\Documents and Settings\test.xls ", True
     
    'select sur 1ère colonne
    xls.RSExecute "SELECT [REPAR] FROM  [Feuil1$];"
    
    
    If xls.RS.EOF = True Then
    End
    Else
    xls.RS.MoveFirst                    
    Form1.List2.Clear
    While Not (xls.RS.EOF)
    
  
If xls.RS.Fields(0).Value <> "" Then

    Form1.List2.AddItem xls.RS.Fields(0).Value
    Else
    End
End If

    xls.RS.MoveNext                  

    Wend
    
   
    End If
    

xls.RS.Close
    
    Set xls = Nothing






Merci et bonne soirée.
0
Rejoignez-nous