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 :

Requête de correspondance


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Par défaut Requête de correspondance
    Bonjour,
    Pour eviter les doublons au niveau des noms dans ma base, j'ai fait une requête de correspondance avec l'aide D'ilank La voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Loueur, NomLoueur
    FROM Mouvements,Loueurs
    WHERE Loueur=Left(NomLoueur,Len(Loueur))
    GROUP BY Loueur, NomLoueur;
    Lors de l'insertion d'un loueur par l'utilisateur, j'aimerais utiliser cette requête afin de verifier que le loueur n'existe pas dêja.

    Si l'utilisateur inscrit Jean D et qu'il existe un Jean Dupont je voudrais l'avertir.

    En VBA, j'ai utilisé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set res1 = CurrentDb.CreateQueryDef("SELECT Loueurs.NomLoueur FROM  Loueurs WHERE '" & lblNewNomLoueur.Value & "' =Left(Loueurs.NomLoueur,Len('" & lblNewNomLoueur.Value & "'));")
    If res1.ReturnsRecords = True Then
        nom = res1("NomLoueur")
        MsgBox ("Un loueur ayant le nom '" & nom & "' existe, êtes vous sur de vouloir créer ce loueur quand même ?")
    End If
    Le problême, c'est que ca bloque sur ma premiere ligne avec pour erreur :


    Si quelqu'un peut m'éclairer, je le remercie.

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Par défaut
    Bonjor OCB,

    essaie avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set res1 = CurrentDb.CreateQueryDef("SELECT Loueurs.NomLoueur FROM  Loueurs WHERE Left(Loueurs.NomLoueur," & len(lblnewnomloueur.value) & ")='" & lblnewNomLoueur.Value & "'")

  3. #3
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Un DLookUp ferait aussi bien l'affaire..
    [Access] Les bases du débogage => ici

  4. #4
    Membre confirmé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Juin 2008
    Messages : 157
    Par défaut
    Je comprend pas ilank, la ligne que tu m'a donné me semble faire l'affaire mais toujours la meme erreure.

    Faut bien que je passe par QueryDef et non recordset ?

    En attendant, je vais jeter un coup d'oeil a la fonction DLookUp.

    La fonction DLookUp me renvoit tjrs null.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (DLookup("[NomLoueur]", "Loueurs", "NomLoueur like '" & lblNewNomLoueur.Value & "%" & "'"))
    Le lblnewnomloueur.value= dupont et dans ma table j'ai un dupont jean pourtant.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Le caractère générique dans Access est * et non %

    Philippe

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Par défaut
    Re OCB,
    j'ai répondu sans vraiment lire le message d'erreur.
    Le CreateQueryDef attends deux paramètres, le nom de la requête à créer et son code SQL. L'erreur c'est qu'ici Access tente d'ouvrir une requête dont le nom est le code SQL. Et évidemment il ne la trouve pas.
    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set res1 = CurrentDb.CreateQueryDef("","SELECT Loueurs.NomLoueur FROM  Loueurs WHERE Left(Loueurs.NomLoueur," & len(lblnewnomloueur.value) & ")='" & lblnewNomLoueur.Value & "'")

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

Discussions similaires

  1. [AC-2003] Requête non correspondance - Problème
    Par jeanpierre78 dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 11/04/2011, 18h28
  2. Besoin d'aide pour une requête non correspondance
    Par isabelle b dans le forum Requêtes et SQL.
    Réponses: 35
    Dernier message: 23/06/2008, 00h30
  3. Problème traitement chaine/requête non correspondance
    Par VITALTH dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 30/05/2008, 18h16
  4. requête non correspondance
    Par lebreton22 dans le forum Requêtes
    Réponses: 2
    Dernier message: 16/10/2006, 15h41
  5. Cas spécial de requête de non-correspondance
    Par Floch dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 21/06/2006, 12h19

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