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

Signaler
Messages postés
131
Date d'inscription
jeudi 21 mai 2009
Statut
Membre
Dernière intervention
18 mars 2012
-
sancho12345
Messages postés
131
Date d'inscription
jeudi 21 mai 2009
Statut
Membre
Dernière intervention
18 mars 2012
-
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

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
25
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
Messages postés
131
Date d'inscription
jeudi 21 mai 2009
Statut
Membre
Dernière intervention
18 mars 2012

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

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.