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 :

vérifier si enregistrement existe dans la table [AC-2010]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 83
    Par défaut vérifier si enregistrement existe dans la table
    Bonjour,

    Voila j'ai le script suivant qui permet de prendre des données d'une table "Temp" pour les mettre dans un formulaire " Cover ".
    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
     
     
    Private Sub case_AfterUpdate()
     
    'déclaration variables
    Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
    Dim msg As String
    Dim temp_fournisseur As String
    Dim num_rap As String
     
    'Si la case est cochée alors message de confirmation Yes/No
    If [case] = True Then
     
        msg = MsgBox(" OK ? ", vbQuestion + vbYesNo)
        'Si la réponse est Oui
        If msg = vbYes Then
            DoCmd.RunCommand acCmdSaveRecord
            temp_fournisseur = ("SELECT num_rapport, Equipement, Inspector, Code_Supplier, No_IPS, Nom_affaire, Unite, Item, No_serie, nature_controle, societe, Fournisseur, No_affaire, case, Adresse_inspection, Adresse_emballage, No_poste, No_commande, No_modification FROM Temp WHERE ([case] = -1);")
     
            'Création du recordset (nécesaires pour les requêtes de selection)
            Set db = CurrentDb()
            Set rst = CurrentDb.OpenRecordset(temp_fournisseur)
     
            'Affectation du Temp.num_rapport dans une variable
            num_rap = rst.Fields("num_rapport")
     
            'Attribution des éléments récupérés dans les différents champs
            Form_Cover.fournisseur = rst.Fields("Fournisseur")
            Form_Cover.Description = rst.Fields("Equipement")
            Form_Cover.inspecteur = rst.Fields("Inspector")
            Form_Cover.No_projet = rst.Fields("No_affaire")
            Form_Cover.Projet = rst.Fields("Nom_affaire")
            Form_Cover.unite = rst.Fields("Unite")
            Form_Cover.Item = rst.Fields("Item")
            Form_Cover.No_serie = rst.Fields("No_serie")
            Form_Cover.type_inspection = rst.Fields("nature_controle")
            Form_Cover.company_name = rst.Fields("societe")
            Form_Cover.No_rapport = rst.Fields("num_rapport")
            Form_Cover.adresse_inspection = rst.Fields("Adresse_inspection")
            Form_Cover.adresse_emballage = rst.Fields("Adresse_emballage")
            Form_Cover.No_poste = rst.Fields("No_poste")
            Form_Cover.No_commande = rst.Fields("No_commande")
            Form_Cover.No_avenant = rst.Fields("No_modification")
            'Form_Cover = rst.Fields("Code_Supplier")
            'Form_Cover = rst.Fields("No_IPS")
            'Form_Cover.Date_inspection_realisee = rst.Fields("date_inspec_confirmee")
            'Form_Cover = rst.Fields("liste_diffusion")
            'Form_Formulaire1.No_rapport = rst.Fields("num_rapport")
     
     
     
            rst.Close
            DoCmd.Close
     
        'Si réponse = Non
        Else
        If (msg = vbNo) Then
        Exit Sub
        End If
     
        End If
    End If
     
    End Sub
    Le processus est simple : le formulaire Temp s'affiche avec les enregistrements compri dans la table source qui est aussi Temp. Dans ce formulaire il y a une case à cocher. si on clique sur la case, un message de confirmation s'affiche et si on clique sur OK, les infos de l'enregistrement sélectionnée s'insert dans le formulaire Cover qui a pour source la table Rapport.

    Je voudrais pouvoir vérifier en cochant la case, si l'enregistrement sélectionnée n'existe pas déjà dans la table. S'il existe, alors on demande s'il veut modifier l'enregistrement existant" Si la réponse est Oui on ouvre l'enregistrement en question. Sinon on arrête le processus. Si l'enregistrement n'existe pas dans la table, alors le script s'execute normalement.
    Le champ en commun dans ces deux tables est Num_rapport : Temp.num_rapport = Rapport.No_rapport

    J'aimerais avoir de l'aide là-dessus SVP
    Merci
    Cordialement

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 286
    Par défaut
    Il suffit sans doute, dans l'événement correspondant à la modification de ta case à cocher de regarder (si coché) si cet enregistrement est déjà dans ta table, par exemple en utilisant DlookUp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Recherche = Nz( DLookup "[Nom_Rubrique_commune]", "[Nom_Table]"), "")
    If Recherche <> "" then ' dans ce cas on demande si l'enregistrement doit être modifié
    ...
    Else
    ... ' l'enregistrement n'existe pas en table
    End if

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 83
    Par défaut
    Merci c'est ce qu'il me fallait !

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2014
    Messages : 8
    Par défaut question
    je suis nul en acces comme déjà dis je me suis fais une petite base ou j ai defini en cle primaire nom et date de naissance mais je comprend pas ou gerer l erreur 3022 qui apparait vous parler de after uptade ?? mais c ou?
    merci a tous

  5. #5
    Expert éminent

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Quel rapport avec la question d'origine ?

    Créez votre propre fil

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/05/2011, 07h16
  2. Vérifier si un enregistrement existe dans une table
    Par developpeur_débutant dans le forum PL/SQL
    Réponses: 4
    Dernier message: 08/06/2010, 12h05
  3. Réponses: 3
    Dernier message: 22/01/2009, 09h07
  4. verifier si un enregistrement existe dans une table
    Par niceen dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 02/04/2008, 21h37
  5. [MySQL] connaitre si un enregistrement existe dans la table
    Par namstou3 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/03/2008, 17h14

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