damedom41
Messages postés79Date d'inscriptionmercredi 14 avril 2010StatutMembreDernière intervention 2 août 2014
-
12 juin 2014 à 16:24
damedom41 -
24 juin 2014 à 12:49
Je code en VBA sous ACCESS.
Je cherche à sauvegarder la base à partir de la base ouverte active.
Lorsque j'utilise ce type de code
Public Sub copie_base()
Dim dbficori, dbficdes
dbficori = dbparpth & "BOULPAT_V0.accdb"
dbficdes = dbparpts & "BOULPAT_" & strdat(Date) & "_" & strtime(Time) & ".accdb"
FileCopy dbficori, dbficdes
On Error GoTo copie_base_err
MsgBox ("copie " & dbficdes & " effectuée ")
copie_base_err:
Exit Sub
End Sub
J'ai une erreur 70 "permission denied", semble-t-il parce que ma base est ouverte, puisque lorsque je lance la procédure d'une autre base vers une sauvegarde cela foncitonne.
J'ai donc été sur le net et ai trouvé ceci :
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)
MsgBox ("sourcefile " & SourceFile)
MsgBox ("destfile " & DestFile)
'---------------------------------------------------------------
' 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
If Dir(SourceFile) = "" Then
MsgBox Chr(34) & SourceFile & Chr(34) & _
" is not valid file name."
Else
result = apiCopyFile(SourceFile, DestFile, False)
End If
End Sub
Cette solution fonctionne lorsque je passe les paramètres "en dur" :
Public Sub test_copyfile()
Dim dbficori, dbficdes As String
Dim result As Long
'dbficori = "C:\BOULPAT\BOULPAT_V0.accdb"
'dbficdes = "C:\BOULPAT\BOULPAT_VO\BOULPAT_BAK.accdb"
CopyFile "c:\boulpat\boulpat_v0.accdb", "c:\boulpat\boulpat_sauv\toto.accdb"
'Call CopyFile(dbficori, dbficdes)
MsgBox result
End Sub
mais me jette à la compil avec une erreur byref dès que j'utilise dbficori, dbficdes et call copyfile(dbficori, dbficdes)
Pourriez vous m'aider s'il vous plaît
24 juin 2014 à 12:49