Probleme de tracabilité

Signaler
Messages postés
3
Date d'inscription
jeudi 21 juillet 2011
Statut
Membre
Dernière intervention
30 juillet 2011
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,
j'espere bien que quelqu'un peut m'aider , je suis débutant dans la programmation avec vb6 , voici mon probleme; j'ai une tdbgrid avec 9 colonne je souhaite lorsque je coche la checkbox de la 9éme colonne les lignes coché soit enregistré dans une autre table access avec un meme numero d'enregistrement ; voici le code que j'ai fait:

Private Sub TDBGrid1_Click()
Dim xrang, xdate, xlib, xcli, xdeb, xcred, xret, xech, xdos As Variant
Dim tb As Recordset
i = 0
If TDBGrid1.Col = 9 Then
i = i + 1
xrang(i) = TDBGrid1.Columns(0)
xdate(i) = TDBGrid1.Columns(1)
xech(i) = TDBGrid1.Columns(2)
xdos(i) = TDBGrid1.Columns(3)
xlib(i) = TDBGrid1.Columns(4)
xcli(i) = TDBGrid1.Columns(5)
xdeb(i) = TDBGrid1.Columns(6)
xcred(i) = TDBGrid1.Columns(7)
xret(i) = TDBGrid1.Columns(8)
End If
For J = 1 To i
Set tb = db.OpenRecordset("Tracabilité")
tb.AddNew
tb.Fields("TRA_NUM") = xrang(J)
tb.Fields("TRA_DATE") = xdate(J)
tb.Fields("TRA_ECHEANCE") = xech(J)
tb.Fields("TRA_DOSSIER") = xdos(J)
tb.Fields("TRA_LIBELLE") = xlib(J)
tb.Fields("TRA_CLIENT") = xcli(i)
tb.Fields("TRA_MONTANT_DEBIT") = xdeb(J)
tb.Fields("TRA_MONTANT_CREDIT") = xcred(J)
tb.Fields("TRA_RAS") = xret(J)
tb.Update
Next J


End Sub

Merci d'avance

7 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Bonjour,
Voilà donc ce "tu as fait"
Et quel en est le résultat ? Erreur (laquelle et quand) ? pas l'effet attendu ? , etc ...


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
Je peux déjà te conseiller de changer ton code comme ce ci

Private Sub TDBGrid1_Click()
Dim xrang, xdate, xlib, xcli, xdeb, xcred, xret, xech, xdos As Variant
Dim tb As Recordset
If TDBGrid1.Col = 9 Then

xrang(1) = TDBGrid1.Columns(0)
xdate(1) = TDBGrid1.Columns(1)
xech(1) = TDBGrid1.Columns(2)
xdos(1) = TDBGrid1.Columns(3)
xlib(1) = TDBGrid1.Columns(4)
xcli(1) = TDBGrid1.Columns(5)
xdeb(1) = TDBGrid1.Columns(6)
xcred(1) = TDBGrid1.Columns(7)
xret(1) = TDBGrid1.Columns(8)


Set tb = db.OpenRecordset("Tracabilité")
tb.AddNew
tb.Fields("TRA_NUM") = xrang(1)
tb.Fields("TRA_DATE") = xdate(1)
tb.Fields("TRA_ECHEANCE") = xech(1)
tb.Fields("TRA_DOSSIER") = xdos(1)
tb.Fields("TRA_LIBELLE") = xlib(1)
tb.Fields("TRA_CLIENT") = xcli(1)
tb.Fields("TRA_MONTANT_DEBIT") = xdeb(1)
tb.Fields("TRA_MONTANT_CREDIT") = xcred(1)
tb.Fields("TRA_RAS") = xret(1)
tb.Update

End If
End Sub

Pour le reste il faut que tu répondes a ucfoutu
Messages postés
3
Date d'inscription
jeudi 21 juillet 2011
Statut
Membre
Dernière intervention
30 juillet 2011

merci de m'avoir repondre , l'erreur c'est que lorsque je coche la checkbox le message d'erreur suivant s'affiche
erreur d'execution '13'
type incompatible
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Erreur (laquelle et quand) ?

on sait maintenant lquelle
On ne sait par contre encore pas "quand"
Je suppose que c'est en mode exécution compte tenu de ce type d'erreur.
Sur quelle ligne de ton code ?


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
3
Date d'inscription
jeudi 21 juillet 2011
Statut
Membre
Dernière intervention
30 juillet 2011

oui c'est en mode d’exécution et elle est sur cette ligne
xrang(i) = TDBGrid1.Columns(0)
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
si tu écris
xrang(i)
cela veux dire que tu te réfères à l'élément d'index i d'un tableau nommé xrang, u une dimension et pouvant recevoir au moins i éléments.
Or :
Dim xrang
fait que xrang n'est pas un ta bleau dimensionné, mais une simple variable de type Variant ===>> erreur 13, donc (bien évidemment)



____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Il te faut prendre le réflexe, dans de tels cas, d'isoler le point concerné. Et tu comprendras vite, de cette manière.
Regarde comment tu aurais pu isoler ce problème :
Private Sub Command1_Click()
  Dim xrang
  xrang(2) = ""
End Sub

Elle est là, ton erreur 13, non ?



____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP