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

Access Discussion :

Controle existence dans une table


Sujet :

Access

  1. #1
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut Controle existence dans une table
    Bonjour à tous,

    Je reviens vers vous pour un problème que j'avais déja soumis.

    En consultant les cours et tutoriels, j'ai trouvé cette solution pour vérifier l'existance de code client de deux tables différentes (Clients et prospects) puis centralisé dans une table et ainsi éviter la création de doublons.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Code_Client_AfterUpdate()
    Dim mabase As Database, VerifClient As Object, Client As String
    Set mabase = CodeDb
    Set VerifClient = mabase.OpenRecordset("Tbl_CodeClientProspects", dbOpenTable)
    Client = Me.Code_Client
    VerifClient.Index = "Code_Client"
    VerifClient.Seek "=", Client
    If VerifClient.NoMatch = False Then
    MsgBox "Ce code existe déjà. Impossible d'utiliser ce code client !!!"
    DoCmd.Close
    Else
    End If
    End Sub
    Je voulais savoir si cette solution était bonne dans le mesure où je souhaiterai mettre ma base en réseau (multi-utilisateurs)

    Merci pour vos réponses.

    Daniel

  2. #2
    Expert éminent sénior

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

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Non, car comme je l'ai indiqué dans un autre post, db_open_table n'est pas compatible avec les tables liées. Dans ce cas, la méthode Seek sera impossible.

    Toutefois le code sera :

    Private Sub Code_Client_AfterUpdate()
    Dim oRst As DAO.Recordset
    Dim strSQL As String
    'Crée la chaine SQL correspondant à la recherche du client
    strSQL = "SELECT Code_Client From Tbl_CodeClientProspects WHERE Code_Client =" & Code_Client
    'Ouvre le recordset
    Set oRst = CurrentDb.OpenRecordset(strSQL)
    'Si le recordset n'est pas vide
    'cela signifie que le client existe déjà
    If Not oRst.EOF Then
    'Dans ce cas, on avertit et on ferme
    MsgBox "Ce code existe déjà. Impossible d'utiliser ce code client !!!"
    DoCmd.Close
    End If
    End Sub

  3. #3
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut Controle existance dans une autre table
    Merci TOFALU,

    Merci pour ta réponse.

    Je reconnais que tu me l'avais déjà dis, mais c'est encore très confu pour moi. Je fais des efforts.

    Merci pour ta réponse.

    Daniel

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/11/2007, 10h54
  2. Existence dans une table d'un champ entré
    Par spleak dans le forum Access
    Réponses: 1
    Dernier message: 27/01/2007, 15h56
  3. Réponses: 2
    Dernier message: 06/05/2006, 22h50
  4. Réponses: 7
    Dernier message: 05/05/2006, 19h55

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