Probleme de tracabilité

hakimr1985 Messages postés 3 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 30 juillet 2011 - 28 juil. 2011 à 10:34
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 30 juil. 2011 à 11:24
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

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 juil. 2011 à 12:45
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
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
28 juil. 2011 à 14:46
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
0
hakimr1985 Messages postés 3 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 30 juillet 2011
30 juil. 2011 à 08:44
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 juil. 2011 à 10:28
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hakimr1985 Messages postés 3 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 30 juillet 2011
30 juil. 2011 à 10:58
oui c'est en mode d’exécution et elle est sur cette ligne
xrang(i) = TDBGrid1.Columns(0)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 juil. 2011 à 11:10
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 juil. 2011 à 11:24
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
0
Rejoignez-nous