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 :

Problème avec requête paramétrée [AC-2013]


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Responsable qualité
    Inscrit en
    Mai 2015
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 76
    Points : 37
    Points
    37
    Par défaut Problème avec requête paramétrée
    Bonjour à Tous,

    J'ai effectué :

    1-effectuer un formulaire avec une liste déroulante et un bouton pour effectuer la requête
    2-une requête dans laquelle je paramètre le champ Etat

    D'habitude cela fonctionne mais aujourd'hui, rien ne vas pourriez-vous me guider pour trouver
    mon erreur.

    Merci d'avance du temps précieux que vous consacrerez à m'aider
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Il faut éviter le critère pointant sur un champ de formulaire...

    Le mieux est de passer un paramètre où ta requête à en guise de paramètre un mot clé, par exemple [Etat].

    De ce fait, tu rédiges ton code comme suit :

    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
    Public Function OpenParamQuery(ByVal QueryName As String, ByVal ParameterName As String, ByVal ParameterValue As String) As DAO.Recordset
    Dim oQDF                                               As DAO.QueryDef
    Dim blnHasRecords                                      As Long
     
        On Error GoTo L_ErrOpenParamQuery
        Set oQDF = CurrentDb.QueryDefs(QueryName)
        With oQDF
            .Parameters(ParameterName) = ParameterValue
            Set OpenParamQuery = .OpenRecordset
            If OpenParamQuery.EOF Then
                err.Raise 3021
            End If
        End With
     
        On Error GoTo 0
    L_ExOpenParamQuery:
        Set oQDF = Nothing
        Exit Function
     
    L_ErrOpenParamQuery:
        Set OpenParamQuery = Nothing
        Resume L_ExOpenParamQuery
    End Function
    et tu le testes avec adapatation pour ton cas
    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
    Sub test_OpenParamQuery()
    Dim strParameterValue                                  As String
    Dim strParameterName                                   As String
    Dim strQueryName                                       As String
    Dim oRS                                                As DAO.Recordset
        'Définit les paramètres
        strQueryName = "_TestQCommunesParCodePostal"
        strParameterName = "CodePostal"
        strParameterValue = "80120"
        'Appelle la fonction qui retourne un Recordset
        Set oRS = OpenParamQuery(strQueryName, strParameterName, strParameterValue)
        'Retourne le résultat
        If Not oRS Is Nothing Then
            'Le code que tu veux faire...
            oRS.MoveLast
            MsgBox "C'est bon, ça match !!!" & vbCrLf & "Il y a " & oRS.RecordCount & " communes trouvées.", vbInformation
        Else
            MsgBox "Pas de correspondance avec le critère " & strParameterValue, vbExclamation
        End If
    End Sub
    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Responsable qualité
    Inscrit en
    Mai 2015
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 76
    Points : 37
    Points
    37
    Par défaut
    Bonjour Argy et merci pour ta réponse,

    J'ai essayé ta solution et cela fonctionne merci encore

    Nono32

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

Discussions similaires

  1. [HSQLDB]Problèmes avec requête
    Par Baptiste Wicht dans le forum JDBC
    Réponses: 7
    Dernier message: 06/06/2006, 22h28
  2. Problèmes avec Requêtes d'extraction
    Par NoBru dans le forum Access
    Réponses: 3
    Dernier message: 03/06/2006, 15h25
  3. Problème avec requête ajout
    Par teffal dans le forum Access
    Réponses: 3
    Dernier message: 29/04/2006, 16h41
  4. Problème avec requête ajout
    Par mitnick32 dans le forum Access
    Réponses: 1
    Dernier message: 02/02/2006, 18h02
  5. [VB6] Problème avec requête Update
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/02/2006, 03h40

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