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 :

Passage en .mde, perte des chemins de répertoires


Sujet :

VBA Access

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2012
    Messages : 80
    Points : 48
    Points
    48
    Par défaut Passage en .mde, perte des chemins de répertoires
    J'avance tout doucement... j'ai passé l'application en fichier .mde, le fichier .mde
    et dans le même répertoire que le fichier application .mdb, et là,
    l'application ne trouve plus les chemins des répertoires ou sont placée les
    fichiers Word modèles qui sert aux éditions de courriers.

    Quelqu'un aurait-il une idée ?
    j'ai essayé plusieurs choses :
    - chemin "en dur" dans le code,
    - formulaire de paramètres : avec un chemin rentré à la main et dans le code
    cherché par DLookup...
    et tout cela ne fonctionne pas, alors que le fichier .mdb fonctionne !

    Merci pour l'éclairage...
    Plume27

  2. #2
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    Salut,


    Si c'est des chemins qui ne changent pas trop souvent, tu peux les mettre dans une table PARAMETRE, avec un formulaire de gestion pour les modifier éventuellement.

    Cordialement

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2012
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    C'est ce que j'ai fait !
    j'ai fait une table de paramètres et ai rentré dedans
    l'adresse en dur mais cela ne passe pas dès que je passe mon fichier en .mde

  4. #4
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    Ok, mais qu'est ce qui ne passe pas? sois plus précis stp.

  5. #5
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2012
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    Merci pour votre questionnement,

    quand je suis dans le fichier .mdb, j'ai un formulaire qui affiche dans une zone de liste, les fichiers Word d'un répertoire Windows ou ils sont stocké, ils me servent pour faire du publipostage, l'utilisateur a le choix suivant le modèle de courrier qui est nécessaire.
    Cette zone de liste se met à jour au chargement du formulaire. Cela fonctionne.
    Quand je passe en fichier .mde, la zone de liste est vide, c'est à dire qu'au chargement, il ne trouve plus le chemin et le contenu du répertoire.

    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
     
    Private Sub Form_Load()
    'déclaration d'une variable qui va réceptionné le chemin de la base active
    Dim chemin As String
    Dim table As String
    Dim champ As String
     
    '------------------------------------------
    ' mise à jour d'une table "liste des courriers"
    '-----------------------------------------------
    'ouvrir une table, la vider de tous ses enregistrements et lancer la fonction pour alimenter la table
    DoCmd.OpenTable "tbl_Liste_courriers"
     
    'empêche les demande de confirmation de s'afficher
    DoCmd.SetWarnings False
    'efface le contenu de la table, effacer tous les enregistrements
    DoCmd.RunSQL "DELETE * FROM tbl_Liste_courriers;"
    'rétablit les confirmations
    DoCmd.SetWarnings True
    'fermeture de la table
    DoCmd.Close
     
    'récupération du chemin du répertoire courrier saisi en dur dans une table
    chemin = DLookup("[appli_local_courriers]", "[tbl_Paramètres_application]")
    MsgBox chemin
     
    'met le nom de la table à alimenter dans une variable
    table = "tbl_Liste_courriers"
     
    'met le nom du champ à alimenter dans une variable
    champ = "courrier"
     
    'appel de la fonction "Liste dans une table" qui se trouve dans un module propre
    Call FileExistDir(chemin, table, champ)
     
    [Forms]![frm_Courriers_Edition].Refresh
     
    '---------------------------------------------
    'mise à jour de la liste dossiers
    '---------------------------------------------
    Me.[Liste_dossiers].RowSource = "SELECT tbl_Accords.ac_num, tbl_Accords.ac_num_acccord, tbl_Accords.ac_redacteur, tbl_Accords.ac_type, tbl_Accords.ac_darrivee, tbl_Accords.[ej-no_cna], tbl_Accords.[et-no_cna] FROM tbl_Accords ORDER BY [ac_darrivee] DESC;"
    Me.[Liste_dossiers].Requery
     
    btn_Maj_RAR.Visible = False
    btn_Imp_RAR.Visible = False
     
    End Sub
    Voici le code du formulaire qui affiche la zone de liste "courriers"
    J'espère avoir été plus claire ? je ne sais pas quoi dire d'autres pour vous éclairer....

  6. #6
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    D'abord une remarque:
    Tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    'ouvrir une table, la vider de tous ses enregistrements et lancer la fonction pour alimenter la table
    DoCmd.OpenTable "tbl_Liste_courriers"
     
    'empêche les demande de confirmation de s'afficher
    DoCmd.SetWarnings False
    'efface le contenu de la table, effacer tous les enregistrements
    DoCmd.RunSQL "DELETE * FROM tbl_Liste_courriers;"
    'rétablit les confirmations
    DoCmd.SetWarnings True
    'fermeture de la table
    DoCmd.Close
    Je pense qu'il est inutile d'ouvrir la table. Tu pourrais faire ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'empêche les demande de confirmation de s'afficher
    DoCmd.SetWarnings False
    'efface le contenu de la table, effacer tous les enregistrements
    DoCmd.RunSQL "DELETE * FROM tbl_Liste_courriers;"
    'rétablit les confirmations
    DoCmd.SetWarnings True
    Donc si ta liste est vide, c'est que
    Me.[Liste_dossiers].RowSource ne contient pas de lignes
    et que la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT tbl_Accords.ac_num, tbl_Accords.ac_num_acccord, tbl_Accords.ac_redacteur, tbl_Accords.ac_type, tbl_Accords.ac_darrivee, tbl_Accords.[ej-no_cna], tbl_Accords.[et-no_cna] FROM tbl_Accords ORDER BY [ac_darrivee] DESC;"
    ne renvoi rien!!

    Dans le MDE tu as accès au concepteur graphique de requête, et donc tu peux y tester cette requête pour voir ce qu'elle retourne.
    Si elle ne retourne rien, c'est normal que la liste soit vide.

  7. #7
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2012
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    Je crois qu'on ne s'est pas compris... dans ce code j'ai deux choses
    -une mise à jour de la liste des modèles de courriers dans une zone de liste
    avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     'récupération du chemin du répertoire courrier saisi en dur dans une table
    chemin = DLookup("[appli_local_courriers]", "[tbl_Paramètres_application]")
    MsgBox chemin
     
    'met le nom de la table à alimenter dans une variable
    table = "tbl_Liste_courriers"
     
    'met le nom du champ à alimenter dans une variable
    champ = "courrier"
     
    'appel de la fonction "Liste dans une table" qui se trouve dans un module propre
    Call FileExistDir(chemin, table, champ)
     
    [Forms]![frm_Courriers_Edition].Refresh
    avec donc appel d'une fonction dont le code suit :
    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
    Function FileExistDir(strDir As String, _
            strTable As String, strField As String)
     
            Dim intFile As Integer
            Dim strFile As String
     
            intFile = 0: strFile = ""
     
            With Application.FileSearch
                .LookIn = strDir: .FileName = "*.*"
                If .Execute > 0 Then
                    For intFile = 1 To .FoundFiles.Count
                        strFile = .FoundFiles(intFile)
                        strFile = Right(strFile, Len(strFile) - (Len(strDir) + 1))
                        CurrentDb.Execute "INSERT INTO [" & strTable & "] " _
                            & "([" & strField & "])" _
                            & "SELECT """ & strFile & """ ;"
                     Next
                End If
            End With
     
        End Function
    -une mise à jour d'une liste d'accords réalisée avec une requête, qui elle fonctionne tant dans le fichier .mdb que .mde.... je l'ai re-testée à l'instant à partir de ta remarque.j'ai refait des tests toujours sans résultat, la zone de liste "courriers" est à blanc dans le fichier .mde.

    Je suis allée revoir le fichier .mde, la table liste_courriers est bien chargée !
    elle s'affiche dans le .mde en ouverture Access, par contre, cela ne s'affiche pas en ouverture RuntimeAccess.
    Images attachées Images attachées  

  8. #8
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    ok, mais as tu testé la requête qui alimente la liste?
    Que retourne-t-elle?
    La table tbl_Accords est elle remplie?

    Si la liste est vide, c'est que la requête qui devrait lui fournir les lignes ne lui fourni rien. Il faut d'abord tester ça!
    (me semble-t-il, je peux me tromper!)

    J'édite après avoir vu la fin de ton post:
    C'est la zone qui affiche #Supprimé qui devrait afficher tes fichiers Word??

  9. #9
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2012
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    Oui, c'est ma zone de liste qui affiche la liste de mes courriers,
    et c'est là que cela coince....###supprime...!!!!
    alors que dans la table il y a bien les données que dans l'affichage du .mdb,
    cela s'affiche sans problème, dans le .mde, aussi et dès que tu passes
    en Runtime Access plus rien !!!!

  10. #10
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    Ah! on avance....
    Essaie de mettre la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.[Liste_dossiers].Requery
    dans la procédure de gestion de l'événement Sur Activation de ton formulaire.
    Ceci pour lancer le rafraichissement de la liste le plus tard possible.

  11. #11
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2012
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    cela ne fonctionne pas !!!

    j'ai essayé les deux zones de liste : Liste_courriers et Liste_dossiers
    et sans succès...

  12. #12
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    Qu'est ce qui ne fonctionne pas?
    Tu as toujours les #Supprimé?

    Alors essai de le faire manuellement:
    Ajoute un bouton Test sur ton formulaire
    Sur l'événement Click ajoute une procédure d'événement
    dans laquelle tu insères la commande Me.[Liste_dossiers].Requery

    Quand tu cliques sur le bouton, la liste se charge-t-elle correctement?

  13. #13
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    Et si tu veux,passe moi ta base, je la regarde

  14. #14
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2012
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    Je ne peux pas te passer mon application, car :
    - elle contient des infos confidentielles
    - elle a un nb de kilo octets considérable car j'ai des tables
    avec des milliers d'infos...

    D'après ce que je vois, c'est dans l'appel "Call File..." la function
    qui va sur Windows qui pose problème quand on passe en Runtime
    car cela fonctionne en .mde....

    J'ai rajouté : Me.Liste_courriers = DoEvents(),
    çà ne bugge pas, mais n'ajoute rien et n'apporte pas de solution...

    J'ai mis l'appli sur le disk C: de base alors que jusqu'à maintenant l'application
    était sur le réseau... nouveaux essais
    mêmes résultats....

  15. #15
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    Ok mais tu n'as pas répondu à ma question:

    Quand tu cliques sur le bouton, la liste se charge-t-elle correctement?

  16. #16
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2012
    Messages : 80
    Points : 48
    Points
    48
    Par défaut
    non, ma liste ne charge pas !
    il semble en plus que des fonctions d'Access 2003 ne passe pas
    en Access 2007, comme FileSearch...!!!
    et donc comme j'utilise un RunTime 2007, n'ayant pas trouvé le RunTime 2003,
    cela doit venir de là !

    Mais du coup, ma question comme je modifie, car je ne vois pas de commande
    équivalente ....

  17. #17
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    Oui, Application.FileSearch n'est plus disponible ni en 2007, ni en 2010.

    Tu peut remplacer cet objet par la classe disponible ici:
    http://www.office-loesung.de/ftopic148247_0_0_asc.php

    ou alors utiliser la fonction Dir()

Discussions similaires

  1. Réponses: 12
    Dernier message: 27/04/2011, 20h59
  2. Réponses: 13
    Dernier message: 12/08/2009, 10h52
  3. [pointeur][passage par référence] Perte des valeurs.
    Par ced600 dans le forum Débuter
    Réponses: 13
    Dernier message: 05/09/2008, 18h44
  4. déreglement des tailles après passage en mde?!
    Par _MattU_ dans le forum IHM
    Réponses: 2
    Dernier message: 24/06/2008, 09h14
  5. table répertoire des chemins d'accées sous access
    Par marc_calagac dans le forum VBA Access
    Réponses: 3
    Dernier message: 19/06/2007, 11h09

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