Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/04/2007, 11h48   #1
Invité de passage
 
Inscription : avril 2007
Messages : 14
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2007
Messages : 14
Points : 4
Points : 4
Par défaut problème de remplissage automatique de champs

Bonjour,
Je cherche à faire un formulaire qui permette de mettre en classes une liste d'individus. On rentre le nombre de classes et leurs limites dans le formulaire puis on envoie et dans la théorie ça devrait fonctionner mais bien sur ça n'est pas le cas sinon je ne serai pas la. Voici mon code, l'erreur se produit à la ligne sous le case else pour remplir le champ tranches avec la valeur 1, et je ne comprend pas vraiment ce que signifie le message d'erreur : "aucun texte de commande n'a été défini pour l'objet de commande". Ce message n'arrive que quand j'enlève la routine de gestion d'erreur sinon j'ai droit à une erreur numéro 0 qui bloque l'execution aussi. Quelqu'un pourrait-il m'aider? Je me rend compte que mon niveau n'est pas élevé et que je pollue plus ou moins le forum mais cela fait 3 jours que je bloqué la dessus donc je me permet de lancer un appel à l'aide.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Private Sub Btranches_Click()
On Error GoTo err_fct
 
Dim i As Integer
Dim cn1 As ADODB.Connection
Set cn1 = CurrentProject.Connection
Dim mysql As String
Dim myRS As New ADODB.Recordset
myRS.ActiveConnection = cn1
myRS.CursorType = adOpenDynamic
myRS.LockType = adLockOptimistic
 
For i = 1 To nbcommunes
Select Case [Montant par élève pris en compte]
    Case Is > TBlimsup7
    myRS.Fields("tranches").Value = 8
    Case TBlimsup6 To TBlimsup7
    myRS.Fields("tranches").Value = 7
    Case TBlimsup5 To TBlimsup6
    myRS.Fields("tranches").Value = 6
    Case TBlimsup4 To TBlimsup5
    myRS.Fields("tranches").Value = 5
    Case TBlimsup3 To TBlimsup4
    myRS.Fields("tranches").Value = 4
    Case TBlimsup2 To TBlimsup3
    myRS.Fields("tranches").Value = 3
    Case TBlimsup1 To TBlimsup2
    myRS.Fields("tranches").Value = 2
    Case Else
    myRS.Fields("tranches").Value = 1
End Select
 
myRS.MoveNext
 
Next i
 
err_fct:
Resume Next
MsgBox "Erreur n° " & Err.Number & ": " & Err.Description
 
Set myRS = Nothing
Set cn1 = Nothing
End Sub
nunien22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2007, 19h47   #2
Modérateur
 
Avatar de AlainTech
 
Homme Alain Gerard
Consultant informatique
Inscription : mai 2005
Messages : 3 676
Détails du profil
Informations personnelles :
Nom : Homme Alain Gerard
Âge : 58
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique
Secteur : Finance

Informations forums :
Inscription : mai 2005
Messages : 3 676
Points : 7 625
Points : 7 625
Déjà, si tu utilises une gestion d'erreur, tu dois placer un Exit Sub avant l'étiquette err_fct pour ne pas passer dedans à tous les coups.
Il faut donc déplacer tout ce qui est après la gestion d'erreur pour que ce soit pris en compte.
Ceci donne, pour ton cas:

Code :
1
2
3
4
5
6
7
8
Set myRS = Nothing
Set cn1 = Nothing
 
Exit Sub
err_fct:
Resume Next
MsgBox "Erreur n° " & Err.Number & ": " & Err.Description
End Sub
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
Pensez aussi à voter pour les réponses qui vous ont aidés.
------------
Je dois beaucoup de mes connaissances à mes erreurs!
AlainTech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2007, 20h31   #3
Membre Expert
 
Inscription : novembre 2006
Messages : 1 465
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : novembre 2006
Messages : 1 465
Points : 1 411
Points : 1 411
salut
je ne comprend pas tout a ton code, mais déja, je ne suis pas sur que tes intervalles soient bien définis. je ne sais pas si c'est cela qui peut te donner cette erreur 0, mais quand tu écris
Code :
1
2
3
4
 Case TBlimsup6 To TBlimsup7
    myRS.Fields("tranches").Value = 7
    Case TBlimsup5 To TBlimsup6
    myRS.Fields("tranches").Value = 6
pour l'ordi, en supposant que la valeur soit TBlimsup6 il se retrouve avec 2 cases de même valeur, ça doit le perturber.
et puis, il y a un truc qui me chafouine, mais je n'en suis pas sur, il me semble que le cas d'erreur 0 est justement la valeur d'erreur quand il n'y a pas d'erreur. c'est a vérifier
bon dimanche
ps : quand a polluer le forum, ça servirai a quoi qu'on se décarcasse si personne n'avait de soucis, hein?
alsimbad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 12h30   #4
Modérateur
 
Avatar de AlainTech
 
Homme Alain Gerard
Consultant informatique
Inscription : mai 2005
Messages : 3 676
Détails du profil
Informations personnelles :
Nom : Homme Alain Gerard
Âge : 58
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique
Secteur : Finance

Informations forums :
Inscription : mai 2005
Messages : 3 676
Points : 7 625
Points : 7 625
Citation:
Envoyé par alsimbad
il me semble que le cas d'erreur 0 est justement la valeur d'erreur quand il n'y a pas d'erreur.
C'est la raison de mon intervention au dessus de la tienne.
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
Pensez aussi à voter pour les réponses qui vous ont aidés.
------------
Je dois beaucoup de mes connaissances à mes erreurs!
AlainTech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 14h13   #5
Invité de passage
 
Inscription : avril 2007
Messages : 14
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2007
Messages : 14
Points : 4
Points : 4
merci à vous pour vos réponses, cela m'a aidé malheureusement mon programme n'est toujours pas au point,j'avai un autre message d'erreur qui s'affichait donc j'ai rajouté la méthode .Open et cela a marché car je n'ai plus de message d'erreur, mais il ne se passe absolument rien lorsque je lance le programme.
Code :
1
2
3
4
myrs.ActiveConnection = cn1
myrs.CursorType = adOpenDynamic
myrs.LockType = adLockOptimistic
myrs.Open "SELECT tranches FROM statistiques"
Cela selectionne le champ tranches, le champ que je souhaite modifier, dans ma table "statistiques". En théorie, je crois que c'est ce qu'il faut faire mais ça ne fonctionne pas donc je suis à nouveau bloqué.
nunien22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h39.


 
 
 
 
Partenaires

Hébergement Web