Avatar billede maria.cand Nybegynder
22. oktober 2004 - 09:43 Der er 8 kommentarer og
1 løsning

Back up til excel

Jeg har følgende kommando hvor jeg kan gemme en back up i excel - mit problem er at denne kode også smider en back up tabel - Jeg vil egentlig blot nøjes med at den gemmer back upen i excel!!

Private Sub lblCmdBackup_Click()
    Dim strFilter As String
    Dim strSaveFileName As String
   
    BackupTabel "tblEmner"
    BackupTabel "tblNoter"
   
    strFilter = ahtAddFilterItem(strFilter, "Excel filer (*.xls)", "*.xls")
    strSaveFileName = _
        ahtCommonFileOpenSave( _
            OpenFile:=False, _
            Filter:=strFilter, _
            DialogTitle:="Hvor skal backupen ligge?", _
            flags:=ahtOFN_OVERWRITEPROMPT Or ahtOFN_READONLY)
   
    If Len(strSaveFileName) > 0 Then
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "tblEmnerBackup", strSaveFileName, True
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "tblNoterBackup", strSaveFileName, True
        MsgBox "Backup er nu eksporteret til: " & vbCrLf & _
            strSaveFileName, vbInformation
    End If
End Sub
Avatar billede maria.cand Nybegynder
22. oktober 2004 - 10:07 #1
Public Sub BackupTabel(strTabelNavn As String)
    Dim strSQL As String
    Dim strSaveFileName As String
    Dim strFilter As String
   
    On Error GoTo Hell
   
    strSQL = "DROP TABLE " & strTabelNavn & "Backup"
    DoCmd.TransferDatabase acImport, "Microsoft Access", CurrentProject.FullName, acTable, strTabelNavn, strTabelNavn & "Backup", False

Hell:
    If Err.Number <> 0 Then
        MsgBox Err.Description
    End If
End Sub
Avatar billede sjap Praktikant
22. oktober 2004 - 10:07 #2
Så vidt jeg lige kan se, så sker der ikke noget i denne her funktion, men det er nok mere sandsynligt at back up tabellerne laves i funktionen BackupTabel - måske er der en mening med funktionsnavnet :)

Du kan evt. prøve at udkommentere de to BackupTabel linier:

'    BackupTabel "tblEmner"
'    BackupTabel "tblNoter"

og så lige huske at ændre:

        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "tblEmner", strSaveFileName, True
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "tblNoter", strSaveFileName, True

Så vil du få lavet overførslen til Excel uden at lave Backuptabeller.

MEN det kan jo tænkes at det ikke er alle data, der ligger i backuptabellerne - dvs. at BackupTabel-funktionen tjener et formål. Måske skulle du lige kopiere BackupTabel-funktionen herud, så vi kan se hvad den foretager sig.
Avatar billede sjap Praktikant
22. oktober 2004 - 10:08 #3
OK, du forudså lige mit spørgsmål :0) (sød on error ...)
Avatar billede sjap Praktikant
22. oktober 2004 - 10:14 #4
Så vidt jeg kan se, så laver BackupTabel-funktionen blot en kopi, så mit tidligere forslag skulle virke.
Avatar billede maria.cand Nybegynder
22. oktober 2004 - 10:18 #5
Jeg har prøvet og det virker - det giver da ikke problemer at den laver en kopi - i princippet troede jeg bare man kunne overføre!!

Koden er nu -Private Sub lblCmdBackup_Click()
    Dim strFilter As String
    Dim strSaveFileName As String
   
    'BackupTabel "tblEmner"
    'BackupTabel "tblNoter"
   
    strFilter = ahtAddFilterItem(strFilter, "Excel filer (*.xls)", "*.xls")
    strSaveFileName = _
        ahtCommonFileOpenSave( _
            OpenFile:=False, _
            Filter:=strFilter, _
            DialogTitle:="Hvor skal backupen ligge?", _
            flags:=ahtOFN_OVERWRITEPROMPT Or ahtOFN_READONLY)
   
    If Len(strSaveFileName) > 0 Then
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "tblEmner", strSaveFileName, True
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "tblNoter", strSaveFileName, True
        MsgBox "Backup er nu eksporteret til: " & vbCrLf & _
            strSaveFileName, vbInformation
    End If
   
End Sub




Ser det rigtig ud??
Avatar billede sjap Praktikant
22. oktober 2004 - 10:44 #6
Ja det ser rigtigt ud. Hvis det også virker efter hensigten, kan du også helt fjerne

    'BackupTabel "tblEmner"
    'BackupTabel "tblNoter"

Du har også ret: Man kan godt bare overføre. Der kan selvfølgelig godt være en grund til at lave en intern backup først (selvom jeg ikke lige kan komme på nogen), men der SKAL også være en grund - ellers er det bare spild af tid.
Avatar billede maria.cand Nybegynder
22. oktober 2004 - 11:00 #7
Du mener en grund til at rette det?? - det virker jo fint og det kan vel ikke ødelægge noget;-)
Avatar billede maria.cand Nybegynder
22. oktober 2004 - 11:00 #8
Husk at smid et svar - ellers får du ingen point;-)
Avatar billede sjap Praktikant
22. oktober 2004 - 11:29 #9
"Du mener en grund til at rette det?? ..." - Det er måske lidt forvirrende, men det var faktisk en kommentar til din kommentar øverst kl. 10.18.00.

Jamen så smider jeg da et svar :0)
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