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 :

VBA trouver des valeurs comprises entre valeurs min et max [AC-2007]


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2013
    Messages : 5
    Points : 6
    Points
    6
    Par défaut VBA trouver des valeurs comprises entre valeurs min et max
    Bonjour,

    J'ai réalisé un formulaire de recherche multicritère en suivant un tuto (Caféine) et en l'adaptant suivant mes besoins. Le formulaire est basé sur une requête reliant plusieurs tables.
    Tout semble fonctionner sauf pour un critère (Altitude) car je souhaite sélectionner l'altitude comprise entre une valeur min et une valeur max. Lorsque je rentre mes valeurs d'altitude min et max, mon tableau de résultats devient blanc et les entêtes du tableau disparaissent (cf PJ). Il semble que les valeurs numériques ne soient pas reconnues et cela doit provenir de mon code VBA:

    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
    Private Sub RefreshQuery()
     Dim SQL As String
     Dim SQLWhere As String
     
    SQL = "SELECT SiteID, Commune, Province, Terrestre, Aquatique, Altitude,[Organisation Contact], [Nom Contact] FROM rqtChercherSite WHERE SiteID Is Not Null "
     
     If Me.chkSite Then
     SQL = SQL & "And tblSite!SiteID like '*" & Me.cmbRechSite & "*' "
     End If
     
     If Me.chkCommune Then
     SQL = SQL & "And tblannxCommunes!Commune like '*" & Me.cmbRechCommune & "*' "
     End If
     
     If Me.chkProvince Then
     SQL = SQL & "And tblannxCommunes!Province like '*" & Me.cmbRechProvince & "*' "
     End If
     
     If Me.chkOrganisation Then
     SQL = SQL & "And tblContact![Organisation Contact] like '*" & Me.cmbRechOrganisation & "*' "
     End If
     
     If Me.chkContact Then
     SQL = SQL & "And tblContact![Nom Contact] like '*" & Me.cmbRechContact & "*' "
     End If
     
     If Me.chkSiteTerrestre Then
     SQL = SQL & "And tblSite!Terrestre like '*" & Me.chkSiteTerrestre & "*' "
     End If
     
     If Me.chkSiteAquatique Then
     SQL = SQL & "And tblSite!Aquatique like '*" & Me.chkSiteAquatique & "*' "
     End If
     
     If Not IsNull(Me.AltitudeMin) And Me.AltitudeMax <> "" Then
        SQL = SQL & "And tblSite!Altitude Between #" & Me.AltitudeMin.Value & "# And #" & Me.AltitudeMax.Value & "#"
     End If
     
     SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     SQL = SQL & ";"
     
     Me.lstResults.RowSource = SQL
     Me.lstResults.ReQuery
     
    End Sub
    Est-ce que quelqu'un aurait une solution à mon problème.
    J'espère avoir été assez clair.

    Merci
    Images attachées Images attachées

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Effectivement, tu confonds des choses. Les # s'utilisent uniquement quand tu as des valeurs DATES. Pour les valeurs numériques, tu ne mets rien. Relis un peu certains articles sur VBA. Tu devrais avoir plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       SQL = SQL & "And tblSite!Altitude Between " & Me.AltitudeMin.Value & " And " & Me.AltitudeMax.Value
    à la ligne 36.

    @+
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2013
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour Madefemere,

    Et merci beaucoup pour ton aide précieuse. Effectivement, j'avais écris un code similaire pour des dates dans un autre formulaire et restais bloquer sur ce "#".

    Merci encore.

    @+

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/06/2015, 09h14
  2. Réponses: 5
    Dernier message: 06/07/2013, 15h41
  3. Réponses: 1
    Dernier message: 02/07/2010, 15h25
  4. Réponses: 5
    Dernier message: 01/12/2008, 14h20
  5. Réponses: 2
    Dernier message: 22/05/2006, 16h38

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