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

Access Discussion :

Recherche un dossier spécifique sur le serveur et l'ouvrir en VBA


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Points : 18
    Points
    18
    Par défaut Recherche un dossier spécifique sur le serveur et l'ouvrir en VBA
    Bonjour,

    Je suis de nouveau coincée sur un problème Access et j’ai besoin de vos lumières.

    J’ai fait un formulaire avec toutes les informations de chaque client dont son NumContrat.

    Sur le serveur, se trouve pour chaque contrat client, un dossier contenant les annexes, les échanges etc.…
    Le nom de chaque dossier ce compose tel quel :

    IDClient TypeContrat.NumContrat_NomClient

    J’aimerais, si c’est possible, avoir un bout de code qui va regarder le NumContratdu formulaire et va m’ouvrir le dossier (dont on indiquera le chemin) avec le même NumContrat dans le titre.

    L’idée est d’avoir le dossier contrat qui peut s’ouvrir dès qu’on le souhaite sans avoir à chercher manuellement.


    Et si jamais ce n’est pas possible, simplement lui demander d’ouvrir le dossier global contenant tous les dossiers contrats.


    Je vous remercie d’avance pour votre aide précieuse !

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    Ceci n'est pas clair (en tout cas, je n'ai pas compris)

    et va m’ouvrir le dossier (dont on indiquera le chemin) avec le même NumContrat dans le titre.
    Donne un exemple concret :

    NumContrat => chemin du répertoire à ouvrir.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    Je vais essayer d'être plus claire.

    J'ai un dossier qui s'appelle Contrats Partenaires qui se trouve C:\Contrats\Contrats Partenaires

    Dans ce dossies se trouvent des sous dossiers dont le nom est composé tel quel: IDClient TypeContrat.NumContrat_NomClient

    C'est ces fameux sous dossiers que j'aimerais qu'access ouvre en appuyant sur un bouton et selon le client qui est affiché sur mon formulaire.

    Je vous donne un exemple concret:
    J'ai mon client ABCD qui a un NumContrat 5.00
    Le sous dossier où se trouve les infos que je veux, se trouve ici C:\Contrats\Contrats Partenaires\AB Part.5.00_ABCD

    Et c'est ce dossier que je souhaite ouvrir via le NumContrat qui se trouve dans le titre et dans le formulaire.



    J'espère avoir été un peu plus claire, c'est pas toujours évident de bien expliquer quelque chose qu'on a en tête.


    PS: Si jamais ce n'est pas possible comme je le souhaite, est-ce que c'est possible simplement de m'ouvrir le dossier C:\Contrats\Contrats Partenaires ?


    Merci à vous!

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    Quelque chose qui ressemble à ceci ?



    Si oui, regarde l'exemple en P.J.

    Code

    1° dans un module, le code que tu trouves dans la FAQ : http://access.developpez.com/faq/?pa...#AffBoitDialog

    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
    119
    120
    121
    Option Compare Database
    Option Explicit
     
     'Déclaration de l'API
    Private Declare Sub PathStripPath Lib "shlwapi.dll" Alias "PathStripPathA" (ByVal pszPath As String)
    Private Declare 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
     
    Private Const OFN_EXPLORER = &H80000
     
     
     
    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 (Me.Hwnd)
        '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
    2° code associé au clic du bouton

    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
    Option Compare Database
    Option Explicit
     
     
    Private Sub BtDossier_Click()
      Dim Titre As String
      Dim Chemin As String
      Dim Choix As String
      'Titre de la boîte
      Titre = "Dossier du client " & Me.txtNomClient & " N° contrat " & Me.txtNumContrat & " : "
      'Chemin
      Chemin = "c:\contrats\contrats partenaires\AB Part." & Me.txtNumContrat & "_" & Me.txtNomClient
      Choix = OuvrirUnFichier(Me.Hwnd, Titre, 1, , , Chemin)
      'Suite du code pour dire quoi faire avec le fichier choisi
     
    End Sub
    Fichiers attachés Fichiers attachés
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    Bonjour ClaudeLELOUP,

    Merci beaucoup pour votre réponse, c'est exactement ce à quoi je pensais!

    Je vais tester tout à l'heure dans ma BDD. Merci!

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

Discussions similaires

  1. recherche d'un fichier sur un serveur
    Par danpsaume dans le forum C#
    Réponses: 1
    Dernier message: 19/06/2008, 22h41
  2. A un dossier partagé sur le Serveur 2003 à partir d'un poste Win 98
    Par digital prophecy dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 26/06/2006, 16h15
  3. [Calendrier] Agenda a installer sur mon serveur
    Par BenoitDenis dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 23/06/2006, 15h31
  4. [FTP] Envoie un dossier entier sur un serveur !
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 14/03/2006, 19h57
  5. Configuration des dossiers FTP sur un serveur dédié
    Par ptit_seb dans le forum Apache
    Réponses: 4
    Dernier message: 29/09/2005, 14h53

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