Avatar billede magerlin Nybegynder
18. januar 2005 - 08:44 Der er 10 kommentarer og
1 løsning

module ProcedureName? What is

Hi guys, Danish is fine as well.
I have found this great code which should make it possible to make a backup of my DB when open, place it in a diferent folder, zip it and ad date and time stamp to the filename. I have entered the code in a module and whant to run it from a button. The problem is to assign the module to the button. <I made a macro that opens module but then I get to vba design view. I think it is because I haven't entered a procedure name. I tried but it apears That I don't know what a procedure name is.
The first lines of the module is:

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public Function BackupAndZipittoC()

Hope this is what U need to help me out. Help me to know what procedurename is? Please.
18. januar 2005 - 08:46 #1
Du kan enten skrive således i VBA på knappens VedKlik-hændelse:
call BackupAndZipittoC

eller skrive således direkte på VedKlik-Egenskaben (i egenskabsarket)
=BackupAndZipittoC()
18. januar 2005 - 08:48 #2
btw, kunne man ikke få lov at se koden (evt på mail)? Det lyder da interessant :o)
Avatar billede magerlin Nybegynder
18. januar 2005 - 09:17 #3
Selvfølgelig kan du få lov at se koden. Jeg sender den senere (har lavet det som en task) men skal lige have det her til at spille først. ! Det funker nemlig ikke helt.
Modulet har samme navn son funktionen skal den have det eller er det ligegyldigt, eller må den ikke have det.

Private Sub Command15_Click()
    Call BackupAndZipittoC
End Sub
Giver følgende fejl
Complie error:
Expectred variable or procedure, not module

=BackupAndZipittoC() - Direkte i properties på On Click
Giver følgende fejl
The expression you entered has a function name that microsoft access cant find

Er det fordi Modulet ligger for sig selv, og ikke under eller som en del af (eller hvad man nu siger, er ikke så er faren med vba) formen hvorpå knappen er?
18. januar 2005 - 09:19 #4
nej, modulet må IKKE hedde det samme som en eksisterende funktion.

Se om det ikke løser alle problemer?
18. januar 2005 - 09:21 #5
koden kan enten ligge på en formular (men så virker den kun, når formularen er åben) eller i et modul.

Jeg plejer at lægge alle funktioner, som ikke indeholder order Me eller andre referencer til den aktuelle formular, i moduler, således at de er tilgængelige hele tiden.
Avatar billede magerlin Nybegynder
18. januar 2005 - 09:41 #6
Super nu eksekverer den modulet, men der er noeget der ikke spiller helt: Jeg poster det her så alle kan få glæde af det. Det er jo det der er hele ideén med sådan et forum :-)
Jeg får fejl på: Public Funktion makeres med gul og Dim fso As FileSystemObject med blåt

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public Function BackupAndZipittoC()

'This function will allow you to copy a db that is open,
'rename the copied db and zip it up to anther folder.

'You must set a reference to the 'Microsoft Scripting Runtime' for the CopyFile
piece to work!
'You must have winzip installed
'Thanks to Ricky Hicks and G Hudson for the .CopyFile code

Dim fso As FileSystemObject

Dim sSourcePath As String
Dim sSourceFile As String
Dim sBackupPath As String
Dim sBackupFile As String

sSourcePath = "C:\Data\adata\Stock record\Hoofprint\"
sSourceFile = "Stock _be.mdb"
sBackupPath ="C:\Hoofprint\Backups\"
sBackupFile = "Backupstock_" & Format(Date, "mmddyyyy") & "_" & Format(Time,
"hhmmss") & ".mdb"

Set fso = New FileSystemObject
fso.CopyFile sSourcePath & sSourceFile, sBackupPath & sBackupFile, True
Set fso = Nothing

Dim sWinZip As String
Dim sZipFile As String
Dim sZipFileName As String
Dim sFileToZip As String

sWinZip = "C:\Program Files\WinZip\WinZip32.exe" 'Location of the WinZip program
sZipFileName = Left(sBackupFile, InStr(1, sBackupFile, ".", vbTextCompare) - 1)
& ".zip"
sZipFile = sBackupPath & sZipFileName
sFileToZip = sBackupPath & sBackupFile

Call Shell(sWinZip & " -a " & sZipFile & " " & sFileToZip, vbNormalFocus)
MsgBox "Backup is proceeding. This routine can take up to 10 seconds to
complete"
Sleep 10000

If Dir(sBackupPath & sBackupFile) <> "" Then Kill (sBackupPath & sBackupFile)
Beep
MsgBox "Backup was successful and saved @ " & Chr(13) & Chr(13) & sBackupPath &
Chr(13) & Chr(13) & "The backup file name is " & Chr(13) & Chr(13) &
sZipFileName, vbInformation, "Backup Completed"



End Function
18. januar 2005 - 10:23 #7
Ja, Filesystemobject duer kun, hvis du har den rigtige reference. Og jeg ved faktisk ikke hvilken reference man skal have. I stedet kan du ændre disse linier:

Dim fso As FileSystemObject
ændres til
Dim fso As Object

Set fso = New FileSystemObject
ændres til
Set fso = CreateObject("Scripting.FileSystemObject")

Prøv, hvor langt du når med det?!
Avatar billede magerlin Nybegynder
18. januar 2005 - 12:57 #8
Jeg når til complete"" (står lige over Sleep 10000). Complete er markeret med blåt,
og fejl medelelsen siger:

sub or function not defined.
18. januar 2005 - 13:29 #9
Complete skal jo også op i slutningen af forrige linie. Hvis du har kopieret koden andetsteds fra, så har der måske sneget sig et linieskift ind.
MsgBox "Backup is proceeding. This routine can take up to 10 seconds to complete"
Avatar billede magerlin Nybegynder
18. januar 2005 - 13:57 #10
Tusind tak for din hjælp. Det spiller nu. Der var godtnok noget med mine paths men det virker med C:\ så kan det også køre på den maskine det skal.
18. januar 2005 - 13:59 #11
Super :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester