Base de donnée avec Excel avec le code de PCPT [Résolu]

Messages postés
131
Date d'inscription
jeudi 21 mai 2009
Statut
Membre
Dernière intervention
18 mars 2012
- - Dernière réponse : 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
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
22
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 201 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nhervagault
Messages postés
131
Date d'inscription
jeudi 21 mai 2009
Statut
Membre
Dernière intervention
18 mars 2012
0
Merci
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
Commenter la réponse de sancho12345
Messages postés
131
Date d'inscription
jeudi 21 mai 2009
Statut
Membre
Dernière intervention
18 mars 2012
0
Merci
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.
Commenter la réponse de sancho12345