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

VB 6 et antérieur Discussion :

Test de doublon et incrementation


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut Test de doublon et incrementation
    Bonjour,
    mon probleme est que j'aimerais savoir comment faire pour tester si un nombre que j'ai generé aleatoirement n'existe pas deja dans la base.
    Le truc c'est que je fais une application de gestion des membres d'une EMF et je voudaris aussi savoir comment faire apres que j'ai fait un 1er enregistrement du membre 1, la variable Num de valeur initial 0001, aie pour le 2eme enregistrement (apres la reoverture de l'application) du membre 2 la valeur 0002 et ainsi de suite. En fait la valeur Num va remplir le champ Num_Membre de la table Membre.
    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    Ce que je te propose c'est de faire une routine qui va te permettre de générer automatiquement les clés. Avec ça tu n'auras pas de doublons

  3. #3
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut
    Bonjour,
    je pense que c'est justement cette routine dont j'aimerais si possible que tu m'envoies quelque ligne de code

  4. #4
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Comme çà, au pif, aller chercher le dernier enregistrement de la table (MoveLast) lire le champ qui contient la clé et lui ajouter un, devrait te donner une cle unique.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 298
    Par défaut pour tester si existe deja etc
    salut bon pour pouvoir tester si la clé existe Deja On utilise If not.nomatch ou le contraire est juste Aussi exemple j'ai une table Client les champs: N°client , Nom Client , Adresse
    on utilise le Module pr ouvrir 1 bdd ou si tu veux utilise Data ou ADO .

    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
    Modul
    public base as database 
    public E_client as recordset
    public Ouverture()
    set base=opendatabase(app.path & "\Gestion Client)"  'Ouverture de la bdd'
    set E_client=base.openrecordset("Client") 'ouverture de la table' 
    End sub
    
    Private sub Form_load()
    Ouverture
    form1.keypreview=1 'Activer Le keypress Touche entrer'
    End sub
    
    Private sub Text1_lostfocus()
    with E_client 'La table Client'
    if text1<>"" then
    .index="Client.ndx"  'Le nom de l'index '
    .seek"=",text1
    if not .nomatch then  'si j'l'ai trouver?'
    text2=!Nom 'affiche moi le Nom client'
    text3=!adr 'Afiiche Moi l'adresse'
    endif
    end with
    end if
    End sub
    
    Private sub form_keypress() 'pour activer la touche entrer'
    if keyascii=13 and text1<>"" then text2.setfocus
    if keyascii=13 and text2<>"" then text3.set focus
    End sub
    une petite remarque:
    si tu utilise le Module verifier bien que l'ordinateur vous donne les Propriètés DATABASE et RECORDSET etc sauf openrecordset (tu dois l'ecrire toi-meme)
    sinon va dans Onglet puis reference puis Cocher Microsoft DAO 3.51 et voila l module et les propriété seront activé

  6. #6
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut
    Dans la ligne : .index="Client.ndx" 'Le nom de l'index '
    à quoi renvoi l'index ici ? a un champ de de la table client par exemple ? et aussi peut on ecrire text1 au lieu de text1.text

  7. #7
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    Tout comme te le disais Delbeqe (bonjour), tu doit te mettre au dernier enregistrement, ensuite le recupere et faire une incrementation.

    Voila un exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    dim NextNum as integer
    With rst
        if not .eof then
             .movelast
             'En esperant que Num_Membre soit de type numérique 
             NextNum  = !Num_Membre + 1
        end if
    end with
    Voila a peut pres a quoi ca ressemble

  8. #8
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut
    Bonjour,
    j'ai essayer la méthode .nomatch (de Sooprano) mais j'ai le message d'erreur suivant : Méthode ou membre de données introuvable et le débogeur s'arrete et surligne .nomatch, meme après avoir cocher la reference Microsoft DAO 3.51 library. Pourquoi cela, que faut il faire ?

  9. #9
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    Juste une question : est que l'on peut voir le code que tu as deja fait ?

    car d'apres ton premier message tu as deja etablis la connexion et maintenant il ne te reste plus qu'a generer le code, ce qui devrais marche si tu adapte mon code a ton probleme.

  10. #10
    Membre éclairé Avatar de bruce207
    Inscrit en
    Novembre 2007
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 319
    Par défaut
    Bonjour,
    mon problème ici n'est plus l'incrémentation, mais plutot vérifier si un enregistrement existe déjà dans la table et d'après ce qu'a dit sooprano on utilise .nomatch qui d'ailleurs me genere une erreur comme j'ai dit precedemment. Donc je voudrais savoir pourquoi j'ai cette erreur et comment faire pour la resoudre ou s'il existe un autre moyen de savoir si un enregistrement existe déjà.
    Merci

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/05/2015, 20h29
  2. [XL-2007] Test sur textbox checkbox et doublon
    Par stephadm dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 07/04/2012, 16h21
  3. [XL-2000] test de doublon et recuperation N° de ligne
    Par cobra38 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 05/01/2011, 14h00
  4. test collisions
    Par tatakinawa dans le forum OpenGL
    Réponses: 5
    Dernier message: 08/06/2002, 06h03
  5. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21

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