IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

[DAO][VBA]Ajout d'enregistrement : erreur objet requis


Sujet :

VBA Access

  1. #1
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut [DAO][VBA]Ajout d'enregistrement : erreur objet requis
    bonjour,

    Je suis en train de faire une base de données sur ma recherche d'entreprise et j'ai fait un formulaire pour ajouter des données sur une table (SOCIETE). Sur ce formulaire il y a plusieurs champs textes qu'il faut remplir et un bouton enregistrer pour enregistrer les nouvelles valeurs.

    le code associé a mon formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    Private Sub enregistrer_Click()
    On Error GoTo err_enregistrer_Click
     
     
        Dim RS As Recordset
        Set RS = db.OpenRecordset("SOCIETE")
     
        RS.AddNew
        RS.Fields("NUM_MANUT") = txtnom
        RS.Fields("NOM_MANUT") = txtorigine
        RS.Fields("PRENOM_MANUT") = txtville
        RS.Fields("ADRESSE_MANUT") = txtpostal
        RS.Fields("VILLE_MANUT") = txtadresse
        RS.Fields("CODE_POSTAL_MANUT") = txttel
        RS.Fields("TEL_MANUT") = txtprisecontact
        RS.Fields("MOBILE_MANUT") = txtcontact
        RS.Fields("DATE_NAISSANCE_MANUT") = txttitrecontact
        RS.Fields("DATE_NAISSANCE_MANUT") = txtreponse
        RS.Fields("DATE_NAISSANCE_MANUT") = txtsite
        RS.Fields("DATE_NAISSANCE_MANUT") = txtmail
        RS.Fields("DATE_NAISSANCE_MANUT") = txtcommentaire
        RS.Update
        RS.Close
     
        db.Close
     
        txtnom = ""
        txtorigine = ""
        txtville = ""
        txtpostal = ""
        txtadresse = ""
        txttel = ""
        txtcontact = ""
        txtprisecontact = ""
        txttitrecontact = ""
        txtreponse = ""
        txtsite = ""
        txtmail = ""
        txtcommentaire = ""
     
    exit_enregistrer_Click:
    Exit Sub
     
    err_enregistrer_Click:
    MsgBox Err.Description
    Resume exit_enregistrer_Click
     
    End Sub
    merci d'avance

    tchao
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  2. #2
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour,

    Pourquoi passes-tu par un recordset pour saisir un nouvel enregistrement ?
    Gabout

  3. #3
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    ca permet de ne pas pouvoir modifier les champs directement. je fais cette base de données pour moi mais je cherche pas la simplicité avant tout. j'essai de m'améliorer sous access en tapant du VB et du SQL.

    Est ce que vous connaissez ce message d'erreur ? je n'est pas trouver d'explication mais juste des solutions pas adéquat a ma situtation sur le net.

    tchao
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Essaye en déclarant ton recordset en DAO :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim RS As DAO.Recordset
    Si tu ne le précise pas, cela peux être un recordset ADO (il me semble que cela dépend de l'ordre des références)

    A+

    PS : la prochaine fois merci d'expliquer ton problème dans le thread et pas seulement dans le titre, d'indiquer sur quelle ligne est l'erreur.

  5. #5
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Salut,
    l'objet requis ici est la variable db qui n'est pas déclarée en tant que tel.
    Deux solutions
    Tu la déclares en tant que objet database
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim db As DAO.database  'ou Database
    set db = currentdb 'assignation
    ou utiliser directement une référence à la base courante si c'est le cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set RS = currentdb.OpenRecordset("SOCIETE")
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  6. #6
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    bijour,

    Maintenant j'ai déclaré ma variable DB en database et mon recordset en type table ( j'espere que c'est bien le cas). Dans ma base j'ai une seule table ou je veut faire une entrée de donnée.Maintenant j'ai une erreur de compilation de type : type défini par l'utilisateur non défini.
    L'erreur est sur la ligne de déclaration du recordset.
    Je voit pas le soucis , c'est un probleme de ADO ou DAO ou bien le recordset.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    Private Sub enregistrer_Click()
    On Error GoTo err_enregistrer_Click
     
        Dim RS As DAO.Recordset 'C'est la ligne ou la compilation detecte une erreur
        Dim DB As DAO.Database
        Set DB = CurrentDb
        Set RS = DB.OpenRecordset("SOCIETE", dbOpenTable)
     
     
        RS.AddNew
        RS.Fields("societe") = txtnom
        RS.Fields("origine") = txtorigine
        RS.Fields("ville") = txtville
        RS.Fields("code_postal") = txtpostal
        RS.Fields("adresse") = txtadresse
        RS.Fields("telephone") = txttel
        RS.Fields("date_prise_contact") = txtprisecontact
        RS.Fields("contact") = txtcontact
        RS.Fields("titre_contact") = txttitrecontact
        RS.Fields("reponse") = txtreponse
        RS.Fields("site_internet") = txtsite
        RS.Fields("adresse_mail") = txtmail
        RS.Fields("commentaires") = txtcommentaire
     
        RS.Update
        RS.Close
     
        DB.Close
     
        txtnom = ""
        txtorigine = ""
        txtville = ""
        txtpostal = ""
        txtadresse = ""
        txttel = ""
        txtcontact = ""
        txtprisecontact = ""
        txttitrecontact = ""
        txtreponse = ""
        txtsite = ""
        txtmail = ""
        txtcommentaire = ""
     
        Set RS = Nothing
        Set DB = Nothing
     
    exit_enregistrer_Click:
    Exit Sub
     
    err_enregistrer_Click:
    MsgBox Err.Description
    Resume exit_enregistrer_Click
     
    End Sub
    Tchao
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  7. #7
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Il faut cocher la référence microsoft DAO 3.6 Object library (Editeur vba/menu Outils/références)
    Bon dimanche.
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  8. #8
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    haha ouai il me manquait cette librairie.
    merci faw

    tchao
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VBA message d'erreur, objet requis
    Par yann26 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/08/2014, 19h00
  2. [VBA E] erreur objet requis sur format horaire
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/06/2006, 18h30
  3. Réponses: 3
    Dernier message: 07/02/2006, 13h25
  4. Erreur Objet requis : 'this' --> Comprend pas!!
    Par Grozeil dans le forum ASP
    Réponses: 3
    Dernier message: 30/03/2005, 09h46
  5. Erreur "Objet requis"
    Par cindaille dans le forum Access
    Réponses: 5
    Dernier message: 26/10/2004, 00h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo