[V B] problème recordSet
jerev
-
blux Messages postés 27993 Date d'inscription Statut Modérateur Dernière intervention -
blux Messages postés 27993 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai un petit soucis avec mon code VB, quand j'excute ceci j'ai l'erreur suivante qui apparait :
"Varialbe objet ou variable de bloc With non définie"
voici le code :
j'ai mis des MsgBox un peu partout pour verifier et j'ai vu que ca bug lors du set record = DAO.BaseOpenRecord("nom requete")
pourtant j'ai bien verifier les variables sont bonnes et tout ce qui est au dessus marche ...
si quelqu'un a une idée, j'ecoute !!!
merciiiii !!
J'ai un petit soucis avec mon code VB, quand j'excute ceci j'ai l'erreur suivante qui apparait :
"Varialbe objet ou variable de bloc With non définie"
voici le code :
Private Sub Retirer_Click()
On Error GoTo Err_Retirer_Click
Dim nomL As String
Dim nomL2 As String
Dim nomC As String
Dim nomC2 As String
Dim res As String
nomC = Nom_Centre.Value
nomC2 = Replace(nomC, "'", "''")
Dim BD As DAO.Database
Dim qteFinal As Integer
Dim qteSelec As Integer
Dim qte As Integer
Dim recor As DAO.recordset
nomL = Me.Form![Sous_Formulaire_Liste_Lot]![Nom_Lot].Value
nomL2 = Replace(nomL, "'", "''")
box = InputBox("Combien de lots voulez vous supprimer ?", "retirer " & name, "0")
qteSelec = Val(box)
Set recor = BD.OpenRecordset("Select Nom_Lot, Quantite from PossedeLot where Nom_Lot = '" & nomL2 & "' and Nom_Centre = '" & nomC2 & "';", dbOpenDynaset, dbFailOnError)
With recor
res = ![Nom_Lot]
qte = ![Quantite]
If qteSelec <= qte Then
If qte = qteSelec Then
req2 = "Delete Nom_Lot from PossedeLot where Nom_Lot = '" & nomL2 & "' and Nom_Centre = '" & nomC2 & "';"
Else
qteFinal = qte - qteSelec
req2 = "Update PossedeLot set Quantite = " & qteFinal & " where Nom_Lot = '" & nomL2e & " and Nom_Centre = '" & nomC2 & "';"
End If
If MsgBox("Voulez-vous confirmer le retrait ?", vbQuestion + vbYesNo, "CONFIRMATION") = vbNo Then
Me.Undo
Cancel = True
Else
BD.Execute req2
DoCmd.Close
End If
Else
MsgBox "Quantité supérieure au nombre de lots existant"
End If
End With
recordset.Close
Exit Sub
End Sub
j'ai mis des MsgBox un peu partout pour verifier et j'ai vu que ca bug lors du set record = DAO.BaseOpenRecord("nom requete")
pourtant j'ai bien verifier les variables sont bonnes et tout ce qui est au dessus marche ...
si quelqu'un a une idée, j'ecoute !!!
merciiiii !!
A voir également:
- [V B] problème recordSet
- Hyper-v download - Télécharger - Divers Utilitaires
- B&you - Guide
- Net framework 4.0 v 30319 windows 7 - Télécharger - Divers Utilitaires
- Voyant c et b imprimante canon - Forum Imprimante
- Carte v-bucks lettre z switch ✓ - Forum Nintendo Switch
4 réponses
Salut,
tu as du code entre des descriptions de variables... C'est pas joli, mais ça marche...
Tout ça pour dire qu'à aucun moment ta variable BD ne prend de valeur, donc ACCESS ne va pas aimer...
Je te propose donc de faire autrement en référençant ton recordset avec la base de donnés courante (et ça t'évitera de déclarer BD)
Ca ne pourra qu'aller mieux !
tu as du code entre des descriptions de variables... C'est pas joli, mais ça marche...
Tout ça pour dire qu'à aucun moment ta variable BD ne prend de valeur, donc ACCESS ne va pas aimer...
Je te propose donc de faire autrement en référençant ton recordset avec la base de donnés courante (et ça t'évitera de déclarer BD)
Set recor = CurrentDb.OpenRecordset("....")
Ca ne pourra qu'aller mieux !
Une 'tite astuce en passant :
lorsqu'ACCESS te signale une erreur et surligne en jaune la ligne incriminée, tu peux passer le pointeur de la souris sur les variables afin qu'il t'en affiche la valeur. Dans ton cas, tu aurais eu un truc comme ça :
https://www.cjoint.com/?eslC6o4LVD
Le pointeur souris n'apparait pas, car on est sur une capture, mais il est sur 'rs"...
lorsqu'ACCESS te signale une erreur et surligne en jaune la ligne incriminée, tu peux passer le pointeur de la souris sur les variables afin qu'il t'en affiche la valeur. Dans ton cas, tu aurais eu un truc comme ça :
https://www.cjoint.com/?eslC6o4LVD
Le pointeur souris n'apparait pas, car on est sur une capture, mais il est sur 'rs"...
erf oui effectivement j'avais oublier de déclarer ma variable BD ! Merci beaucoup !
J'ai encore un soucis mais je pense que c'est le même type d'erreur, je vais cherché ca de suite.
Par contre, tu me dis que ACCESS souligne en jaune les erreurs, oui c'est vrai, cependant je comprend pas pourquoi mais pour cette erreur le debogueur ne se lance meme pas ... C'est pourquoi je ne savais même pas d'ou venait l'erreur ...
Merci en tout cas ;)
J'ai encore un soucis mais je pense que c'est le même type d'erreur, je vais cherché ca de suite.
Par contre, tu me dis que ACCESS souligne en jaune les erreurs, oui c'est vrai, cependant je comprend pas pourquoi mais pour cette erreur le debogueur ne se lance meme pas ... C'est pourquoi je ne savais même pas d'ou venait l'erreur ...
Merci en tout cas ;)