Forum - Questions générale - Sujet n°744

[]
Nombre de membres 1 membre
Connectés : ( personne )
 

La Charte du Forum - La Charte du Forum

Forum - Forum
Questions générale - Questions générale


clos par 3Stone le 11/05/2015 : 18:00  Sujet n° 744  Copier un base de données access 2007 à partir d'un code vba

le 21/04/2015 : 17:32
par Firmin

Anonyme

visiteur

Je ne sais pas comment copier une base de données access 2007 dans un répértoire donné en le renommant en vba. Pour ce faire, j'aimerai utiliser la base courante access 2007 et de là copier une base quelconque access externe dans un repertoire.

Merci de m'aider à m'en sortir 

 sujet clos  Haut
Réponse n° 1
--------
le 21/04/2015 : 21:07
par 3Stone

3Stone

Administrateur

Bonjour,

En général, lorsque je dois copié un base, j'en profite pour la compacter...
Alors, en utilisant DAO (cocher la référence DAO) :
 
Code :
DBEngine.CompactDatabase strBase, strDest
 Ou alors, on peut utiliser la fonction suivant :

 
Code :
Function CopyFile(ByVal source$, ByVal Destination$) As Long
Dim Index1 As Integer, NumBlocks As Integer
Dim FileLength As Long, LeftOver As Long, AmountCopied As Long
Dim SourceFile As Integer, DestFile As Integer
Dim FileData As String
Dim RetVal As Variant
Const BlockSize = 32768
On Error GoTo Err_CopyFile
' Remove the destination file.
DestFile = FreeFile
Open Destination For Output As DestFile
Close DestFile
' Open the source file to read from.
SourceFile = FreeFile
Open source For Binary Access Read Shared As FreeFile
' Open the destination file to write to.
DestFile = FreeFile
Open Destination For Binary As DestFile
' Get the length of the source file.
FileLength = LOF(SourceFile)
' Calculate the number of blocks in the file and left over.
NumBlocks = FileLength \ BlockSize
LeftOver = FileLength Mod BlockSize
' Create a buffer for the leftover amount.
FileData = String$(LeftOver, 32)
' Read and write the leftover amount.
Get SourceFile, , FileData
Put DestFile, , FileData
' Create a buffer for a block to be read.
FileData = String$(BlockSize, 32)
' Read and write the remaining blocks of data.
For Index1 = 1 To NumBlocks
' Read and write one block of data.
Get SourceFile, , FileData
Put DestFile, , FileData
Next Index1
Close SourceFile, DestFile
CopyFile = AmountCopied
Bye_CopyFile:
Exit Function
Err_CopyFile:
CopyFile = -1 * Err
Resume Bye_CopyFile
End Function
 
et faire :
 
Code :
CopyFile "C:/le/chemin/complet/labase.mdb", "D:/LaBase.mdb"
 Cordialement
Pierre (3Stone)
  clos par 3Stone le 11/05/2015 : 18:00  Haut
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut