ACCESS Fonction VBA
Fermé
ChBro
Messages postés
17
Date d'inscription
mardi 22 juin 2004
Statut
Membre
Dernière intervention
24 août 2006
-
25 oct. 2005 à 20:19
ChBro Messages postés 17 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 24 août 2006 - 30 oct. 2005 à 11:06
ChBro Messages postés 17 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 24 août 2006 - 30 oct. 2005 à 11:06
A voir également:
- ACCESS Fonction VBA
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- You don't have permission to access this resource ✓ - Forum Réseaux sociaux
5 réponses
blux
Messages postés
26000
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 avril 2024
3 289
26 oct. 2005 à 08:48
26 oct. 2005 à 08:48
Salut,
dans access (comme dans beaucoup de SGBD) les données renvoyées par des tables, requêtes (voire snapshots) sont traitées de la même façon -> le problème ne vient pas de là...
Peux-tu nous éclairer sur ta fonction ?
On ne sait pas ce qu'elle fait, comment tu l'appelles...
Bref, tous les renseignements possibles...
dans access (comme dans beaucoup de SGBD) les données renvoyées par des tables, requêtes (voire snapshots) sont traitées de la même façon -> le problème ne vient pas de là...
Peux-tu nous éclairer sur ta fonction ?
On ne sait pas ce qu'elle fait, comment tu l'appelles...
Bref, tous les renseignements possibles...
WhiteFang
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
27 oct. 2005 à 14:39
27 oct. 2005 à 14:39
;-)
Moi, j'aurais écrit ça comme ça :
Mais je me rends compte qu'il y a un truc bizarre : Pourquoi 2 boucles ?
Moi, j'aurais écrit ça comme ça :
Function Test() Dim Bds, Rdst Dim Val, X On Error GoTo Test_Exit SQEL = "SELECT Table.Champ1, Table.Champ2, Table.Champ3, Table.Champ4, Table.Champ5 FROM Table " & _ "ORDER BY Table.Champ1, Table.Champ2 DESC , Table.Champ3, Table.Champ4;" Set Bds = CurrentDb Set Rdst = Bds.OpenRecordset(SQEL) Rdst.Movelast Rdst.MoveFirst For X = 1 To Rdst.RecordCount Val = Rdst("Champ1") & Rdst("Champ4") i = 1 While Rdst("Champ1") & Rdst("Champ4") = Val Rdst.Edit Rdst("Champ5") = i Rdst.Update i = i + 1 Rdst.MoveNext Wend Next Space 1048576 Rdst.Close Set Bds = Nothing Test_Exit: Exit Function
Mais je me rends compte qu'il y a un truc bizarre : Pourquoi 2 boucles ?
blux
Messages postés
26000
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 avril 2024
3 289
27 oct. 2005 à 16:03
27 oct. 2005 à 16:03
Tant qu'ils s'appellent JEAN DUPONT on incrémente le compteur de doublon :
JEAN DUPONT 1
JEAN DUPONT 2
JEAN DUPONT 3
...
Mais je n'arrive pas à comprendre pourquoi il perd des clients en route, et de manière aléatoire...
JEAN DUPONT 1
JEAN DUPONT 2
JEAN DUPONT 3
...
Mais je n'arrive pas à comprendre pourquoi il perd des clients en route, et de manière aléatoire...
WhiteFang
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
>
blux
Messages postés
26000
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 avril 2024
27 oct. 2005 à 16:12
27 oct. 2005 à 16:12
;-) Bin moi, je ne comprends pas pourquoi une fonction, ou alors, j'aurais uniquement passé le While en fonction puisque que le MoveNext est dedans, mais bon, j'attends des éclaircissements...
;-)
;-)
ChBro
Messages postés
17
Date d'inscription
mardi 22 juin 2004
Statut
Membre
Dernière intervention
24 août 2006
>
WhiteFang
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
30 oct. 2005 à 11:06
30 oct. 2005 à 11:06
En tous cas, merci à tous pour votre aide
Ci dessous vous trouverez un exemple
Table de départ:
A B C D Sequence
------------------------------
A 1 450 z ?
A 2 400 a
A 1 100 a
A 1 200 a
B 2 100 z
B 2 300 a
B 3 200 z
B 3 500 a
C 1 200 a
B 2 200 a
A 2 100 z
C 1 100 z
Résultat à obtenir
A B D C Séquence
------------------------------
A 1 z 450 1
A 1 a 100 2
A 1 a 200 3
A 2 z 100 1
A 2 a 400 2
B 2 z 100 1
B 2 a 200 2
B 2 a 300 3
B 3 z 200 1
B 3 a 500 2
C 1 z 100 1
C 1 a 200 2
Bien à vous
Ci dessous vous trouverez un exemple
Table de départ:
A B C D Sequence
------------------------------
A 1 450 z ?
A 2 400 a
A 1 100 a
A 1 200 a
B 2 100 z
B 2 300 a
B 3 200 z
B 3 500 a
C 1 200 a
B 2 200 a
A 2 100 z
C 1 100 z
Résultat à obtenir
A B D C Séquence
------------------------------
A 1 z 450 1
A 1 a 100 2
A 1 a 200 3
A 2 z 100 1
A 2 a 400 2
B 2 z 100 1
B 2 a 200 2
B 2 a 300 3
B 3 z 200 1
B 3 a 500 2
C 1 z 100 1
C 1 a 200 2
Bien à vous
WhiteFang
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
204
27 oct. 2005 à 14:41
27 oct. 2005 à 14:41
;-)
A la réflexion, je verrais bien un petit IF à la place du While.... Ca me semble plus logique... ?
A la réflexion, je verrais bien un petit IF à la place du While.... Ca me semble plus logique... ?
random
Messages postés
1612
Date d'inscription
vendredi 26 novembre 2004
Statut
Membre
Dernière intervention
30 mars 2006
155
27 oct. 2005 à 17:40
27 oct. 2005 à 17:40
le truc.movenext semble devoir se loger entre les deux wend
et non audessus du premier
tu aurais pu faire
index=0
nom=""
while not truc.eof
if truc![nom]=nom
then index=index+1
truc![index]=index
else
index=0
nom=truc![nom]
end if
truc.movenext
et non audessus du premier
tu aurais pu faire
index=0
nom=""
while not truc.eof
if truc![nom]=nom
then index=index+1
truc![index]=index
else
index=0
nom=truc![nom]
end if
truc.movenext
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ChBro
Messages postés
17
Date d'inscription
mardi 22 juin 2004
Statut
Membre
Dernière intervention
24 août 2006
28 oct. 2005 à 09:40
28 oct. 2005 à 09:40
En tous cas, merci à tous pour votre aide
Ci dessous vous trouverez un exemple
Table de départ:
A B C D Sequence
------------------------------
A 1 450 z ?
A 2 400 a
A 1 100 a
A 1 200 a
B 2 100 z
B 2 300 a
B 3 200 z
B 3 500 a
C 1 200 a
B 2 200 a
A 2 100 z
C 1 100 z
Résultat à obtenir
A B D C Séquence
------------------------------
A 1 z 450 1
A 1 a 100 2
A 1 a 200 3
A 2 z 100 1
A 2 a 400 2
B 2 z 100 1
B 2 a 200 2
B 2 a 300 3
B 3 z 200 1
B 3 a 500 2
C 1 z 100 1
C 1 a 200 2
Bien à vous
Ci dessous vous trouverez un exemple
Table de départ:
A B C D Sequence
------------------------------
A 1 450 z ?
A 2 400 a
A 1 100 a
A 1 200 a
B 2 100 z
B 2 300 a
B 3 200 z
B 3 500 a
C 1 200 a
B 2 200 a
A 2 100 z
C 1 100 z
Résultat à obtenir
A B D C Séquence
------------------------------
A 1 z 450 1
A 1 a 100 2
A 1 a 200 3
A 2 z 100 1
A 2 a 400 2
B 2 z 100 1
B 2 a 200 2
B 2 a 300 3
B 3 z 200 1
B 3 a 500 2
C 1 z 100 1
C 1 a 200 2
Bien à vous
27 oct. 2005 à 08:54
Function Test()
Dim Bds As DAO.Database
Dim rdst As DAO.Recordset
Dim val As String
On Error GoTo Champ5_error
SQEL = "SELECT Table.Champ1, Table.Champ2, Table.Champ3, Table.Champ4, Table.Champ5 FROM Table " & _
"ORDER BY Table.Champ1, Table.Champ2 DESC , Table.Champ3, Table.Champ4;"
Set Bds = CurrentDb
Set rdst = Bds.OpenRecordset(SQEL)
rdst.MoveFirst
While Not (rdst.EOF)
val = rdst.Fields("Champ1").Value & rdst.Fields("Champ4").Value
i = 1
While rdst.Fields("Champ1").Value & rdst.Fields("Champ4").Value = val
With rdst
.Edit
![Champ5] = i
.Update
End With
i = i + 1
rdst.MoveNext
If rdst.EOF = True Then Exit Function
Wend
Wend
Space 1048576
rdst.Close
Set Bds = Nothing
Test_Exit:
Exit Function
Encore merci...