Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Copier un fichier .MDB

4 réponses
Avatar
Ciginfo
J'utilise un programme en réseau qui va chercher les informations sur une
base de données Acces, MABASE.MDB
Je voudrai que mon programme puisse copier mon fichier MABASE.MDB pour en
faire une sauvegarde, ceci même si un utilisateur du reseau utilise le
programme c'est à dire a ouvert MABASE.MDB. Avec FileCopy je n'ai pas
l'autorisation tant que les autres utilisateurs n'ont pas fermé leur
programme. Je sais que cela peut se faire car j'ai en main un programme fait
sous VB qui permet cela. Malheurusement je n'ai pas les sources.

François

4 réponses

Avatar
Christophe
Bonjour,

Tu es sur que la base est ouverte quand ton programme VB la copie ?

Admettons qu'un utilisateur soit en train de modifier un enregistrement de
la base et que tu la copies à ce moment là, qu'est-ce que tu copies ?

Si ça marche (?) c'est pas terrible au niveau intégrité des données.

Christophe Vergon

"Ciginfo" a écrit dans le message de news:
bm0a9t$35u$
J'utilise un programme en réseau qui va chercher les informations sur une
base de données Acces, MABASE.MDB
Je voudrai que mon programme puisse copier mon fichier MABASE.MDB pour en
faire une sauvegarde, ceci même si un utilisateur du reseau utilise le
programme c'est à dire a ouvert MABASE.MDB. Avec FileCopy je n'ai pas
l'autorisation tant que les autres utilisateurs n'ont pas fermé leur
programme. Je sais que cela peut se faire car j'ai en main un programme


fait
sous VB qui permet cela. Malheurusement je n'ai pas les sources.

François




Avatar
Crevecoeur Jérôme
Bonjour,
Utilisez l'API Copyfile

Il est certes conseillé d'avoir aucun utilisateur connecté lors de
sauvegarde mais vaux mieux une sauvegarde ou il manque la derniére ligne
saisie que pas de sauvegarde du tout...


Cordialement

'----------------------------------------
Private Declare Function apiCopyFile Lib "kernel32" Alias "CopyFileA" (ByVal
lpExistingFileName As String, ByVal lpNewFileName As String, ByVal
bFailIfExists As Long) As Long

Sub CopyFile(SourceFile As String, DestFile As String)
'---------------------------------------------------------------
' PURPOSE: Copy a file on disk from one location to another.
' ACCEPTS: The name of the source file and destination file.
' RETURNS: Nothing
'---------------------------------------------------------------
Dim result As Long
On Error GoTo CopyFile_Error

If Dir(SourceFile) = "" Then
MsgBox Chr(34) & SourceFile & Chr(34) & _
" ,'est pas un fichier valide."
Else
result = apiCopyFile(SourceFile, DestFile, False)
End If

On Error GoTo 0
Exit Sub

CopyFile_Error:

MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure
CopyFile of Document VBA Form_Sauvegarde"
End Sub


--
----------------------------------------------------------------------------
--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
----------------------------------------------------------------------------
---------------------
"Christophe" a écrit dans le message de
news:bm0e7j$8jc$
Bonjour,

Tu es sur que la base est ouverte quand ton programme VB la copie ?

Admettons qu'un utilisateur soit en train de modifier un enregistrement de
la base et que tu la copies à ce moment là, qu'est-ce que tu copies ?

Si ça marche (?) c'est pas terrible au niveau intégrité des données.

Christophe Vergon

"Ciginfo" a écrit dans le message de news:
bm0a9t$35u$
> J'utilise un programme en réseau qui va chercher les informations sur


une
> base de données Acces, MABASE.MDB
> Je voudrai que mon programme puisse copier mon fichier MABASE.MDB pour


en
> faire une sauvegarde, ceci même si un utilisateur du reseau utilise le
> programme c'est à dire a ouvert MABASE.MDB. Avec FileCopy je n'ai pas
> l'autorisation tant que les autres utilisateurs n'ont pas fermé leur
> programme. Je sais que cela peut se faire car j'ai en main un programme
fait
> sous VB qui permet cela. Malheurusement je n'ai pas les sources.
>
> François
>
>




Avatar
Ciginfo
Merci bien, je vais effectivement essayer ça. C'est exactement le problème.
A cause des utilisateurs qui travaillent tout le temps !!! (il y en a ),
impossible de trouver un moment pour faire une suavegarde.

François


"Crevecoeur Jérôme" a écrit dans le message de
news: e0B#
Bonjour,
Utilisez l'API Copyfile

Il est certes conseillé d'avoir aucun utilisateur connecté lors de
sauvegarde mais vaux mieux une sauvegarde ou il manque la derniére ligne
saisie que pas de sauvegarde du tout...


Cordialement

'----------------------------------------
Private Declare Function apiCopyFile Lib "kernel32" Alias "CopyFileA"


(ByVal
lpExistingFileName As String, ByVal lpNewFileName As String, ByVal
bFailIfExists As Long) As Long

Sub CopyFile(SourceFile As String, DestFile As String)
'---------------------------------------------------------------
' PURPOSE: Copy a file on disk from one location to another.
' ACCEPTS: The name of the source file and destination file.
' RETURNS: Nothing
'---------------------------------------------------------------
Dim result As Long
On Error GoTo CopyFile_Error

If Dir(SourceFile) = "" Then
MsgBox Chr(34) & SourceFile & Chr(34) & _
" ,'est pas un fichier valide."
Else
result = apiCopyFile(SourceFile, DestFile, False)
End If

