Je suis trop nul, j'arrive même pas à enregistrer dans une base de données Acces

swordjet19 Messages postés 6 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 13 janvier 2006 - 12 janv. 2006 à 11:10
pseudoOM Messages postés 173 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 30 janvier 2009 - 12 janv. 2006 à 13:06
Bonjour à tous



Voilà je suis nouveau en prog VB. Et je developpe un tout petit prog
(rien à voir avec les votres lol), en fait c'est juste, entrer un nom,
prénom et age d'une personne dans une base de données Access. Et quand
je remplis les textbox, et je clique ok! Il me dit "erreur 91 variable
objet ou variable with non définie"...Quelqu'un pourrait-il me
débloquer....Merci!!



If Txtnom "" Or Txtpre "" Or Txtage = "" Then

MsgBox " veuillez remplir tous les champs"

Else

rs_eleve.AddNew
----------------------------> l'erreur se trouve à se niveau
apparemment

rs_eleve("nom") = Txtnom.Text

rs_eleve("prénom") = Txtpre.Text

rs_eleve("age") = Txtage.Text

rs_eleve.Update



Txtnom.Text = ""

Txtpre.Text = ""

Txtage.Text = ""

End If



MsgBox "Ajout d'un nouvel élève réussie!"



End Sub

7 réponses

pseudoOM Messages postés 173 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 30 janvier 2009 1
12 janv. 2006 à 11:44
As-tu initialisé ton recordset --> ex : set rs_eleve = db_base_Objet.OpenRecordset("Select * from Eleve", dbOpenDynaset)

db_base_Objet doit être déclaré de type Database
et il faut aussi l'initialiser
Set db_base_Objet = OpenDatabase("Chemin de la base", False, False, "password")

et dans ton if il faut mettre If Txtnom.Text "" Or Txtpre.Text "" Or Txtage.Text = "" Then

pseudoOM
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
12 janv. 2006 à 11:48
Salut,

Est-ce que ta variable rs_eleve est déclaré dans l'événement Click de ton bouton ? Est-ce qu'elle est initialisée ?

_____________________________________________________________________
0
swordjet19 Messages postés 6 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 13 janvier 2006
12 janv. 2006 à 11:55
Merci pour vos réponses rapides! Et sinon oui j'ai initialisé mon recordset dans un module dont voici le code :



'Pour le chemin de la base

Global db As Database



'Pour les tables à lire dans la base

Global rs_eleve As Recordset



'Pour les chaines sql

Global sql As String



Sub connection()

Set db = OpenDatabase(App.Path & "\bddeleve.mdb")

sql = "Select * From eleves"

Set rs_eleve = db.OpenRecordset(sql, dbOpenDynaset)

End Sub



Est-ce bien ça?
0
pseudoOM Messages postés 173 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 30 janvier 2009 1
12 janv. 2006 à 12:04
oui c'est ça !
mais mets toi sur cette ligne -->rs_eleve("nom") = Txtnom.Text
Ensuite fait F9 (la ligne va changer de couleur en fait c'est un point d'arrêt) et lance ton programme. Si il s'arrête sur la ligne rouge c'est que le problème vient d'autre part. Essai et on verra.
pseudoOM
0

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

Posez votre question
le_virus Messages postés 48 Date d'inscription dimanche 2 mai 2004 Statut Membre Dernière intervention 12 mars 2010
12 janv. 2006 à 12:09
Salut!

A mon avis, tu devrais les initialiser en créant les objets nécessaires.
J'entends par là:

Global db As New Database
Global rs_eleve as New Recordset

En principe ca devrait rouler plus vite que des roulettes.

Cordialement.
0
swordjet19 Messages postés 6 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 13 janvier 2006
12 janv. 2006 à 12:14
Je crois que le probleme vient du module, où j'initialise le recordset :



Set db = OpenDatabase(App.Path & "\bddeleve.mdb")



On peut se contacter par msn?, voici mon adresse : swordjet19@hotmail.com



Ca sera plus simple, encore merci !!
0
pseudoOM Messages postés 173 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 30 janvier 2009 1
12 janv. 2006 à 13:06
Bon essaie peut être de mettre le chemin complet à la base de données au lieu de App.path. Je ne crois pas que ça changera quelque chose mais qui ne tente rien n'a rien !
Et mets rs_eleve.close: set rs_eleve = nothing avant la fin de ton if pour voir .

pseudoOM
0