Copy maken via opdrachtknop lukt niet.

Status
Niet open voor verdere reacties.

willyv28

Gebruiker
Lid geworden
16 apr 2009
Berichten
120
Met onderstaande opdracht lukt het niet een kopie te maken van mijn database naar mijn drive C:\ , ik krijg steeds een de melding "De backup is mislukt".


Private Sub Kopie_Click()

On Error GoTo fout

Dim fileObj As Object
Dim strBestandNaam As String
Dim strBackupNaam As String
Dim msg As Integer
'Dim fout As String

strBestandNaam = "Facturatie BJ 2010-2011.mdb"
strBackupNaam = Format$(Now(), "yyyymmdd") & strBestandNaam

strBestandNaam = CurrentProject.Path & "\" & strBestandNaam
strBackupNaam = "c:\" & strBestandNaam
Set fileObj = CreateObject("scripting.filesystemobject")
fileObj.copyfile strBestandNaam, strBackupNaam, True

msg = MsgBox("De backup is gelukt!")

Exit_Kopie_Click:
Exit Sub

fout:
MsgBox "De backup is mislukt!", vbCritical

End Sub
 
Zet onder het label Fout: ook eens het volgende:
msgbox Err.Description

Dan kun je zien welke foutmelding hij precies geeft.
 
Bedankt voor de reactie. Krijg de foutmelding "Ongeldig bestandsnaam of ongeldig bestandsnummer". Ik zie de fout niet of ontbreekt die ergens anders nog?
 
Er is dus kennelijk ergens een bestands- of padnaam niet in orde.
Toon dus ook eens hoe die eruit zien:

Msgbox strBestandNaam
Msgbox strBackupNaam
 
Mijn Bestandnaam = Facturatie BJ 2010-2011
Bij Backupnaam staat: Format$(Now(), "yyyymmdd") & strBestandNaam
Is dat niet voldoende?
 
Als je dat even doet op de manier zoals in mijn vorige reactie dan kun je de vertaling zien en zie je vast wel wat er aan mis is.
 
Beide zijn hetzelfde uitgezonderd dat er bij de Backupnaam C:\ voor staat gevolgd door F:\Mijn Documents\Harelgas\Facturatie\Facturatie BJ 2010-2011 en dat is hetzelfde als de bestandnaam. Mij F drive is wel een stick zou het dat kunnen zijn?
 
Volgens je beschrijving staat er dus het volgende:
C:\F:\Mijn Documents\Harelgas\Facturatie\Facturatie BJ 2010-2011

Dat is uiteraard geen geldig pad.
 
Laatst bewerkt:
Ik heb het vanaf de D: geprobeerd en krijg dezelfde meldingen.
 
CurrentProject.Path & "\" & strBestandNaam bevat ook een drive letter.
Daarna plak je er nog een keer C:\ voor.
Dat gaat natuurlijk nooit goed.
 
C:\ is de drive waar de backup naartoe moet. Wat moet ik er dan zetten?
 
Als je het bestand F:\Mijn Documents\Harelgas\Facturatie\Facturatie BJ 2010-2011.mdb naar de root van je C: schijf wilt hebben zul je ervoor moeten zorgen dat je alleen de bestandsnaam Facturatie BJ 2010-2011.mdb overhoud bij het schrijven naar de C: schijf.

Dus, waar vandaan: F:\Mijn Documents\Harelgas\Facturatie\Facturatie BJ 2010-2011.mdb
En waar naar toe: C:\Facturatie BJ 2010-2011.mdb
 
Alvast bedankt vor de veelvuldige reactie, ik probeer de PM verder. Groeten, Willy.
 
Je kunt op de volgende manier de bestandsnaam uit een compleet pad extraheren.

Code:
Sub Test()
    Dim pad As String
    pad = "F:\Mijn Documents\Harelgas\Facturatie\Facturatie BJ 2010-2011.mdb"
    MsgBox GetFilenameFromPath(pad)
End Sub


Function GetFilenameFromPath(path As String)
    Dim PathName() As String
    
    PathName = Split(path, "\")
    GetFilenameFromPath = PathName(UBound(PathName))
End Function
In de message box zal dan staan: Facturatie BJ 2010-2011.mdb
Ik heb er een functie van gemaakt zodat deze makkelijk vaker kan worden gebruikt.
Ik ga er vanuit dat je dit wel in je eigen programma weet toe te passen volgens het voorbeeld in de Sub Test.
 
Laatst bewerkt:
Zo even een vraag als niet Excel-expert: Ik zie spaties staan in de mapnamen en bestandsnamen.
Is dat misschien een reden voor (de) opslagproblemen? Moeten daar niet speciale maatregelen bij genomen worden in VBA om dergelijke bestanden goed op te slaan?

Tijs.
 
Een goeie opmerking van je maar dat is niet zondermeer nodig.
Het is afhankelijk van het Operating Systeem.
In Windows 7 (NTFS) zijn spaties in pad- en bestandsnamen toegestaan.
 
Spaties in bestandsnamen zijn al veel langer toegestaan in het besturingssysteem (xp, vista, etc.)
Waar het mij om ging is of in VBA het opslaan van dergelijke bestanden wel goed verloopt. In batch-bestanden krijg je er (bijv.) problemen mee als er geen "-tekens omheen staan.

Voorbeeld (batch-bestand):
copy c:\documents and settings\tijs\bureaublad\whatever.zip c:\
gaat altijd fout, maar
copy "c:\documents and settings\tijs\bureaublad\whatever.zip" c:\
gaat goed (vooropgesteld dat het bestand whatever.zip bestaat in de bron-map, natuurlijk).

Tijs.
 
Laatst bewerkt:
Ik heb er zelf vanuit VBA nog geen problemen mee gehad maar dat zou ook met de VBA versie te maken kunnen hebben.
Vanuit batchfiles inderdaad wel en moet je er rekening mee houden er "-tekens omheen te zetten.
Het probleem van willy is dat de variabele voor de doelmap de tekst C:\F:\Mijn Documents\Harelgas\Facturatie\Facturatie BJ 2010-2011 bevat.
Dat is uiteraard een onjuist pad.
 
Laatst bewerkt:
@edmoor: Ok, dan is mijn vraag beantwoord: VBA gaat blijkbaar goed om met map-/bestandsnamen met spaties erin, daar zijn geen aparte (programmeer-)maatregelen bij nodig.

Bedankt! :)

Tijs.
 
Bedankt Edmoor, ik zal het morgen verder een proberen te verwerken of het mij lukt weet ik niet, maar geef hier nog wel een seintje. Zo sterk hierin ben ik niet. Willy.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan