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 :

Impossible d'ouvrir une boîte de dialogue avec un client léger [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 64
    Points : 57
    Points
    57
    Par défaut Impossible d'ouvrir une boîte de dialogue avec un client léger
    Bonjour à tous,


    J'ai un problème que je ne comprends pas. Voilà, je souhaitais joindre des liens hypertexte à des formulaires. De ce fait, en exploitant plusieurs tutos, j'ai créé un "bouton parcourir" qui m'ouvre une boite de dialogue Ouvrirfichier sur mon PC. En fonction du fichier sélectionné de cette boîte de dialogue, ça répercute le lien dans un champs type lien hypertexte. Si je clique sur le lien ça m'ouvre le fichier. ça marche très bien sur des ordinateurs. Cependant sur des clients légers, ça n'ouvre pas la boîte de dialogue lorsque je clique sur le bouton "parcourir". Y a t'il une raison surtout une solution à ce problème ?

    Voir la commande sur clique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Commande815_Click()
    Dim fichier
    fichier = OuvrirUnFichier(Me.Hwnd, "Ouvrir Fichier", 1)
    TDE_liendescription.Value = fichier & "#" & fichier
    End Sub
    Ci-dessous le module:
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    Option Compare Database
     
      ' Déclaration de l'API
    Private Declare PtrSafe Sub PathStripPath Lib "shlwapi.dll" Alias "PathStripPathA" (ByVal pszPath As String)
    Private Declare PtrSafe Function GetOpenFileName Lib "comdlg32.dll" Alias _
                       "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
     
     ' Structure du fichier
    Private 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
     
     ' Constantes
    Private Const OFN_READONLY = &H1
    Private Const OFN_OVERWRITEPROMPT = &H2
    Private Const OFN_HIDEREADONLY = &H4
    Private Const OFN_NOCHANGEDIR = &H8
    Private Const OFN_SHOWHELP = &H10
    Private Const OFN_ENABLEHOOK = &H20
    Private Const OFN_ENABLETEMPLATE = &H40
    Private Const OFN_ENABLETEMPLATEHANDLE = &H80
    Private Const OFN_NOVALIDATE = &H100
    Private Const OFN_ALLOWMULTISELECT = &H200
    Private Const OFN_EXTENSIONDIFFERENT = &H400
    Private Const OFN_PATHMUSTEXIST = &H800
    Private Const OFN_FILEMUSTEXIST = &H1000
    Private Const OFN_CREATEPROMPT = &H2000
    Private Const OFN_SHAREAWARE = &H4000
    Private Const OFN_NOREADONLYRETURN = &H8000
    Private Const OFN_NOTESTFILECREATE = &H10000
     
    Private Const OFN_SHAREFALLTHROUGH = 2
    Private Const OFN_SHARENOWARN = 1
    Private Const OFN_SHAREWARN = 0
     
     
    Public Function OuvrirUnFichier(Handle As Long, _
                                    Titre As String, _
                                    TypeRetour As Byte, _
                                    Optional TitreFiltre As String, _
                                    Optional TypeFichier As String, _
                                    Optional RepParDefaut As String) As String
     ' OuvrirUnFichier est la fonction à utiliser dans votre formulaire pour ouvrir _
     ' la boîte de dialogue de sélection d'un fichier.
     ' Explication des paramètres
        ' Handle = le handle de la fenêtre
        ' Titre = titre de la boîte de dialogue
        ' TypeRetour (définit la valeur, de type String, renvoyée par la fonction)
            ' 1 = chemin complet + nom du fichier
            ' 2 = nom fichier seulement
        ' TitreFiltre = titre du filtre
            ' Exemple: fichier Access
            ' N'utilisez pas cet argument si vous ne voulez spécifier aucun filtre
        ' TypeFichier = extention du fichier (sans le .)
            ' Exemple: MDB
            ' N'utilisez pas cet argument si vous ne voulez spécifier aucun filtre
        ' RepParDefaut = répertoire d'ouverture par défaut
            ' Exemple: C:\windows\system32
            ' Si vous laissez l'argument vide, par défaut il se place dans le répertoire de votre application
     
    Dim StructFile As OPENFILENAME
    Dim sFiltre As String
     
     ' Construction du filtre en fonction des arguments spécifiés
    If Len(TitreFiltre) > 0 And Len(TypeFichier) > 0 Then
      sFiltre = TitreFiltre & " (" & TypeFichier & ")" & Chr$(0) & "*." & TypeFichier & Chr$(0)
    End If
    sFiltre = sFiltre & "Tous (*.*)" & Chr$(0) & "*.*" & Chr$(0)
     
     
     ' Configuration de la boîte de dialogue
      With StructFile
        .lStructSize = Len(StructFile) ' Initialisation de la grosseur de la structure
        .hwndOwner = Handle ' Identification du handle de la fenêtre
        .lpstrFilter = sFiltre ' Application du filtre
        .lpstrFile = String$(254, vbNullChar) ' Initialisation du fichier '0' x 254
        .nMaxFile = 254 ' Taille maximale du fichier
        .lpstrFileTitle = String$(254, vbNullChar) ' Initialisation du nom du fichier '0' x 254
        .nMaxFileTitle = 254  ' Taille maximale du nom du fichier
        .lpstrTitle = Titre ' Titre de la boîte de dialogue
        .flags = OFN_HIDEREADONLY  ' Option de la boite de dialogue
        If ((IsNull(RepParDefaut)) Or (RepParDefaut = "")) Then
            RepParDefaut = CurrentDb.Name
            PathStripPath (RepParDefaut)
            .lpstrInitialDir = Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Mid$(RepParDefaut, 1, _
    InStr(1, RepParDefaut, vbNullChar) - 1)))
            Else: .lpstrInitialDir = RepParDefaut
        End If
      End With
     
    If (GetOpenFileName(StructFile)) Then ' Si un fichier est sélectionné
        Select Case TypeRetour
          Case 1: OuvrirUnFichier = Trim$(Left(StructFile.lpstrFile, InStr(1, StructFile.lpstrFile, vbNullChar) - 1))
          Case 2: OuvrirUnFichier = Trim$(Left(StructFile.lpstrFileTitle, InStr(1, StructFile.lpstrFileTitle, vbNullChar) - 1))
        End Select
      End If
     
    End Function
    Merci d'avance ce que vous pourrez me dire.

    Mao2000

  2. #2
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Points : 2 491
    Points
    2 491
    Par défaut Ouverture de fichiers sur clients légers
    clients légers = ????????? !!!!

  3. #3
    Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 64
    Points : 57
    Points
    57
    Par défaut Impossible d'ouvrir le répertoire avec le bouton parcourir
    Bonjour,

    Client léger ce sont des stations qui sont reliés à un serveur. On installe les applications sur serveur et toutes les clients légers peuvent en bénéficier.
    Y a t'il une option à cocher sur access ?

    Merci d'avance

  4. #4
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Points : 2 491
    Points
    2 491
    Par défaut
    La 1ère chose à laquelle je pense est l'emplacement de "RepParDefaut". Est-ce qu'on pointe bien vers la bonne source des fichiers, et est-ce que les fichiers recherchés se trouvent bien là où ils doivent être (sachant que tout ou partie se trouve sur un serveur) ?

  5. #5
    Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 64
    Points : 57
    Points
    57
    Par défaut Impossible d'ouvrir le répertoire avec le bouton parcourir
    Oui, Oui j'avais vérifié sur le clients Y avait bien le chemin C:\windows\system32 par défaut.

    Merci

  6. #6
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Points : 2 491
    Points
    2 491
    Par défaut Impossible d'ouvrir le répertoire avec le bouton parcourir
    Désolé, mais je dois tâtonner ici; si tu essayais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    default_Path = CurrentProject.Path & "\"
    ainsi, chaque machine lira sur le répertoire où se trouve l'application

  7. #7
    Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 64
    Points : 57
    Points
    57
    Par défaut Impossible d'ouvrir une boîte de dialogue avec un client léger
    Bonjour,

    Là il va falloir que tu m'aides le code que tu m'as indiqué. Où dois-je le positionner ?

    Merci d'avance

  8. #8
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Points : 2 491
    Points
    2 491
    Par défaut Impossible d'ouvrir une boîte de dialogue avec un client léger
    Ce sera la valeur assignée à "RepParDefaut"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RepParDefaut = CurrentProject.Path & "\"

  9. #9
    Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 64
    Points : 57
    Points
    57
    Par défaut Impossible d'ouvrir une boîte de dialogue avec un client léger
    Bonjour,

    J'ai bien modifié la donnée: mais tjs rien, en cliquant sur le bouton le répertoire ne s'ouvre pas. Merci en tout cas de pencher sur mon cas

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    Option Compare Database
     
    ' Déclaration de l'API
    Private Declare PtrSafe Sub PathStripPath Lib "shlwapi.dll" Alias "PathStripPathA" (ByVal pszPath As String)
    Private Declare PtrSafe Function GetOpenFileName Lib "comdlg32.dll" Alias _
                       "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
     
     
     ' Structure du fichier
    Private 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
     
     ' Constantes
    Private Const OFN_READONLY = &H1
    Private Const OFN_OVERWRITEPROMPT = &H2
    Private Const OFN_HIDEREADONLY = &H4
    Private Const OFN_NOCHANGEDIR = &H8
    Private Const OFN_SHOWHELP = &H10
    Private Const OFN_ENABLEHOOK = &H20
    Private Const OFN_ENABLETEMPLATE = &H40
    Private Const OFN_ENABLETEMPLATEHANDLE = &H80
    Private Const OFN_NOVALIDATE = &H100
    Private Const OFN_ALLOWMULTISELECT = &H200
    Private Const OFN_EXTENSIONDIFFERENT = &H400
    Private Const OFN_PATHMUSTEXIST = &H800
    Private Const OFN_FILEMUSTEXIST = &H1000
    Private Const OFN_CREATEPROMPT = &H2000
    Private Const OFN_SHAREAWARE = &H4000
    Private Const OFN_NOREADONLYRETURN = &H8000
    Private Const OFN_NOTESTFILECREATE = &H10000
     
    Private Const OFN_SHAREFALLTHROUGH = 2
    Private Const OFN_SHARENOWARN = 1
    Private Const OFN_SHAREWARN = 0
     
     
    Public Function OuvrirUnFichier(Handle As Long, _
                                    Titre As String, _
                                    TypeRetour As Byte, _
                                    Optional TitreFiltre As String, _
                                    Optional TypeFichier As String, _
                                    Optional RepParDefaut As String) As String
     ' OuvrirUnFichier est la fonction à utiliser dans votre formulaire pour ouvrir _
     ' la boîte de dialogue de sélection d'un fichier.
     ' Explication des paramètres
        ' Handle = le handle de la fenêtre
        ' Titre = titre de la boîte de dialogue
        ' TypeRetour (définit la valeur, de type String, renvoyée par la fonction)
            ' 1 = chemin complet + nom du fichier
            ' 2 = nom fichier seulement
        ' TitreFiltre = titre du filtre
            ' Exemple: fichier Access
            ' N'utilisez pas cet argument si vous ne voulez spécifier aucun filtre
        ' TypeFichier = extention du fichier (sans le .)
            ' Exemple: MDB
            ' N'utilisez pas cet argument si vous ne voulez spécifier aucun filtre
        ' RepParDefaut = répertoire d'ouverture par défaut
            ' Exemple: C:\windows\system32
            ' Si vous laissez l'argument vide, par défaut il se place dans le répertoire de votre application
     
    Dim StructFile As OPENFILENAME
    Dim sFiltre As String
     
     ' Construction du filtre en fonction des arguments spécifiés
    If Len(TitreFiltre) > 0 And Len(TypeFichier) > 0 Then
      sFiltre = TitreFiltre & " (" & TypeFichier & ")" & Chr$(0) & "*." & TypeFichier & Chr$(0)
    End If
    sFiltre = sFiltre & "Tous (*.*)" & Chr$(0) & "*.*" & Chr$(0)
     
     
     ' Configuration de la boîte de dialogue
      With StructFile
        .lStructSize = Len(StructFile) ' Initialisation de la grosseur de la structure
        .hwndOwner = Handle ' Identification du handle de la fenêtre
        .lpstrFilter = sFiltre ' Application du filtre
        .lpstrFile = String$(254, vbNullChar) ' Initialisation du fichier '0' x 254
        .nMaxFile = 254 ' Taille maximale du fichier
        .lpstrFileTitle = String$(254, vbNullChar) ' Initialisation du nom du fichier '0' x 254
        .nMaxFileTitle = 254  ' Taille maximale du nom du fichier
        .lpstrTitle = Titre ' Titre de la boîte de dialogue
        .flags = OFN_HIDEREADONLY  ' Option de la boite de dialogue
        If ((IsNull(RepParDefaut)) Or (RepParDefaut = "")) Then
            RepParDefaut = CurrentProject.Path & "\"
            PathStripPath (RepParDefaut)
            .lpstrInitialDir = Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Mid$(RepParDefaut, 1, _
    InStr(1, RepParDefaut, vbNullChar) - 1)))
            Else: .lpstrInitialDir = RepParDefaut
        End If
      End With
     
    If (GetOpenFileName(StructFile)) Then ' Si un fichier est sélectionné
        Select Case TypeRetour
          Case 1: OuvrirUnFichier = Trim$(Left(StructFile.lpstrFile, InStr(1, StructFile.lpstrFile, vbNullChar) - 1))
          Case 2: OuvrirUnFichier = Trim$(Left(StructFile.lpstrFileTitle, InStr(1, StructFile.lpstrFileTitle, vbNullChar) - 1))
        End Select
      End If
     
    End Function

  10. #10
    Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 64
    Points : 57
    Points
    57
    Par défaut Impossible d'ouvrir une boîte de dialogue avec un client léger
    Bonjour,

    J'ai contourné le problème en exploitant un autre tuto

    J'ai coché Microsoft office Library.... pour utiliser le filedialog. ça marche sur dur et sur léger.

    Mao2000

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

Discussions similaires

  1. Ouverture d'une boîte de dialogue avec Qt 4
    Par dourouc05 dans le forum Téléchargez
    Réponses: 0
    Dernier message: 01/11/2010, 22h37
  2. Réponses: 2
    Dernier message: 23/10/2009, 16h13
  3. impossible d'ouvrir une boite de dialogue
    Par paolo2002 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/02/2008, 15h38
  4. Réponses: 10
    Dernier message: 25/10/2007, 14h40
  5. Ouvrir une boîte de dialogue
    Par MayOL69bg dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 27/03/2007, 11h36

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