Erreur d'exécution '3219'

Fermé
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 - 29 juin 2013 à 23:58
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 15 mai 2014 à 19:36
Bonjour,

Je suis en cours de concevoir une petite application en VB6, Au moment de la sélection à partir du Combox d'un premier code, les données qui lui sont attribués d'affichent automatiquement. Or lorsque un deuxième code à partir toujours de ce Combox, le programme se plante et me renvoie le message suivant ( Erreur d'exécution '3219' : l'opération demandée n'est pas autorisée dans ce contexte)

Je m'explique plus :

ma tentative est de faire afficher dans chaque zone de texte les données la concernant, une fois le code adéquat est sélectionné à partir du combox. Les codes stockés dans cette combox sont ramenés d'un autre tableau des codes appelé TableauCodes. Parce que la feuille de saisie est liée à un autre tableau, appelé TableauExpédition



Private Sub Form_Load()

PoolConnection

SQLs = "select * from TableauExpedition"

If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic

Adodc1.RecordSource = SQLs
Set DataGrid1.DataSource = Adodc1

DataGrid1.AllowAddNew = False
DataGrid1.AllowUpdate = False


lblN.Caption = Adodc1.Recordset.RecordCount
Adodc1.Refresh


'--------------------------------------------------



SQLs = "Select * from TableauCodes " & " order by CODEPDTs asc"

If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic


Do Until RS.EOF

cmbCodePdt.AddItem (RS![CODEPDTs])

RS.MoveNext

Loop



End Sub

Private Sub cmbCodePdt_KeyPress(KeyAscii As Integer)


If KeyAscii = 13 Then
If cmbCodePdt = "" Then
MsgBox "Veuillez sélectionner le Code du Produit", vbCritical + vbMsgBoxRight + vbInformation, "Info !"
cmbCodePdt.SetFocus
Exit Sub
End If



Dim Z
Z = CLng(cmbCodePdt)





SQLs = "Select * from TableauCodes " & " where CODEPDTs = " & CLng(cmbCodePdt) & ""

If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic

RS.MoveFirst

TPdt = RS![PRODUITs]
TRefEmbal = RS![REFEMBALs]
TMarque = RS![MARQUEs]
TCalibre = RS![CALIBREs]
TNbreColis = RS![NBRECOLISs]
TTypPalet = RS![TYPALETs]



TNbrePalet.SetFocus
End If


End Sub




Merci pour votre aide

A plus

10 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 1/07/2013 à 10:56
Bonjour,

sur quelle ligne s'arrete le programme ????

SQLs = "Select * from TableauCodes " & " where CODEPDTs = " & CLng(cmbCodePdt) & "" hors sujet peut-etre, mais devrait etre ecrit comme suit:
SQLs = "Select * from TableauCodes " & " where CODEPDTs = '" & CLng(cmbCodePdt) & "';"

A+
1
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
1 juil. 2013 à 23:39
Bonjour l'Ami,

le programme s'arrête sur la ligne :

If RS.State = adStateOpen Then RS.Close


surtout sur

RS.Close


A plus
0
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
2 juil. 2013 à 01:11
Re Bonjour l'Ami,

En vérifiant la marche de l'application avec (;) inséré dans
la requête SQLs, le résultat était positif.

Merci

A cette occasion, je vous soumets un autre problème au niveau des totaux :

en saisissant les données, sur des étiquettes en bas du tableau s'affichaient les totaux. Seulement au moment du chargement de la feuille, les totaux ne s'affichent pas, et le programme me renvoie le message :

Erreur d'exécution '94'
Utilisation non autorisée de NULL

les code sont comme suite :

Private Sub Form_Load()

PoolConnection

SQLs = "select * from TableauExpedition " & " order by NPALET asc"

If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic

Adodc1.RecordSource = SQLs
Set DataGrid1.DataSource = Adodc1

DataGrid1.AllowAddNew = False
DataGrid1.AllowUpdate = False


lblN.Caption = Adodc1.Recordset.RecordCount
Adodc1.Refresh


If lblN.Caption <= 33 Then
TNExp = RS![EXPN]
TDateExp = RS![DATEEXP]
TTransporteur = RS![TRANSPORTEUR]
TMatriculeRemorque = RS![MATRICULEREMORQUE]
lblTNbrePalet.Caption = RS![TNbrePalet]
'lblTNbreColis.Caption = RS![TNbreColis]
'lblTKgBrut.Caption = RS![tkgbruts]
'lblTKgNet.Caption = RS![tkgnets]

Else
TNExp = ""
TDateExp = ""
TTransporteur = ""
TMatriculeRemorque = ""
lblTNbrePalet.Caption = ""
lblTNbreColis.Caption = ""
lblTKgBrut.Caption = ""
lblTKgNet.Caption = ""

End If


end sub



A plus l'Ami
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
2 juil. 2013 à 09:07
Bonjour,

Avez-vous des champs a valeurs null ?? Faire le test not isNull avant.
0

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

Posez votre question
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
2 juil. 2013 à 23:18
Bonjour,

J'ai vérifié ce que je peux, mais la seule chose qui me faisait douter est que
sur la première ligne de la table ( dans la base des données ) à la case qui correspond au total est vide ( je crois c'est là où cette valeur est nulle )

A votre avis est ce possible ?

A plus
0
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
3 juil. 2013 à 00:11
Re Bonjour l'Ami,

Je crois que je commence à déconner. J'ai essayer avec Not IsNull, comme il est
exposé ci dessous. Toujours au chargement de la feuille, seule la valeur ZERO (0)
qui est affichée.


Dim Ok, Ok1, Ok2, Ok3  As Integer

Ok = 0
Ok1 = 0
Ok2 = 0
Ok3 = 0

Dim TPalet, TColis, TKGB, TKGN As Integer

TPalet = RS![TNbrePalet]
TColis = RS![TNbreColis]
TKGB = RS![TKGBRUTS]
TKGN = RS![TKGNETS]

If Not IsNull(RS![TNbrePalet]) Then
lblTNbrePalet.Caption = TPalet
Else
lblTNbrePalet.Caption = Ok
End If

If Not IsNull(RS![TNbreColis]) Then
lblTNbreColis.Caption = TColis
Else
lblTNbreColis.Caption = Ok1
End If

If Not IsNull(RS![TKGBRUTS]) Then
lblTKgBrut.Caption = TKGB
Else
lblTKgBrut.Caption = Ok2
End If

If Not IsNull(RS![TKGNETS]) Then
lblTKgNet.Caption = TKGN
Else
lblTKgNet.Caption = Ok3
End If


A plus
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
3 juil. 2013 à 08:19
Bonjour,

mettez un point d'arret apres le dernier test et regardez la valeur des champs de votre requete sql.
0
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
3 juil. 2013 à 22:21
Bonjour l'Ami

Sincèrement je ne sais pas comment. Si vous pouvez m'expliquer plus

Merci d'avance

A plus
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
4 juil. 2013 à 10:32
Bonjour,
Pour mettre un point d'arret programme: click gauche sur la barre verticale a gauche de la fenetre d'un module de code. Pour visualiser la valeur d'une variable a la suite d'un arret programme sur point d'arret, placer le curseur souris sur la variable.

image d'un point d'arret avec visu valeur d'une variable:

https://www.cjoint.com/c/CGekAugUuJB

A+
0
^Abel^ Messages postés 15399 Date d'inscription jeudi 14 juillet 2011 Statut Contributeur Dernière intervention 14 février 2023 6 850
15 mai 2014 à 14:41
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
15 mai 2014 à 19:36
Bonjour et merci de m'avoir transmis ce lien, j'ai repondu a cette personne.
0