On Error GoTo 0
Exit Sub

CopyFile_Error:

MsgBox "Error " & Err.Number & " (" & Err.Description & ") in


procedure
CopyFile of Document VBA Form_Sauvegarde"
End Sub


--
--------------------------------------------------------------------------


--
--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
--------------------------------------------------------------------------


--
---------------------
"Christophe" a écrit dans le message de
news:bm0e7j$8jc$
> Bonjour,
>
> Tu es sur que la base est ouverte quand ton programme VB la copie ?
>
> Admettons qu'un utilisateur soit en train de modifier un enregistrement


de
> la base et que tu la copies à ce moment là, qu'est-ce que tu copies ?
>
> Si ça marche (?) c'est pas terrible au niveau intégrité des données.
>
> Christophe Vergon
>
> "Ciginfo" a écrit dans le message de news:
> bm0a9t$35u$
> > J'utilise un programme en réseau qui va chercher les informations sur
une
> > base de données Acces, MABASE.MDB
> > Je voudrai que mon programme puisse copier mon fichier MABASE.MDB pour
en
> > faire une sauvegarde, ceci même si un utilisateur du reseau utilise


le
> > programme c'est à dire a ouvert MABASE.MDB. Avec FileCopy je n'ai pas
> > l'autorisation tant que les autres utilisateurs n'ont pas fermé leur
> > programme. Je sais que cela peut se faire car j'ai en main un


programme
> fait
> > sous VB qui permet cela. Malheurusement je n'ai pas les sources.
> >
> > François
> >
> >
>
>




Avatar
Martine THIPHAINE
Bonjour,

Il est vraiment à proscrire de copier le fichier alors que la base est en
cours d'utilisation.
Vous risquez d'être confronté à plus ou moins long terme à des corruptions
de la base en cours.
De plus, la base copiée peut elle aussi ne pas conserver l'intégrité des
données.


--
Martine THIPHAINE
Microsoft France
--------------------
Merci de bien vouloir répondre à ce message dans le newsgroup où il a été
posté. Je le consulte régulièrement.




"Ciginfo" a écrit dans le message de
news:bm1ith$lb7$
Merci bien, je vais effectivement essayer ça. C'est exactement le


problème.
A cause des utilisateurs qui travaillent tout le temps !!! (il y en a ),
impossible de trouver un moment pour faire une suavegarde.

François


"Crevecoeur Jérôme" a écrit dans le message


de
news: e0B#
> Bonjour,
> Utilisez l'API Copyfile
>
> Il est certes conseillé d'avoir aucun utilisateur connecté lors de
> sauvegarde mais vaux mieux une sauvegarde ou il manque la derniére ligne
> saisie que pas de sauvegarde du tout...
>
>
> Cordialement
>
> '----------------------------------------
> Private Declare Function apiCopyFile Lib "kernel32" Alias "CopyFileA"
(ByVal
> lpExistingFileName As String, ByVal lpNewFileName As String, ByVal
> bFailIfExists As Long) As Long
>
> Sub CopyFile(SourceFile As String, DestFile As String)
> '---------------------------------------------------------------
> ' PURPOSE: Copy a file on disk from one location to another.
> ' ACCEPTS: The name of the source file and destination file.
> ' RETURNS: Nothing
> '---------------------------------------------------------------
> Dim result As Long
> On Error GoTo CopyFile_Error
>
> If Dir(SourceFile) = "" Then
> MsgBox Chr(34) & SourceFile & Chr(34) & _
> " ,'est pas un fichier valide."
> Else
> result = apiCopyFile(SourceFile, DestFile, False)
> End If
>
> On Error GoTo 0
> Exit Sub
>
> CopyFile_Error:
>
> MsgBox "Error " & Err.Number & " (" & Err.Description & ") in
procedure
> CopyFile of Document VBA Form_Sauvegarde"
> End Sub
>
>
> --

--------------------------------------------------------------------------
--
> --------------------
> Crévecoeur Jérôme
>
> ACS INFORMATIQUE
> 122,rue du Château d'orgemont
> 49000 ANGERS
> Tel: 02 41 68 42 36 Fax: 02 41 68 42 48

--------------------------------------------------------------------------
--
> ---------------------
> "Christophe" a écrit dans le message de
> news:bm0e7j$8jc$
> > Bonjour,
> >
> > Tu es sur que la base est ouverte quand ton programme VB la copie ?
> >
> > Admettons qu'un utilisateur soit en train de modifier un


enregistrement
de
> > la base et que tu la copies à ce moment là, qu'est-ce que tu copies ?
> >
> > Si ça marche (?) c'est pas terrible au niveau intégrité des données.
> >
> > Christophe Vergon
> >
> > "Ciginfo" a écrit dans le message de news:
> > bm0a9t$35u$
> > > J'utilise un programme en réseau qui va chercher les informations


sur
> une
> > > base de données Acces, MABASE.MDB
> > > Je voudrai que mon programme puisse copier mon fichier MABASE.MDB


pour
> en
> > > faire une sauvegarde, ceci même si un utilisateur du reseau utilise
le
> > > programme c'est à dire a ouvert MABASE.MDB. Avec FileCopy je n'ai


pas
> > > l'autorisation tant que les autres utilisateurs n'ont pas fermé leur
> > > programme. Je sais que cela peut se faire car j'ai en main un
programme
> > fait
> > > sous VB qui permet cela. Malheurusement je n'ai pas les sources.
> > >
> > > François
> > >
> > >
> >
> >
>
>