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 :

Possibilités de selection selon critère


Sujet :

IHM

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Points : 31
    Points
    31
    Par défaut Possibilités de selection selon critère
    Bonjour,

    Je me retrouve devant un problème auquel j'essai de trouver une solution depuis ce matin mais je nage

    En fait, j'ai un formulaire qui me sert à créer une prise informatique. Le N° d'une prise à cette nomenclature : Etage,Zone,Numero,Doublage (ex. 5210A où 5 est l'etage, 2 la zone et 10 le numéro mural).
    Chaque prise prend sa ressource sur le port du Switch d'Etage. Ces Switchs ont la nomenclature suivante : RSSTAE53 (où le 5 de 53 est l'etage).

    Ce que je cherche à faire, c'est, dans mon formulaire, lorsque mon Num de prise a créer est affiché, qu'Access ne me propose que les Switchs de l'etage en question. Mon champ Switch est une zone de liste déroulante ce qui doit etre plus pratique... Maintenant, j'ai cherché mais je ne trouve pas le bon code VBA surtout qu'il faut préciser le masque de saisie, je pense !!

    Someone can help me ????

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 174
    Points : 178
    Points
    178
    Par défaut
    salut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT CODE_SWITCH 
    FROM TABLE_SWITCH
    WHERE (ExtracChaîne$([TABLE_SWITCH]![CODE_SWITCH];7;1)=Gauche$ (ctrlNum_Prise; 1))
    à mettre en source de ta liste

  3. #3
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Salut,
    question bête:
    Comment ça se passe avec 10,11,12...étages ?
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Points : 31
    Points
    31
    Par défaut
    Réponse : il n'ya pas autant d'etages

    les etages vont du RDC au 7e, mais ta question n'est pas bete car si il y avais plus de 9 etages, oui ça aurait tout changé donc tu fai bien de poser la question, j'aurai dû le préciser.

    je vais tester ta soluce alcabk

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Points : 31
    Points
    31
    Par défaut
    euh petite question alcabk :

    tu peux m'expliquer ton code car je ne comprend pas trop la dernière ligne

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 174
    Points : 178
    Points
    178
    Par défaut
    la dernière ligne compare le 7è caractère (on extrait une partie du texte de la 7è position, sur une longueur de 1) du code switch, avec le 1er caractère du code prise

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Points : 31
    Points
    31
    Par défaut
    Bonjour

    bon j'ai réussi à faire ce que je voulais avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Modifiable70_Enter()
    Dim num
    Dim StrSql
    num = Prise.Value
    num = Left(Prise, 1)
     
    StrSql = "SELECT [N° Switch] from R_AJOUT_PRIZ WHERE mid([N° Switch],7,1) = " & num & ";"
     
    Modifiable70.RowSource = StrSql
    End Sub
    Cela fonctionne à merveille sauf que maintenant j'ai une utre contrainte :
    tous les switchs d'etage ont la nomenclature RSSTAE.. donc grace au code ci dessus, j'arrive à ne selectionner que les switchs d'Etage de la prise concerné sauf qu'il me faut aussi systématiquement les switchs d'imprimante avec la nomenclature suivante RSSTAG..

    mon problème est d'arriver à ce que Access inclue toujours c'est switchs peut importe l'Etage. J'ai déjà fait des recherches et des essais mais je n'y parvient pas, voici un des codes que j'ai essayé, donc is vous pouviez m'aider ce serai top !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim StrSql2
    StrSql2 = "SELECT [N° Switch] from R_AJOUT_PRIZ WHERE Left(N° Switch, 6)= " & "RSSTAG" & ";"
    Modifiable70.RowSource = StrSql2
    J'ai aussi penser à faire la chose suivante mais je n'y arrive pas non plus : dans ma requete R_AJOUT_PRIZ, j'ai un champ "Type de switch" donc il faudrai que je lui dise via VBA de toujours selectionner les N° de Switch d'un Type Imprimante, mais je coince

    please help !!!

  8. #8
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    voilà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StrSql = "SELECT [N° Switch] from R_AJOUT_PRIZ WHERE (mid([N° Switch],7,1) = " & num & ") OR (Left(N° Switch, 6)= " & "RSSTAG" & ");"
    tu es sur la bonne voie, continue...

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Points : 31
    Points
    31
    Par défaut
    Bonjour et merci pour ta réponse vodiem

    J'ai testé ton code, mais j'ai une erreur de syntaxe (opérateur absent) lors de son execution, pourtant l'opérateur OR est bien présent. J'ai testé avec AND, c'est pareil.
    J'ai vérifié si cela n'était pas une erreur d'un () ou [] manquant mais non lol...

    J'ai beu vérifier je ne vois ps ce qui cloche

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Points : 31
    Points
    31
    Par défaut
    La solution la plus logique pour moi serai peut etre de dire à Access que, en plus des switchs concernés par l'etage choisi (chose que j'ai réussi à faire), de m'ajouter systématiquement les switchs dont le champ "Type de Switch" est Imprimante, mais comment faire cela ???

    That is the question !

  11. #11
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    c'est le 'OR' dans ta clause Where qui le permet
    je vois le pb essai avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StrSql = "SELECT [N° Switch] from R_AJOUT_PRIZ WHERE (mid([N° Switch],7,1) = " & num & ") OR (Left(N° Switch, 6)= " & "'RSSTAG'" & ");"
    RSSTAG: il le voit comme une donnée non pas comme un texte donc à mettre entre guillemet ou cote (pour éviter de dédoublement des guillements).

    mais effectivement tu peux remplacer cette condition 'Left...' par le type de switch.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Points : 31
    Points
    31
    Par défaut
    Merci vodiem, ton code fonctionne parfaitement, fallais juste que je rajoute des guillemets.

    En gros ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test = "SELECT [N° Switch] from R_AJOUT_PRIZ WHERE (mid([N° Switch],7,1) = " & num & ") OR (Left([N° Switch], 6)= " & "'RSSTAG'" & ");"
    La seule chose c'est que j'avais un switch de la meme nomenclature qui était le RSSTAG08. Ce switch est un switch qui, curieusement, n'est pas un switch d'imprimante c'est pourquoi j'avais plutot penser à le faire avec le Type de switch. Mais, curieusement toujours, ce switch n'est pas pris en compte avec le code ci-dessus, je vois pas trop pourquoi mais tant mieux car c'est ce que je voulais

    Donc merci encore pour ton aide, je clos ce topic !!!

    Bonne soirée

  13. #13
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    la prudence est de règle tant que tu ne sais pas pourquoi il n'apparait pas il serait plus prudent de mettre le type de switch ou mettre:
    ... AND ([N° Switch]<>'RSSTAG08') ...
    car si cette raison venait à disparaitre tu te retrouverais avec cette "erreur"
    mais maintenant je pense que tu saurais y faire face.

    bravo et bonne continuation.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Points : 31
    Points
    31
    Par défaut
    merci de ton conseil, je vais le suivre, vaut mieux prévenir que guérir comme on dit

    merci encore pour ton aide...

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Points : 31
    Points
    31
    Par défaut
    Euh vu que je vois que tu es encore connecté, je te pose une question vite fait au niveau de la syntaxe si je veux faire ce que je veux faire grace au Type de Switch, j'ai mis la syntaxe suivante mais ca n'a pas l'air de marcher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StrSql = "SELECT [N° Switch] from R_AJOUT_PRIZ WHERE (mid([N° Switch],7,1) = " & num & ") OR [Type de Switch] =  ['Imprimante'] "

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 84
    Points : 31
    Points
    31
    Par défaut
    Ayéé c'est bon, je n'ai rien dit, je viens de trouver !!

    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StrSql = "SELECT [N° Switch] from R_AJOUT_PRIZ WHERE (mid([N° Switch],7,1) = " & num & ") OR [Type de Switch] = " & "'Imprimante'" & ";"
    désolé pour la fausse alerte

    merci encore

    bonne soirée...

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

Discussions similaires

  1. Multi SELECT Selon Critères
    Par DzBadBoy dans le forum Access
    Réponses: 2
    Dernier message: 01/08/2010, 13h40
  2. Réponses: 2
    Dernier message: 24/03/2010, 16h09
  3. plusieurs selections selon sur colonne different critere
    Par richton95 dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/01/2006, 17h25
  4. selection selon premier caractere d un champ
    Par jack-daniel dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/08/2003, 12h25
  5. Selection sans critères pour un publipostage
    Par Johnjohn dans le forum Access
    Réponses: 23
    Dernier message: 17/06/2003, 11h51

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