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

IHM Discussion :

Ajouter de données dans tables à partir d'un formulaire


Sujet :

IHM

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 28
    Points : 17
    Points
    17
    Par défaut Ajouter de données dans tables à partir d'un formulaire
    Bonjour,

    je vous poste mon code qui doit permettre l'ajout d'enregistrements dans la table client et la table dossier quand valeur contenue dans la listbox cboClient = 0 :
    a l'exécution j'ai le message d'erreur suivant :
    "l'erreur #3251 a été générée par DAO.Recordset. Opération non autorisée pour ce type d'objet".

    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    Private Sub btAjouter_Click()
     
    Dim DB As DAO.Database
    Dim rs As DAO.Recordset
     
    On Error GoTo Erreur
     
    Set DB = CurrentDb
     
    If Me.cboClient = 0 Then
     
        Set rs = DB.OpenRecordset("tblCLIENT")
        rs.FindFirst "nom_client = " & Forms!F_GestionClient2!nom_client
     
        If rs.NoMatch Then
            With rs
                .AddNew
                !code_client = Me.code_client
                !nom_client = Me.nom_client
                !nom_contact = Me.nom_contact
                !adresse1 = Me.adresse1
                !adresse2 = Me.adresse2
                !cp_client = Me.cp_client
                !ville_client = Me.ville_client
                !tel_client = Me.tel_client
                !fax_client = Me.fax_client
                !email_contact = Me.email_contact
                .Update
                .Bookmark = .LastModified
                Me.code_client = !code_client
            End With
     
        Else
            MsgBox " Ce client a déjà été enregistré !", vbExclamation, "Attention"
            rs.Close
            Set rs = Nothing
            DB.Close
            Set DB = Nothing
            Exit Sub
        End If
     
        If Me.cboCollab = "" Then
                MsgBox "Vous devez affecter un collaborateur à ce client !", vbExclamation, "Attention"
                Exit Sub
        Else
                Set rs = DB.OpenRecordset("tblDOSSIER")
                With rs
                    .AddNew
                    !num_collab = Me.cboCollab.Column(0)
                    !code_client = Me.code_client
                    .Update
                    .Close
                Set rs = Nothing
                End With
            End If
     
    MsgBox "Le nouveau client a bien été enregistré !", vbInformation, "Info"
     
    End If
     
    Exit Sub
    Erreur:
        msg = "L'erreur # " & Str(Err.Number) & " a été générée par " & Err.source & Chr(13) & Err.Description
        MsgBox msg, , "Erreur", Err.HelpFile, Err.HelpContext
    End Sub
    Qu'est ce qui cloche dans mon code ??!
    merci de votre aide à tous.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rs = DB.OpenRecordset("tblCLIENT", dbOpenDynaset)
    tu ne peux pas faire de FindFirst sur une table Access dans son mode d'ouverture par défaut, le dbOpenDynaset le permet.

    A+

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 28
    Points : 17
    Points
    17
    Par défaut
    merci bcp.
    j'ai corrigé comme suggéré et maintenant j'ai le message :
    "erreur # 3077 a été générée par DAO.recordset. erreur de syntaxe (opérateur absent) dans l'expression.
    de quel opérateur s'agit-il ?
    merci bcp.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    C'est sur la ligne modifiée ?

    Je viens de faire un test sur ma machine et je n'ai pas de problème.

    Poste ta ligne modifiée, cela donnera peut-être une indication.

    A+

Discussions similaires

  1. Enregistrer données dans table à partir d'un formulaire
    Par carpediem2807 dans le forum VBA Access
    Réponses: 16
    Dernier message: 04/05/2016, 21h53
  2. Réponses: 11
    Dernier message: 06/11/2013, 15h17
  3. Ajout de données dans table
    Par bruce207 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/04/2011, 19h30
  4. Ajouter une colonne à une table à partir d'un formulaire
    Par turbo_sophie dans le forum VBA Access
    Réponses: 8
    Dernier message: 27/04/2009, 15h48
  5. Ajout de données dans une liste d'un formulaire
    Par Elstak dans le forum Access
    Réponses: 1
    Dernier message: 09/08/2006, 16h53

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