Avatar billede Slettet bruger
10. december 2004 - 15:06 Der er 7 kommentarer og
1 løsning

Lave kopi af anden db end den åbne

Jeg har en db som er linket til en anden db hvor dataerne ligger. Jeg vil gerne fra min db kunne lave et kopi af den db, som der er link til og hvor dataerne ligger. Hvordan?
10. december 2004 - 15:10 #1
For at få stien til din backend (den db, hvor data ligger) kan du bruge denne funktion (som placeres i et modul):

Public Function GetBackend() As String
    On Error Resume Next
    Dim tdef As TableDef
    Dim db As Database
    Set db = CurrentDb
    Set tdef = db.TableDefs("En eller anden sammenkædet tabel")
    GetBackend = Mid(tdef.Connect, 11)
End Function

Herefter kan du bruge filecopy til at kopiere denne fil til ny destination:

Filecopy Getbackend, "C:\nymappe\DinDb.mdb"
10. december 2004 - 15:11 #2
Ovenstående funktion kræver reference til DAO
Avatar billede Slettet bruger
13. december 2004 - 08:27 #3
Jeg har lavet en reference til DAO 3.51 (er 3.6 bedre?) og har kaldt modulet GetBackend. Jeg får bedskeden:

Compile error:
Expected variable og procedure, not module

God mandag morgen !~)
Avatar billede Slettet bruger
13. december 2004 - 08:28 #4
PS. Mit modul:

Option Compare Database

Public Function GetBackend() As String
    On Error Resume Next
    Dim tdef As TableDef
    Dim db As Database
    Set db = CurrentDb
    Set tdef = db.TableDefs("O:\Databaser\Vedligehold\Backend\BackendTabeller.mdb")
    GetBackend = Mid(tdef.Connect, 11)
End Function
Avatar billede Slettet bruger
13. december 2004 - 08:35 #5
Hov, jeg kan jo bare bruge filecopy lige ud af landevejen, men hvad er det så jeg har spurgt om og hvad har du svaret på?

Jeg brugte:
FileCopy "O:\Databaser\Vedligehold\Backend\BackendTabeller.mdb", "o:\databaser\vedligehold\backup\VedligeholdBackup.mdb"
13. december 2004 - 08:50 #6
Hvis du kender begge stier, bruger du selvfølgelig bare filecopy lige ud af landevejen :o)

Men jeg troede, at dit problem var, at du ikke altid kendte stien til backenden (hvis f.eks. databasen flyttes, er det jo ikke længere den samme sti). Derfor gav jeg dig en kode, som var dynamisk og som altid fandt den korrekte sti til backenden.

Men hvis du kan nøjes med den simple, så glem alt om min kode :o)


...som forøvrigt skulle se således ud:

Public Function GetBackend() As String
    On Error Resume Next
    Dim tdef As TableDef
    Dim db As Database
    Set db = CurrentDb
    Set tdef = db.TableDefs("Navn på en tabel")
    GetBackend = Mid(tdef.Connect, 11)
End Function
Avatar billede Slettet bruger
13. december 2004 - 08:59 #7
Aahhh... Tak for modulet..  !~)
13. december 2004 - 09:06 #8
Selv tak :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