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

VBA Access Discussion :

Resultat d'une requete union parametrée sous Excel [AC-2003]


Sujet :

VBA Access

  1. #41
    Invité
    Invité(e)
    Par défaut
    Là tu nous pose une question à tiroirs genre poupées russes!
    Déjà tu as ta requête d’union dans Access; pour injonctions il serait dommage de la retoucher car elle fait partie d’une chose qui t’intéresse !

    Donc tu peux faire ta requête dans Excel en tenant compte ou pas de tes injonctions !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sql = "SELECT  * FROM PROD"
    If injonctions = True Then Sql = Sql & " where injonctions in ('0001','0002','0003','0004','0005','0006','0007','0008','0009','0010')"
    Maintenant un formulaire te permettant de choir tout ou les injonctions qui t’intéresse serait le bienvenu ! Encore faut-il connaitre les injonctions pour les sélectionner dans une liste multi critère.
    Dernière modification par Invité ; 09/06/2016 à 15h42.

  2. #42
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 240
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 240
    Points : 213
    Points
    213
    Par défaut
    rdurupt,
    Lorsque j'insere tes 2 lignes de codes , il ne passe rien de nouveau
    J'ai le même tableau qui s'affiche..ai je loupé une étape ?..

    En ce qui concerne le formulaire, effectivement c'est plus simple mais je ne sais pas comment l'integrer dans le code en liste deroulante
    J'ai créer un formulaire F_PROD_NomInjection ou j'ai insére les 10 injections avec en plus l'enregistrement "tous"
    Mais ensuite je suis bloqué dans l'écriture sql de

    WHERE ....... Like IIf(Forms!F_PROD_NomInjection="Tous","*",F_PROD_NomInjecion!Injection);

  3. #43
    Invité
    Invité(e)
    Par défaut
    Normal ce n'était qu'un exemple test comme ça!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sql = "SELECT  * FROM PROD where injonctions in ('0001','0005','0010')"
    
    Si non place un fichier Excel avec ton formulaire sens données confidentielles
    .

  4. #44
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 240
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 240
    Points : 213
    Points
    213
    Par défaut
    je te joins la feuille Excel qui contient le tableau des données à afficher
    J'ai inséré les parametres "debut " et "fin" et j'ai colorié en vert la cellule E1 : cellule ou je souhaiterais insérer le 3ième parametres celui des noms des 10 injections 0001 à Injection 0010 + "tous"

    je n'arrive pas à te joindre la petite base de donnée où il n' y a que le petit formulaire où j'ai inséré les noms des 10 injections + "tous"
    Fichiers attachés Fichiers attachés

  5. #45
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 240
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 240
    Points : 213
    Points
    213
    Par défaut
    Il est l'heure de partir du bureau.
    On se voit demain matin ..
    passe une agréable journée et soirée rdurupt
    A demain et en forme lol

  6. #46
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code Sub ColisInjectes : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "SELECT  * FROM PROD_Supervision_NbColis_Injectes " & UserForm1.Chargement ' je détermine une requête sql qui pointe sur ta requête Acces."
    Code UserForm1 : 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
    Public Function Chargement() As String
    Me.Show vbModal
    Dim I As Integer, Wh As String
    With Me.ListBox1
        For I = 0 To .ListCount - 1
         If .Selected(I) = True Then
            If Wh = "" Then Wh = "'" & .List(I) & "'" Else Wh = Wh & ",'" & .List(I) & "'"
         End If
        Next
    End With
     If Wh <> "" Then Chargement = " Where injonctions in (" & Wh & ")"
     Unload Me
    End Function
     
    Private Sub CommandButton1_Click()
    Debug.Print Me.CommandButton1.Caption = "Désélectionner tout"
    Dim I As Integer
    With Me.ListBox1
        For I = 0 To .ListCount - 1
          .Selected(I) = Me.CommandButton1.Caption = "Sélectionner tout"
        Next
    End With
    If Me.CommandButton1.Caption = "Sélectionner tout" Then Me.CommandButton1.Caption = "Désélectionner tout" Else Me.CommandButton1.Caption = "Sélectionner tout"
    End Sub
    Private Sub CommandButton2_Click()
     Me.Hide
    End Sub
    Private Sub UserForm_Initialize()
    Me.ListBox1.List = Array("0001", "0002", "0003", "0004", "0005", "0006", "0007", "0008", "0009", "0010")
    End Sub
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Cancel = Not CBool(CloseMode)
    End Sub
    Fichiers attachés Fichiers attachés

  7. #47
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 240
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 240
    Points : 213
    Points
    213
    Par défaut
    Wouaaaa....
    je vais devoir analyser tout cela pour comprendre comment cela fonction..
    Tu as donc créer un Userform..cela fait longtemps que je n'ai pas fait d'userform...
    De memoire, je dois afficher l'userformsur la feuille "Req_ExportUnionExcel" non ?

    rdurupt, J'ai une question toute bête à te poser:
    Si un jour , l'envie me prenait de refaire cette requête union en prenant en compte le critère "Injection" comme 3ième parametre au même tire que les parametres "debut" et "fin"
    Dans le future code vba, devrais donc uniquement rajouter à ton code vba ces 3 lignes ci dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim Injection as text
    Const adVarChar = 200Set Debut = CreateObject("ADODB.Parameter")
    Injection.Name = "Injection": Injection.Type = adVarChar: Injection.Value = ThisWorkbook.Sheets("Req_ExportUnionExcel").Range("E1").Value):Cm.Parameters.Append Debut ' en E1 sera afficher les Nom des Injections

  8. #48
    Invité
    Invité(e)
    Par défaut
    Si un jour , l'envie me prenait de refaire cette requête union en prenant en compte le critère "Injection" comme 3ième parametre au même tire que les parametres "debut" et "fin"
    Dans le future code vba, devrais donc uniquement rajouter à ton code vba ces 3 lignes ci dessous
    Oui
    je dois afficher l'userformsur la feuille "Req_ExportUnionExcel"
    non il est inclus dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "SELECT  * FROM PROD_Supervision_NbColis_Injectes " & UserForm1.Chargement ' je détermine une requête sql qui pointe sur ta requête Acces."
    Dernière modification par Invité ; 10/06/2016 à 12h56.

  9. #49
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 240
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 240
    Points : 213
    Points
    213
    Par défaut
    cela fonctionne tres bien

    Bravo

  10. #50
    Invité
    Invité(e)
    Par défaut
    peutêtre mais alors j'ai fait en plus un erreur l'erreur est là!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Wh <> "" Then Chargement = " Where injonctions in (" & Wh & ")"
    j'ais mis un S à injection

    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
    Public Function Chargement() As String
    Me.Show vbModal
    Dim I As Integer, Wh As String
    With Me.ListBox1
        For I = 0 To .ListCount - 1
         If .Selected(I) = True Then
            If Wh = "" Then Wh = "'" & .List(I) & "'" Else Wh = Wh & ",'" & .List(I) & "'"
         End If
        Next
    End With
     If Wh <> "" Then Chargement = " Where injection in (" & Wh & ")"
     Unload Me
    End Function
     
    Private Sub CommandButton1_Click()
    Debug.Print Me.CommandButton1.Caption = "Désélectionner tout"
    Dim I As Integer
    With Me.ListBox1
        For I = 0 To .ListCount - 1
          .Selected(I) = Me.CommandButton1.Caption = "Sélectionner tout"
        Next
    End With
    If Me.CommandButton1.Caption = "Sélectionner tout" Then Me.CommandButton1.Caption = "Désélectionner tout" Else Me.CommandButton1.Caption = "Sélectionner tout"
    End Sub
    Private Sub CommandButton2_Click()
     Me.Hide
    End Sub
    Private Sub UserForm_Initialize()
    Me.ListBox1.List = Array("0001", "0002", "0003", "0004", "0005", "0006", "0007", "0008", "0009", "0010")
    End Sub
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Cancel = Not CBool(CloseMode)
    End Sub

  11. #51
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 240
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 240
    Points : 213
    Points
    213
    Par défaut
    oui effectivement, j'ai vu l'erreur

  12. #52
    Invité
    Invité(e)
    Par défaut
    et ça fonctionne maintenant?

  13. #53
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 240
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 240
    Points : 213
    Points
    213
    Par défaut
    Une question toute bete, comme je fais si je veux que l'userform apparait toujours sur la feuille

  14. #54
    Invité
    Invité(e)
    Par défaut
    Quand tu exécute la macro, vu qu’il est assujetti à la requête et qu’il est ouvert en modal, tu ne peux pas clicker autre part !

  15. #55
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 240
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 240
    Points : 213
    Points
    213
    Par défaut
    Donc je ne pourrais pas l'afficher de facon permanente. Zut lol
    rdurupt,tu m'as rendu un sacré service
    je penses que maintenant je peux fermer la discussion..

  16. #56
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 240
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 240
    Points : 213
    Points
    213
    Par défaut
    encore une question ..decidemment
    Si dans le cas ou avant de valider les injections, je m'apercois que je me suis trompé dans les dates de debut et fin,
    n'y a t il pas un moyen que je puisse fermer l'userform afin de corriger les dates et ensuite de relancer le code ?

  17. #57
    Invité
    Invité(e)
    Par défaut
    On pourra les ajouter dans le formulaire, afin de les modifié si besoin.

  18. #58
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    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 128
    Points : 12 182
    Points
    12 182
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par facteur Voir le message
    Donc je ne pourrais pas l'afficher de facon permanente. Zut lol
    Normalement comme le souligne rdurupt, il est modal par défaut.
    Ceci dit, tu peux utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserForm1.Show , vbModal
    pour un usage exclusif Excel

    et un SetWindowPos via l'API :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
            ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _
            ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
    si tu veux qu'il soit par dessus toutes les fenêtres de ta session...
    Il y a des exemples dans la FAQ.

    Argy

  19. #59
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 240
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 240
    Points : 213
    Points
    213
    Par défaut
    Bonjour Messieurs, lol
    j'espère que vous avez passé un excellent week end..
    Donc pour revenir à nos moutons ,
    Si j 'ai tout bien compris, je ne peux pas :
    - fermer l'userform sans au préalable sélectionner les injections
    -modifier mes critères date debut et fin tant que l'userform est affiché..

    argyronet, ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserForm1.Show , vbModal
    est identique à celui de rdurupt: donc il ne me permet pas de pouvoir fermer l'userform

  20. #60
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    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 128
    Points : 12 182
    Points
    12 182
    Billets dans le blog
    5
    Par défaut
    suppose que tu es déjà dans l'objet, qu'il est masqué et qu'une procédure (ou un événement) de sa classe l'affiche en mode modal.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserForm1.Show, vbModal
    sous-entend que tu invoques son affichage par une procédure externe (donc un bouton sur la feuille de calcul) et aussi en mode modal.

    Argy

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. [VBA EXCEL / ACCESS] : Resultat d'une requete
    Par forsay1 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 17/07/2009, 12h00
  2. Réponses: 7
    Dernier message: 03/10/2007, 19h06
  3. Réponses: 2
    Dernier message: 30/08/2007, 10h49
  4. Réponses: 8
    Dernier message: 23/05/2006, 12h13
  5. [VB6] [Excel] Résultat d'une requete ds une feuille
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 07/01/2003, 17h52

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