[VBA] Bug pour récupérer un champ dans une table [Résolu]

Signaler
Messages postés
62
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
19 août 2005
-
Messages postés
62
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
19 août 2005
-
Bonjour,



Je rencontre un problème en allant chercher une information dans un table avec VBA.

Je dispose d'une table ListePollens contenant (entre autres) les champs : Taxons et somme2

Mon code :



Dim rst As DAO.Recordset

Dim MySQL, lettre As String

Dim compteur, compteur1 As Integer

...

compteur = 0

compteur1 = 0

MySQL "SELECT somme2 FROM ListePollens WHERE ([Taxon] '" & xl.Cells(i, 1).Value & "');"

Set rst = CurrentDb.OpenRecordset(MySQL, dbOpenDynaset, dbReadOnly)

If rst.EOF False And rst.BOF False Then lettre = rst![somme2]

If lettre "A" Then compteur compteur + xl.Cells(i, j).Value

If lettre "a" Then compteur1 compteur1 + xl.Cells(i, j).Value

...



Le champs somme2 contient soit un A soit un a.

Pour tester mon programme je n'ai mis que des a.

Donc ma variable compteur devrait rester à 0 et seule ma variable compteur1 devrait être incrémentée.

Le problème c'est que ça n'est pas le cas. Ma variable compteur incrémentée à chaque fois, en même temps que compteur1.



Je crois donc que VBA n'arrive pas à faire la distinction entre A et a.

Est-ce que quelqu'un sait comment s'y prendre ?



Merci,

Seb.

3 réponses

Messages postés
62
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
19 août 2005
4
C'est bon en fait j'ai trouvé la solution :



If Asc(lettre) 65 Then compteur compteur + xl.Cells(i, j).Value

If Asc(lettre) 97 Then compteur1 compteur1 + xl.Cells(i, j).Value

au lieu

if lettre ="A" then....

if lettre="a" then ...



Il n'y avait effectivement pas de différence entre un A et un a.
3
Merci

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

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

Messages postés
1352
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
19 novembre 2008
2
Tu utilises xl.Cells(i, 1) et puis xl.Cells(i, j).

c'est quoi i et j ??

PS: Si votre problème est résolu, prière de bien vouloir clôturer votre message par une réponse acceptée !
Messages postés
62
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
19 août 2005
4
Alors :



xl.cells(i,1) contient les noms des taxons dans mon fichier excel

xl.cells(i,j) contient la valeur de mon taxon pour chaque colonne.
C'est cette valeur que je veux ajouter à l'un de mes deux compteur
selon la valeur du champ somme2 pour mon taxon.



En tout cas le problème ne vient pas des boucles ça j'en suis sur. Elles ont toutes été testées.



A plus,

Seb.