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 :

[Access] boite de dialogue de base


Sujet :

VBA Access

  1. #1
    Membre éclairé Avatar de pimpmyride
    Inscrit en
    Décembre 2005
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 321
    Par défaut [VBA-A] boite de dialogue de base
    bonjour,

    je cherche le code pour ouvrir une boite de dialogue tout simple qui permet de selectionner un fichier et de l'ouvrir.

    merci

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    dans une classe (module .bas) :

    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
    Public Type OPENFILENAME
      lStructSize As Long
      hwndOwner As Long
      hInstance As Long
      lpstrFilter As String
      lpstrCustomFilter As String
      nMaxCustFilter As Long
      nFilterIndex As Long
      lpstrFile As String
      nMaxFile As Long
      lpstrFileTitle As String
      nMaxFileTitle As Long
      lpstrInitialDir As String
      lpstrTitle As String
      Flags As Long
      nFileOffset As Integer
      nFileExtension As Integer
      lpstrDefExt As String
      lCustData As Long
      lpfnHook As Long
      lpTemplateName As String
    End Type
    Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
     
    Dim OFName As OPENFILENAME
     
    Public Function ShowOpen(forma As Form) As String
      OFName.lStructSize = Len(OFName)
      OFName.hwndOwner = forma.hwnd
      OFName.hInstance = App.hInstance
        OFName.lpstrFilter = "le texte que tu souhaites" + Chr$(0) + "*.*"
      OFName.lpstrFile = Space$(254)
      OFName.nMaxFile = 255
      OFName.lpstrFileTitle = Space$(254)
      OFName.nMaxFileTitle = 255
      OFName.lpstrInitialDir = "C:\"
      OFName.lpstrTitle = "le texte que tu souhaites"
      OFName.Flags = 0
      If GetOpenFileName(OFName) Then ShowOpen = Trim$(OFName.lpstrFile) Else ShowOpen = ""
    End Function
    et dans ta form (là où c'est utile) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim fichierchoisi As String
      fichierchoisi = ShowOpen(Me)

  3. #3
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    SVP, veuillez fournir à l'avenir plus de précision car par exemple, pour une application Excel, c'est légèrement plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.Dialogs(xlDialogOpen).Show

  4. #4
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Par défaut
    Bonjour
    Tant qu'à faire simple, utilises simplement le contrôle CommonDialog, avec la constante ShowOpen, ceci avec VB6 (merci les balises...) .

  5. #5
    Membre éclairé Avatar de pimpmyride
    Inscrit en
    Décembre 2005
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 321
    Par défaut
    dans une classe (module .bas) :
    cad, je dois mettre la declaration de la boite de dialogue où exactement dans le code ?

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Tu as eu plusieurs réponses. Certaines sont beaucoup plus simples que la mienne, mais tu choisis la plus compliquée (la mienne) !
    D'accord pour te répondre, mais à consition seulement que ce soit vraiment nécessaire.

    Dis-nous donc : quelle version de VB utilises-tu ?

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Par défaut
    Bonsoir,
    Si tu es en VB 6, utilise un CommonDialog.Place un TextBox(propriété Multiligne à True), un CommandButton et le contrôle CommonDialog sur ta Form.
    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
     
    Private Sub Command1_Click()
    With CommonDialog1
         .DialogTitle = "Rechercher un fichier"
         .CancelError = True
         .InitDir = "C:\"
         .Filter = "Fichier texte (*.txt)|*.txt|Tous (*.*)|*.*"
         .FilterIndex = 1
    On Error GoTo Annuler:
         .ShowOpen
    End With
    MsgBox "Le fichier " & CommonDialog1.FileName & "a été sélectionné."
    GoTo Suite:
    Annuler: MsgBox "Vous n'avez sélectionné aucun fichier", vbInformation, "Annler"
    Suite:
    On Error Resume Next
    Dim tout, texte, crft, nFich
    crft = Chr(13) + Chr(10)
    nFich = CommonDialog1.FileName
     Open nFich For Input As #1
    Line Input #1, texte
    tout = texte
    If Len(tout) <> 0 Then
      While Not EOF(1)
        Line Input #1, texte
    tout = tout + crft + texte
    Wend
    End If
    Text1.Text = tout
    Close #1
    End Sub
    jpleroisse

  8. #8
    Membre éclairé Avatar de pimpmyride
    Inscrit en
    Décembre 2005
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 321
    Par défaut
    en faite ma boite de dialogue j'en ai besoin pour une application access 2000 donc je suis sous access

  9. #9
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Ajouter un control alors qu'access le gère en interne ça me fait bizarre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Dim dlgOpen As FileDialog, msg As String
     
        Set dlgOpen = Application.FileDialog(msoFileDialogOpen)
     
        With dlgOpen
            .AllowMultiSelect = True
            If .Show Then
                For x = 1 To .SelectedItems.Count
                    msg = msg & .SelectedItems(x) & vbCrLf
                Next
                MsgBox msg
            End If
        End With

  10. #10
    Membre éclairé Avatar de pimpmyride
    Inscrit en
    Décembre 2005
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 321
    Par défaut
    si access le gere en interne je n'ai pas trouve l'option alors :/

  11. #11
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Par défaut
    Citation Envoyé par pimpmyride
    en faite ma boite de dialogue j'en ai besoin pour une application access 2000 donc je suis sous access
    Cela aurait été bien de le préciser dès le début, avec un tag dans le titre.

  12. #12
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Pour conclure :

    Losque j'ai dit:

    seulement si c'est vraiment nécessaire

    je disais bien ce que je voulais dire. Tout dépendait en effet de l'outil que tu possédais.
    Travaillant personnellement avec un outil pauvre (VB5), j'opte pour l'appel de l'API de Windows pour éviter l'utilisation lourde de DirBox, FileBox, DriveBox et ListBox...

    En ce qui te concerne, tu possèdes un outil dont un contrôle unique fait tout celà pour toi. Il est de surcroit présent et pèse donc dans ton application, que tu le veuilles ou non (sa présence t'est imposée). Il convient donc de l'utiliser plutôt que de faire appel à l'API qui... exécutera le même code!

    Un peu de philosophie générale maintenant :

    -chaque fois que la ver(sion VB le permet, il est préférable de ne pas tout inclure dans son application. Elle sera plus légère si l'on a écarté tout ce qui pouvait l'être. C'est dans cet esprit que je développe généralement...
    et c'est la raison pour laquelle je n'hésite pas, au besoin, de faire appel à l'API.

    Exprimé d'une autre façon : A quel artisan viendrait-il à l'idée de déplacer tout son atelier pour ... ne placer qu'une cheville dans un mur ?

    Lorsque toutefois, la perceuse est de toute façon imposée dans sa boite à outils, il serait mal venu de transporter un tour pour fabriquer une perceuse...

    Je crois qu'un jour je développerai un petit article pour exposer ces idées à mon sens essentielles.

    Amitiés à tous.

  13. #13
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Autant pour moi - je viens de vérifier - l'object FileDialog a été ajouté à partir de la version 2002.

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/11/2007, 21h02
  2. Access : Boite de dialogue + critère de tri
    Par le_touriste dans le forum VBA Access
    Réponses: 2
    Dernier message: 19/11/2007, 17h33
  3. Réponses: 1
    Dernier message: 30/05/2006, 19h04
  4. [MFC]Application basée sur des boites de dialogue
    Par -=Spoon=- dans le forum MFC
    Réponses: 2
    Dernier message: 24/08/2005, 11h55
  5. Réponses: 2
    Dernier message: 21/12/2004, 17h08

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