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 :

sauvegarder un fichier Access sur un réseau


Sujet :

Access

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [résolu]sauvegarder un fichier Access sur un réseau
    Bonjour, je viens de me former à AccessXP (version juste avant Access2003). J'ai fait une base de donnée qui doit fonctionner sur un réseau. Je l'ai donc installé dans un fichier en partage de mon ordinateur central. Afin que tous les utilisateurs puissent saisir des données j'ai du attribuer tous les droits au répertoire qui contient la base. Le problème c'est qu'avec tous les dorits sur le répertoire quelqu'un peut malencontreusement effacer toute ma base:-(
    Afin de ne pas perdre des donnés je voudrais qu'à chaque fois qu'un utilisateur ferme la base de donnée celà effectue une sauvegarde dans un répertoire qui lui n'est pas partagé. J'ai eu l'idée de faire une macro et de l'attacher à la fermeture de ma base de donnée mais voilà je n'arrive pas à la programmer.
    Pour le moment j'ai attaché une macro qui éxecute un fichier.bat qui renvoie à une commande dos de copy du fichier. Le problème est que ma commande ne marche pas à distance, elle ne fonctionne qui sur l'ordinateur qui héberge la base.
    Auriez vous une suggestion pour résoudre mon problème?
    Merci d'avance pour vos réponse.

    PS: j'espère avoir été assez clair dans la présentation de mon problème et ne pas avoir fait trop long.

  2. #2
    Membre à l'essai

    Profil pro
    Inscrit en
    Mars 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 7
    Points : 13
    Points
    13
    Par défaut
    Salut.

    Le mieux serait de protéger tes données. Par exemple avec Sql server ou sybase.
    bonjour la foule

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    En fait je ne suis vraiment pas un expert en informatique. (Je suis étudiant en commerce) Si tu as plus de détail ou une autre solution plus facile, je suis prenneur.
    Merci déjà pour ces détails

  4. #4
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Points : 4 339
    Points
    4 339
    Par défaut
    Je ne l'ai jamais fait mais si tu veux rester en access, tu peux utiliser la fonction de replica.

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    En fait je voudrais bien que ma sauvegarde se fasse automatiquement lorsqu'il quitte l'application. J'ai peut-être pas bien compris la fonction replica mais elle ne me semble pas automatique.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 33
    Points : 35
    Points
    35
    Par défaut
    Bonjour,
    Tu peux ecrire des fonctions qui te permette de faire cela mais c'est long, si tu le désire j'ai une variante qui permet de copier un fichier dans un répertoire ...
    Nous sommes tous égaux face à la difficulté, seule cette dernière présente des différences,
    alors n'hésitez pas : http://access.developpez.com/faq/

    Fonctions SQL sous access : http://www.techonthenet.com/access/functions/index.php

  7. #7
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    C'est clair que je suis intéressé:-)
    Je suis prenneur de toutes les solutions bien que mon faible niveau en informatique ne me permet pas de toute les faire.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 33
    Points : 35
    Points
    35
    Par défaut
    cela va être long...

    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
    Option Compare Database
    Option Explicit
     
    Declare Function ObtNomFichierOuvert Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OUVRIRNOMFICHIER) As Boolean
    Declare Function ObtNomFichierSauvé Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OUVRIRNOMFICHIER) As Boolean
     
    Type MSA_NOMFICHIEROUVERT
     
        chFiltre As String
        lngIndexFiltre As Long
        chRépInitial As String
        chFichierInitial As String  
        chTitreDialogue As String
        chExtensionDéfaut As String
        entIndicateurs As Long
        chCheminCompletRetourné As String
        chNomFichierRetourné As String
        entPartieFichier As Integer
        entExtensionFichier As Integer
    End Type
     
    Const TOUSFICHIERS = "All Files"
     
    Type OUVRIRNOMFICHIER
        lTailleStruct As Long
        hwndPropriétaire As Long
        hInstance As Long
        lpchFiltre As String
        lpchFiltrePersonnalisé As Long
        nFiltrePersonMax As Long
        nIndexFiltre As Long
        lpchFichier As String
        nFichierMax As Long
        lpchTitreFichier As String
        nTitreFichierMax As Long
        lpchRépInitial As String
        lpchTitre As String
        indicateurs As Long
        nPartieFichier As Integer
        nExtensionFichier As Integer
        lpchExtDéf As String
        lDonnéesClient As Long
        lpfnCrochet As Long
        lpNomModèle As Long
    End Type
     
    Const OFN_AUTORISERMULTISELECT = &H200
    Const OFN_CREERATTENTE = &H2000
    Const OFN_EXPLORER = &H80000
    Const OFN_FICHIERDOITEXISTER = &H1000
    Const OFN_MASQUERLECTURESEULE = &H4
    Const OFN_PASCHANGERREP = &H8
    Const OFN_LIAISONSREFERENCES = &H100000
    Const OFN_PASBOUTONRESEAU = &H20000
    Const OFN_PASRETOURLECTURESEULE = &H8000
    Const OFN_PASVALIDER = &H100
    Const OFN_ECRASERINVITE = &H2
    Const OFN_CHEMINDOITEXISTER = &H800
    Const OFN_LECTURESEULE = &H1
    Const OFN_AFFICHERAIDE = &H10
     
    'Public Function TROUVERFICHIER(chCheminRecherche, cV_Fichier, cV_Extension) As String
     
    Public Function TROUVERFICHIER(chCheminRecherche, ParamArray varFilt() As Variant) As String
     
    ' Affiche une boîte de dialogue d'ouverture de fichier pour permettre
    ' à l'utilisateur de rechercher la base de données Les Comptoirs.
    ' Retourne le chemin complet de Les Comptoirs.
     
    ' Declaration des variables
        Dim NbParam As Integer
        Dim msaof As MSA_NOMFICHIEROUVERT
        Dim EntRet As Integer
        Dim param_filtre() As String
     
     ' Recopie des parametres
        NbParam = UBound(varFilt)
        ReDim param_filtre(NbParam)
        For EntRet = 0 To UBound(varFilt)
        param_filtre(EntRet) = varFilt(EntRet)
        Next
     
     ' Définit les options de la boîte de dialogue.
        On Error Resume Next
        If Mid(chCheminRecherche, 2, 1) = ":" Then
            ChDrive Mid(chCheminRecherche, 1, 1)
        End If
        ChDir chCheminRecherche
        On Error GoTo 0
        msaof.chTitreDialogue = "Recherche d'un fichier"
        msaof.chRépInitial = chCheminRecherche
        msaof.chFiltre = MSA_CréationChaîneFiltre(param_filtre()
        MSA_ObtNomFichierOuvert msaof
        TROUVERFICHIER = Trim(msaof.chCheminCompletRetourné)
     
    End Function
    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
    Declare Function GetLogicalDriveStrings Lib "kernel32.dll" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
    Public gProjectIdentifier As Double
     
    Public Function ListToArray(s As String, t() As String, séparateur As String) As Integer
     
        Dim iStart As Integer
        Dim iEnd As Integer
        Dim tMax As Integer
        Dim bFin As Integer
        Dim buf As String
        tMax = 0
        ReDim t(tMax)
        iStart = 1
        Do
            iEnd = InStr(iStart, s, séparateur)
            If iEnd = 0 Then
                iEnd = Len(s) + 1
                bFin = True
            End If
            buf = Mid$(s, iStart, iEnd - iStart)
            ReDim Preserve t(tMax)
            t(tMax) = buf
            tMax = tMax + 1
            iStart = iEnd + 1
        Loop While Not bFin
        ListToArray = tMax
     
    End Function
    Public Function RenameFolder(Folder As String) As String
        If InStr(Folder, "/") <> 0 Then
            Folder = Left(Folder, InStr(Folder, "/") - 1) & Right(Folder, Len(Folder) - InStr(Folder, "/"))
        End If
     
        If InStr(Folder, "\") <> 0 Then
            Folder = Left(Folder, InStr(Folder, "\") - 1) & Right(Folder, Len(Folder) - InStr(Folder, "\"))
        End If
     
        If InStr(Folder, ".") <> 0 Then
            Folder = Left(Folder, InStr(Folder, ".") - 1) & Right(Folder, Len(Folder) - InStr(Folder, "."))
        End If
     
        RenameFolder = Folder
     
    End Function
     
    Public Function AttachFile(First_Signed As String, fs As Object, TabDir() As String, fichier As String, TFic() As String, Chemin As String, FileName As String, Folder As String, Project As String, Requi_No As String, Rev_No As String) As Integer
        Dim retour As Integer
     
        AttachFile = True
     
        ' Initialisation des variables
        TFic(0) = "*.pdf"
        Chemin = CurrentProject.Path
     
        ' Appel du choix du fichier
        fichier = Trim(TROUVERFICHIER(Chemin, TFic(0)))
     
        Const cSeparatorFolderInPath = "\"
        Call ListToArray(Chemin, TabDir, cSeparatorFolderInPath)
        For j = 0 To UBound(TabDir) - 1
            If j <> 0 Then
                ShortChemin = ShortChemin & "\" & TabDir(j)
            Else
                ShortChemin = TabDir(0)
            End If
        Next
     
        If InStr(fichier, ":\") > 0 Then
            Call ListToArray(fichier, TabDir, cSeparatorFolderInPath)
            FileName = Trim(TabDir(UBound(TabDir)))
        Else
            AttachFile = False
            Exit Function
        End If
     
        'Copie du fichier depuis C vers le serveur
        Set fs = CreateObject("Scripting.FileSystemObject")
        a = fs.FolderExists(ShortChemin & "\CERTIFICAT_TEMP\" & Project)
        If a = False Then
        'create folder
            a = fs.CreateFolder(ShortChemin & "\CERTIFICAT_TEMP\" & Project)
        End If
     
        Set fs = CreateObject("Scripting.FileSystemObject")
        a = fs.FolderExists(ShortChemin & "\CERTIFICAT_TEMP\" & Project & "\" & Folder)
        If a = False Then
        'create folder
            a = fs.CreateFolder(ShortChemin & "\CERTIFICAT_TEMP\" & Project & "\" & Folder)
        End If
        'File already exists?
        a = fs.FileExists(ShortChemin & "\CERTIFICAT_TEMP\" & Project & "\" & Folder & "\" & FileName)
        If a = True Then
            MsgBox "This File already exist, Please rename it before attach action"
            AttachFile = False
            Exit Function
        End If
     
        If First_Signed = "First" Then
            a = fs.CopyFile(fichier, ShortChemin & "\CERTIFICAT_TEMP\" & Project & "\" & Folder & "\" & Folder & "-" & Requi_No & "-" & Rev_No & "-F" & ".pdf")
        ElseIf First_Signed = "Signed" Then
            a = fs.CopyFile(fichier, ShortChemin & "\CERTIFICAT_TEMP\" & Project & "\" & Folder & "\" & Folder & "-" & Requi_No & "-" & Rev_No & "-S" & ".pdf")
        End If
        Set fs = Nothing
     
    End Function
    et voilà
    Nous sommes tous égaux face à la difficulté, seule cette dernière présente des différences,
    alors n'hésitez pas : http://access.developpez.com/faq/

    Fonctions SQL sous access : http://www.techonthenet.com/access/functions/index.php

  9. #9
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 33
    Points : 35
    Points
    35
    Par défaut
    J'ai oublié de préciser que je n'en suis pas l'auteur mais un de mes amis !
    Et qu'il te faudra l'adapter...
    Nous sommes tous égaux face à la difficulté, seule cette dernière présente des différences,
    alors n'hésitez pas : http://access.developpez.com/faq/

    Fonctions SQL sous access : http://www.techonthenet.com/access/functions/index.php

  10. #10
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Points : 4 339
    Points
    4 339
    Par défaut
    Tu peux rendre la replication automatique. Une fois le replicat créé, (cela se fait en effet manuellement mais uneseul fois). Tu peux alors créer du code qui utilise la methode synchronize (voir la doc avec F1).

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

Discussions similaires

  1. Partage d'un fichier adp sur un réseau
    Par alain.nico dans le forum Access
    Réponses: 3
    Dernier message: 13/09/2007, 09h10
  2. Réponses: 3
    Dernier message: 19/04/2007, 07h50
  3. [VBA-E] Ouverture automatique d'un fichier excel sur un réseau
    Par NiKoS29 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/04/2007, 15h57
  4. ACCESS_VBA: Sauvegarde de fichiers access
    Par VBBBA dans le forum Access
    Réponses: 4
    Dernier message: 30/06/2006, 11h37
  5. Réponses: 2
    Dernier message: 14/05/2004, 12h55

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