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

IHM Discussion :

[Code] Formulaire de Recherche: Problème de code


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 71
    Points : 31
    Points
    31
    Par défaut [Code] Formulaire de Recherche: Problème de code
    Bonjour,

    J'ai commencé un petit formulaire de recherche mais je rencontre quelques difficultés...

    J'ai un critère 'PriseContact' avec une liste déroulante: email, courrier, tel, salon

    Voici la partie du code qui me pose problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        'Prise Contact
        If Not IsNull(Form_Formulaire1.PriseContact.Value) Then
             sql = sql + "AND [PriseContact]='" & Form_Formulaire1.PriseContact.Value & "' "
        End If
    Je ne sais pas ce qui ne fonctionne pas, et ayant un niveau plutôt débutant, je serais vraiment très reconnaissante si quelqu'un pouvait m'aider et me dire ce qui cloche

    Merci d'avance!

    Laure

  2. #2
    Membre du Club Avatar de Pwouaro
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Points : 57
    Points
    57
    Par défaut
    Bonjour Laure,

    Peux-tu nous poster ta requête SQL compléte. On y verra plus clair.

    Sinon, je serais d'avis de mettre un "&" à la place du signe + pour la concaténation.
    Poireau est un terme qui désigne plusieurs plantes du genre Allium dont Allium polyanthum, le poireau de vigne. Cependant, la plupart du temps, c'est du poireau cultivé, Allium porrum, dont il est question.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 71
    Points : 31
    Points
    31
    Par défaut
    Je ne sais pas si vous avez besoin de tout le code, mais au cas où:

    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
    65
    Private Sub Rechercher_Click()
    On Error GoTo Err_Rechercher_Click
     
        Dim sql As String
     
    '    stDocName = "Requête recherche"
    '    DoCmd.OpenQuery stDocName
     
     
     
        'Requete
        sql = "SELECT [IDContact], [IDEntreprise], [NomContact], [De], [A], [DateContact], [PriseContact], [Objet], [Reponse], [EnvoiCatalogue], [EnvoiTarif], [Envoi Echantillons], [EnvoiEchantillons], [RefProduit], [Relance] FROM TContact "
        sql = sql + " WHERE 1 "
     
        'Les trois premiers champs
        If Form_Formulaire1.modifCatalogue.Value = True Then
            sql = sql + "AND [EnvoiCatalogue]=true "
        ElseIf Form_Formulaire1.modifCatalogue.Value = False Then
            sql = sql + "AND [EnvoiCatalogue]=false "
        End If
     
        If Form_Formulaire1.modifTarif.Value = True Then
            sql = sql + "AND [EnvoiTarif]=true "
        ElseIf Form_Formulaire1.modifTarif.Value = False Then
            sql = sql + "AND [EnvoiTarif]=false "
        End If
     
        If Form_Formulaire1.modifEchantillons.Value = True Then
            sql = sql + "AND [Envoi Echantillons]=true "
        ElseIf Form_Formulaire1.modifEchantillons.Value = False Then
            sql = sql + "AND [Envoi Echantillons]=false "
        End If
     
        'Date contact
        If Not IsNull(Form_Formulaire1.DateDeb.Value) Then
            If IsNull(Form_Formulaire1.DateFin.Value) Then
                sql = sql + "AND [DateContact]=#" & Form_Formulaire1.DateDeb.Value & "# "
            ElseIf Not IsNull(Form_Formulaire1.DateFin.Value) Then
                sql = sql + "AND ([DateContact] BETWEEN #" & Form_Formulaire1.DateDeb.Value & "# AND #" & Form_Formulaire1.DateFin.Value & "#) "
            End If
        End If
     
        'Avec réponse ou non
        If Form_Formulaire1.modifReponse.Value = True Then
            sql = sql + "AND [Reponse] Is Not Null "
        ElseIf Form_Formulaire1.modifReponse.Value = False Then
            sql = sql + "AND [Reponse] Is Null "
        End If
     
        'Prise Contact
        If Not IsNull(Form_Formulaire1.PriseContact.Value) Then
             sql = sql & "AND [PriseContact]='" & Form_Formulaire1.PriseContact.Value & "' "
        End If
     
        CurrentDb.QueryDefs("Requête recherche").sql = sql
        Liste2.SourceObject = "Requête.Requête recherche"
        Liste2.Requery
     
    Exit_Rechercher_Click:
        Exit Sub
     
    Err_Rechercher_Click:
        MsgBox Err.Description
        Resume Exit_Rechercher_Click
    End Sub
    C'est vraiment au niveau de 'PriseContact' que ça ne fonctionne pas, les autres marchent très bien :/

    Merci d'avance

    Laure

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    il faut probablement écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = sql + "AND [PriseContact]=""" & Form_Formulaire1.PriseContact.Value & """")"
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 71
    Points : 31
    Points
    31
    Par défaut
    Merci de la réponse,

    Mais malheureusement,non ca ne résoud pas mon probleme. J'ai un message d'erreur qui s'affiche:

    Erreur de compilation:
    Membre de méthode ou de données introuvable


  6. #6
    Membre du Club Avatar de Pwouaro
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Points : 57
    Points
    57
    Par défaut
    Quel est le format du champ prise contact?

    Date, numérique, texte...?
    Poireau est un terme qui désigne plusieurs plantes du genre Allium dont Allium polyanthum, le poireau de vigne. Cependant, la plupart du temps, c'est du poireau cultivé, Allium porrum, dont il est question.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 71
    Points : 31
    Points
    31
    Par défaut
    En fait, j'ai pas arrêté de tout changer, mon code, le nom de ma liste déroulante etc... Et j'arrive à un résultat qui me satisfait.

    Le bon code était
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        'Prise Contact
        If Not IsNull(Form_Formulaire1.modifPriseContact.Value) Then
            sql = sql + "AND [PriseContact]=""" & Form_Formulaire1.modifPriseContact.Value & """ "
        End If
    Vraiment désolée de vous faire perdre votre temps... Comme je vous l'ai dit, je débute avec le code, donc j'ai du mal à saisir...

    J'ai une autre question concernant mon formulaire:

    J'ai pour l'instant fait apparaître plusieurs critères de la table Contact. Je voudrais maintenant faire agir un critère appartenant à une autre table (table entreprise): Langue Parlée.

    Comment dois-je m'y prendre?

    Merci encore à ceux qui prennent le temps de m'aider.

    Laure

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 71
    Points : 31
    Points
    31
    Par défaut
    Bon, en fait j'ai trouvé de l'aide, et j'ai réussi à faire mon formulaire de recherche, avec mes critères
    Le code VBA n'a plus de secret pour moi maintenant! Euhhhh....enfin presque

    Je clos le sujet, et remercie les gens qui m'ont aidé, ou du moins qui ont cherché à m'aider!

  9. #9
    Membre du Club Avatar de Pwouaro
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Points : 57
    Points
    57
    Par défaut
    N'oublie pas le tag résolue.

    Et peux-tu poster la solution stp?

    Bon courage pour la suite
    Poireau est un terme qui désigne plusieurs plantes du genre Allium dont Allium polyanthum, le poireau de vigne. Cependant, la plupart du temps, c'est du poireau cultivé, Allium porrum, dont il est question.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 71
    Points : 31
    Points
    31
    Par défaut
    Le tag résolu? Déjà fait

    Pas de problème pour le code, si ça permet d'aider un peu d'autres personnes:

    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    Private Sub Rechercher_Click()
    On Error GoTo Err_Rechercher_Click
     
        Dim sql As String
     
    '    stDocName = "Requête recherche"
    '    DoCmd.OpenQuery stDocName
     
     
     
        'Requete
     
          sql = "SELECT [RaisonSociale], [NomContact], [DateContact], [PriseContact], [Reponse], [EnvoiCatalogue], [EnvoiTarif], [Envoi Echantillons], [Langue parlée] FROM TContact, TEntreprise WHERE [TEntreprise].[IDEntreprise]=[TContact].[IDEntreprise]"
     
     
     
        'Les trois premiers champs
        If Form_Formulaire1.modifCatalogue.Value = True Then
            sql = sql + "AND [EnvoiCatalogue]=true "
        ElseIf Form_Formulaire1.modifCatalogue.Value = False Then
            sql = sql + "AND [EnvoiCatalogue]=false "
        End If
     
        If Form_Formulaire1.modifTarif.Value = True Then
            sql = sql + "AND [EnvoiTarif]=true "
        ElseIf Form_Formulaire1.modifTarif.Value = False Then
            sql = sql + "AND [EnvoiTarif]=false "
        End If
     
        If Form_Formulaire1.modifEchantillons.Value = True Then
            sql = sql + "AND [Envoi Echantillons]=true "
        ElseIf Form_Formulaire1.modifEchantillons.Value = False Then
            sql = sql + "AND [Envoi Echantillons]=false "
        End If
     
        'Date contact
        If Not IsNull(Form_Formulaire1.DateDeb.Value) Then
            If IsNull(Form_Formulaire1.DateFin.Value) Then
                sql = sql + "AND [DateContact]=#" & Form_Formulaire1.DateDeb.Value & "# "
            ElseIf Not IsNull(Form_Formulaire1.DateFin.Value) Then
                sql = sql + "AND ([DateContact] BETWEEN #" & Form_Formulaire1.DateDeb.Value & "# AND #" & Form_Formulaire1.DateFin.Value & "#) "
            End If
        End If
     
        'Avec réponse ou non
        If Form_Formulaire1.modifReponse.Value = True Then
            sql = sql + "AND [Reponse] Is Not Null "
        ElseIf Form_Formulaire1.modifReponse.Value = False Then
            sql = sql + "AND [Reponse] Is Null "
        End If
     
        'Prise Contact
        If Not IsNull(Form_Formulaire1.modifPriseContact.Value) Then
            sql = sql + "AND [PriseContact]=""" & Form_Formulaire1.modifPriseContact.Value & """ "
        End If
     
          'Langue Parlée
        If Not IsNull(Form_Formulaire1.modifLangueParlee.Value) Then
            sql = sql + "AND [Langue parlée]=""" & Form_Formulaire1.modifLangueParlee.Value & """ "
        End If
     
     
     
     
     
        CurrentDb.QueryDefs("Requête recherche").sql = sql
        Liste2.SourceObject = "Requête.Requête recherche"
        Liste2.Requery
     
    Exit_Rechercher_Click:
        Exit Sub
     
    Err_Rechercher_Click:
        MsgBox Err.Description
        Resume Exit_Rechercher_Click
    End Sub
    J'aurais cependant aimé rajouter un critere mais... je ne sais pas trop comment m'y prendre. Je m'explique quand même au cas où:

    Mon objectif est de chercher les entreprises qui nous ont contacté, qui ont demandé un catalogue ou un tarif et qui n'ont pas répondu suite à notre envoi.

    - Première question qui se pose : Comment faire apparaitre le OU dans le code VBA, car pour le moment je ne peux chercher que les entreprises a qui on a envoyé un catalogue ET un Tarif, ou alors qu'un tarif seul, ou alors qu'un catalogue seul. Je voudrais pouvoir un ET/OU entre catalogue et tarif...

    Une fois les entreprises relancées, j'ai une petite case Relance à cocher dans mon formulaire contact. Donc, deuxieme question:
    - Comment faire ressortir cela dans mon formulaire de recherche afin de ne pas relancer plusieurs fois les mêmes entreprises?
    Mes criteres seront: Rechercher les entreprises a qui on a envoyé un catalogue et/ou un tarif, qui n'ont pas répondu ET qu'on a pas relancé.

    Seulement, dans mon formulaire contact je renseigne: la date du contact, le motif etc. Donc je dois créer une nouvelle ligne contact quand je relance une entreprise. Exemple:
    - 01/02/08: demande du client d'un catalogue.
    Dans mon formulaire je vais mettre ces renseignements + remplir le champ 'réponse' avec ma date de réponse (03/02/08).
    Ligne suivante: -03/02/08 : Envoi catalogue
    Le champ 'réponse' restera vide tant que le client ne donnera pas de novuelle.
    Et une fois que je le relance, je dois faire une nouvelle 'ligne':
    03/03/08 : Relance (case a cocher)

    Je sais vraiment pas si je suis claire, mais en fait, il me faudrait un 'code' qui me permette daller piocher des éléments de différentes lignes de mon formulaire... Ca existe?

    Je vous remercie vraiment si vous pouvez m'aider à résoudre mon probleme.

    Laure

    (du coup plus résolu le post )

Discussions similaires

  1. [AC-2007] Problème de code dans un formulaire de recherche
    Par Swiip38 dans le forum IHM
    Réponses: 8
    Dernier message: 26/11/2013, 14h15
  2. problème code formulaire de recherche
    Par ThieBEN dans le forum VBA Access
    Réponses: 6
    Dernier message: 21/02/2008, 10h13
  3. [Formulaire]Problème de code dans un formulaire
    Par modus57 dans le forum IHM
    Réponses: 5
    Dernier message: 10/04/2007, 19h06
  4. Formulaire de recherche (code VB)
    Par Bolton8ox dans le forum IHM
    Réponses: 2
    Dernier message: 02/02/2007, 23h05
  5. Réponses: 2
    Dernier message: 21/12/2005, 19h33

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