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 :

[access] afficher tous les enrgt dans zone de texte


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 [access] afficher tous les enrgt dans zone de texte
    Bonjour

    Une fois de plus, j'ai besoin de vos lumières

    je m'explique :

    J'ai un formulaire qui me sert à créer une prise informatique (nomenclature exemple : 2340A), ce num"ro de prise à créer est récupéré d'un autre formulaire.
    Pour la création j'ai besoin d'entrer différentes infos : N° de Switch, Port et Remarque.

    J'avais des conditions pour le choix des switchs car en devait pouvoir selectionner les switchs en fonction de l'etage où se trouve la prise mais ceci est réglé. Mais maintenant j'ai besoin de faire la chose suivante :
    Une fois le switch selectionné, il faut que je puisse sélectionner uniquement les ports qui ne sont pas encore utilisés !!

    J'ai déjà essayer différentes choses en créant différentes requetes, par du SQL ou en bidouillant dans le formulaire mais je ne trouve pas la solution adaptée...
    Pour partir de la base j'ai essayé, en fonction su switch, de faire afficher dans une zone de texte TOUS les ports concernés par le switch, malheuresement, à part mettr chaque port indépendant dans un enregistrement différent, je n'arrive pas à les faire afficher tous à la fois. Bien sûr c'est pas ce que je veux faire au final car comme dit : Je veux pouvoir sélectionner uniquement les ports qui ne sont pas encore utilisés par un switch donné...

    Si vous avez une idée, n'hésitez pas car je rame profondément

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    filtrer uniquement les ports libres par l'info qui les dit libres

  3. #3
    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 : 52
    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
    autrement dit dans ta requete sous le champ qui définit l'état libre/occupé:
    dans critère tu mets "état libre"

    comme pour le type switch imprimante que tu voulais en plus:
    sous [Type de Switch] tu as mis dans critère: 'Imprimante'

  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
    Bonsoir et merci pour vos réponses

    Je ajoute une petite info lol !

    Il n'y a pas d'etat qui dit une prise libre ou non pour la simple et bonne raison que certaines prises sont doublées (d'où un numéro de prise 2337 A ou B), d'autres non... certaines actives et d'autres, non, elles existent physiquement mais ne sont pas forcément actives. De plus certaines prises peuvent etre rajoutés d'où ce que je veux faire avec mon formulaire.

    En gros, dans ma table T_PRISE, j'ai les prises qui existent aujourd'hui et que ça evolue regulièrement (création, suppression voir modification d'une prise)

    Il faudrait que je rajoute dans ma table toutes les prises inactives. Je pense que je y peux arriver sans...

  5. #5
    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 : 52
    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
    tu as bien qqc qui te différencie les prises actives des prises inactive non?
    sinon effectivement si toi même tu ne sais pas faire la différence, Access lui non plus

  6. #6
    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
    ba ecoute, non !!

    une prise inactive, c'est comme si elle n'existe pas. C'est comme si je voulai gérer des clients, un nouveau client sera crée lors de son premier achat, là c'est pareil une prise inactive ne sera crée que lorsque qu'on la rendra active, dès que la brasse, qu'on la crée quoi...

    c'est logique non ?

    je viens de voir que j'ai confondu hier soir, vous parliez des ports actifs ou non alors que moi je parlais des prises !!! alalala je suis le

    je te donne la constitution de mes tables, ça aidera peut etre :

    - T_PRISE : Prise, Switch d'etage, Port, Remarques
    - T_SWITCH : Switch d'etage, Modèle, S/N, @IP, Nombre de ports (soit 24, ce pour faire un calcul du nombre de ports dispos), Type de switch

    A partir de là....

  7. #7
    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 : 52
    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
    effectivement il y a confusion:
    tu veux crée des prises en fonction des switchs (qui sont par étage) et qui ont eux même des ports.

    tu as réglé le pb de la selection des switchs par étage, et maintenant tu veux avoir les ports disponibles par switch?

    j'ai pas compris:
    Nombre de ports (soit 24, ce pour faire un calcul du nombre de ports dispos)
    comment sais tu qu'un port est dispo?

  8. #8
    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
    Oui voilà, je veux créer une prise en fonction d'un switch qui lui meme a un port.

    En fait ce que je veux faire :
    dans mon formulaire de création de prise, je selectionne le switch qui donne la ressource à la prise (selection des switchs par étage), puis ensuite je veux selectionner le port.

    Sur mon formulaire j'ai :
    - une zone de texte avec la valeur de ma prise à créer (que je récupère d'un formulaire précédent
    - une liste déroulante où je selectionne le switch en fonction de l'etage où je suis (ça c'est réglé)
    - une zone de liste qui m'affiche les ports déjà utilisés de ce switch
    - une liste déroulante avec des valeurs de 1 à 24 (car tous les switchs ont 24 ports)

    Trois solutions s'offrent à moi :
    - n'afficher que les ports non utilisés dans ma liste déroulante
    - trouver le bon code pour que quand on choisi un port déjà utilisé (donc contenu dans ma zone de liste des ports occupés), qu'il y est un avertissement par msgbox
    - dans ma liste déroulante, tous les ports utilisés (donc communs à ma zone de liste et ma liste déroulante) soit surligner en rouge

    Voici mon code actuel :
    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
    Private Sub Modifiable78_BeforeUpdate(Cancel As Integer)
     
    Dim truc
    Dim truc2
    truc = Me.Modifiable78.Value
     
    truc2 = "SELECT [Port Switch] FROM R_RCH_PRIZ WHERE [Port Switch] = '" & truc & "' ;"
     
    If truc = Me.Modifiable78.Value Then
       MsgBox "kk"
    Else
       MsgBox "ok"
    End If
     
     
    End Sub
     
    Private Sub Switch_AfterUpdate()
    test = Me.Switch.Value
     
    essai = "SELECT [Port Switch] FROM R_RCH_PRIZ WHERE [Switch d'Etage] = '" & test & "' ORDER by 1;"
    Me.Liste74.RowSource = essai
     
    End Sub
    => à ce stade je ne sais pas comment comparer la valeur choisi pour mon port avec le contenu de ma zone de liste qui contient les ports déjà utilisés. Une idée ???

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par mat67000
    => à ce stade je ne sais pas comment comparer la valeur choisi pour mon port avec le contenu de ma zone de liste qui contient les ports déjà utilisés. Une idée ???
    Réponse
    Citation Envoyé par mat67000
    - n'afficher que les ports non utilisés dans ma liste déroulante
    Amicalement

  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
    Oui cette solution est la plus logique mais la configuration de mes tables ne me permet pas de faire ça facilement, voir ne me permet de pa le faire du tout !!

    C'est pourquoi j'essai de faire cela avec une des deux solutions suivantes :
    - trouver le bon code pour que quand on choisi un port déjà utilisé (donc contenu dans ma zone de liste des ports occupés), qu'il y est un avertissement par msgbox
    - dans ma liste déroulante, tous les ports utilisés (donc communs à ma zone de liste et ma liste déroulante) soit surligner en rouge

    la base, au final, sera utilisée par des utilisateurs ne connaissant rien d'acess et le tout sur une runtime, c'est pourquoi j'aimerais arrivé à ce que dans ma liste déroulante, tous les ports utilisés soit surligner en rouge. Ce qui se voit tout de suite et evite les erreurs. C'est peut etre pas le plus logique mais ca règlerai mon souci sauf que je n'arrive pas à comparer les ports utilisés (contenus dans ma zone de liste) avec les valeurs de liste déroulante.

  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 : 52
    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
    détrompe toi.
    c'est bien comme cela qu'il faut faire parce que:
    - trouver le bon code pour que quand on choisi un port déjà utilisé (donc contenu dans ma zone de liste des ports occupés), qu'il y est un avertissement par msgbox
    t'oblige à chercher à taton ce qui reste et au bout de 24 essaies t'appercevoir qu'il n'y a aucun dispo...
    - dans ma liste déroulante, tous les ports utilisés (donc communs à ma zone de liste et ma liste déroulante) soit surligner en rouge
    ca veut dire que tu as déjà déterminer ceux dispo... donc travail en plus de surligner.

    tu nous as toujours pas dit comment tu savais qu'un port est dispo.
    c'est ceux qui ne sont pas dans la liste, c'est bien ca?
    une zone de liste qui m'affiche les ports déjà utilisés de ce switch
    donc:
    ta requete devrait ressembler à ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    truc2 = "SELECT [Port Switch] FROM R_RCH_PRIZ WHERE (([Switch d'Etage] = '" & Me.Switch.Value & ") AND (([Port Switch]<>1) OR ([Port Switch]<>2) OR ([Port Switch]<>3) ...));"
    pour construire cette requete:
    tu boucle sur les items de la zone de liste des ports occupés et à chaque item tu rajoute: "OR ([Port Switch]<>" + ItemActuel + ")" (ItemActuel:exemple de nom)
    mais il y a plus simple:
    tu fais une zone de liste:
    origine source:liste valeurs
    contenu:1;2;3;4;5;6;7;8...24
    tu boucle sur les items de la zone de liste des ports occupés et tu retires les items correspondants.
    à mettre sur l'év 'Sur activation' du form

    remarque:
    il n'est pas possible de cette facon de réatibluer immédiatement une autre port après enregistrement de celui ci, pour qu'il réaparait dispo dans la liste il faut le réenregistrer vide avant.

  12. #12
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par mat67000
    Oui cette solution est la plus logique mais la configuration de mes tables ne me permet pas de faire ça facilement, voir ne me permet de pa le faire du tout !!
    Vous en êtes sur !
    Pourtant avec une simple boucle et DlookUp on peut arriver à construire la source de liste des prises non occupées
    - T_PRISE : Prise, Switch d'etage, Port, Remarques
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    dim MesVal as variant, i as Integer
        For i=1 to 24
               if nz(DlookUp("port","T_Prise","SwitchEtage=Critere"),0)=0 then
                     If i=1 then
                          MesVal=i
                     Else
                           MesVal=MesVal & "; " & i  
                     End If 
               End if
        Next i
    Quant tu sorts de la boucle tu as les N° de ports non utilisés dans la variable MesVal.
    Amicalement

  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 : 52
    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
    effectivement c'est aussi une bonne piste:
    par DLookUp comme le propose DMboup
    ou par un Find sur un recordset
    ou dans les items de la zone de liste (je pense plus rapide)

    tu détermine la liste de port non utilisé que tu sépares par ";"

    genre après boucle:
    liste="1;2;5;7;15;20"

    et tu met comme contenu de la combobox

Discussions similaires

  1. [VS2008] afficher tous les caracteres dans l'editeur
    Par TheBlackReverand dans le forum Visual Studio
    Réponses: 1
    Dernier message: 20/10/2009, 16h24
  2. afficher tous les enregistrements dans un DataReport
    Par mohamed2006 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 13/05/2008, 16h11
  3. interdire les décimales dans zone de texte
    Par petitours dans le forum IHM
    Réponses: 2
    Dernier message: 27/03/2008, 12h01
  4. afficher tous les âges dans une base ?
    Par sabredebois dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/01/2008, 09h26
  5. Afficher tous les "cout" dans un fichier
    Par tibouchou dans le forum SL & STL
    Réponses: 6
    Dernier message: 18/03/2006, 12h08

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