cs_Webjojo
Messages postés9Date d'inscriptionsamedi 20 novembre 2004StatutMembreDernière intervention17 août 2007
-
15 août 2007 à 01:06
cs_Chatbour
Messages postés764Date d'inscriptionjeudi 27 juillet 2006StatutMembreDernière intervention 6 septembre 2010
-
15 août 2007 à 02:19
Bonjour tout le monde,
Je souhaite supprimer un enregistrement de ma base Access et lorsque j'execute ce code, j'ai un message d'erreur : "Run-time error '91': Object variable or With block variable not set"
Private Sub cmdSupprimerProduit_Click()
Dim RequeteChoixProduit As String
Dim RequeteRefProduit As String
Dim rstProduit_ref As ADODB.Recordset
Dim rstProduit_choix As ADODB.Recordset
'Ouverture de la connexion avec la BDD
mCnx.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "User ID = Admin;" _
& "Password = ;" _
& "Data Source =C:\bd_restaurant.mdb;" _
& "Persist Security Info = false"
mCnx.Open
If mCnx.State = adStateOpen Then
'On récupère la référence du produit sélectionné
RequeteRefProduit = "SELECT num_produit FROM produit WHERE nom_produit LIKE '" & lstProduit.Text & "'"
************************************
*C'EST ICI QUE SURGIT L'ERREUR
rstProduit_ref.Open RequeteRefProduit, mCnx, adOpenForwardOnly
*************************************
On Error Resume Next
'On récupère toutes les données concernant le produit dans contenu_commande
MsgBox rstProduit_ref("num_produit")
RequeteChoixProduit = "SELECT * FROM contenu_commande WHERE ref_commande LIKE '" & lblNumCommande.Caption & "' AND 'ref_produit LIKE '" & rstProduit_ref("num_produit") & "'"
'Fermeture des Recordset
rstProduit_ref.Close
Set rstProduit_ref = Nothing
rstProduit_choix.Close
Set rstProduit_choix = Nothing
'Fermeture de la connexion
mCnx.Close
Else
MsgBox "Erreur de connexion à la base de données"
End If
cs_Chatbour
Messages postés764Date d'inscriptionjeudi 27 juillet 2006StatutMembreDernière intervention 6 septembre 201019 15 août 2007 à 02:19
De rien,
pourquoi utiliser New :
(MSDN)
New :
Facultatif. Mot clé permettant la création implicite d'un objet. Si vous
utilisez le mot clé New lors de la déclaration de la variable objet, une
nouvelle instance de l'objet est générée lors de la première référence, ce qui
évite de définir la référence d'objet par le biais de l'instruction Set.
Le mot clé New ne peut être utilisé pour déclarer des variables de type de données[javascript:alink_10.Click() ] intrinsèques et des
instances d'objets dépendants. Il ne peut en outre être utilisé avec le mot
clé WithEvents.
(...)
Vous pouvez aussi utiliser une instruction Dim pour déclarer le type
objet d'une variable. L'instruction suivante déclare une variable pour une
nouvelle instance d'une feuille de calcul.
Dim X As New Worksheet
Si le mot clé New n'est pas utilisé pour déclarer une variable objet,
la variable qui fait référence à l'objet ne peut être utilisée avant d'avoir été
associée à un objet existant par le biais de l'instruction Set. Jusqu'à
ce qu'elle soit attribuée à un objet, la variable objet déclarée a la valeur
spéciale Nothing, qui indique qu'elle ne fait référence à aucune instance
spécifique d'un objet.