Avatar billede avalon116 Nybegynder
14. oktober 2005 - 13:12 Der er 14 kommentarer og
1 løsning

variabelt stinavn i tabeloprettelsesforespørgsel

Jeg har en database Data.mdb, der ligger under c:\Data. I denne database er der en tabelopretttelsesforesp. som opretter en tabel i en fremmed database, som ligger under c:\Data\Fremmed:

SELECT Felt1 AS FeltFremmed INTO TabelFremmed IN 'c:\Data\Fremmed\DatabaseFremmed.mdb'
FROM Tabel;

Jeg vil gerne have, at placeringen af den fremmede database i stedet skal være uafhængig af hvor databaserne ligger. Således at hvis min database Data.mdb bliver flyttet til fx. d-drevet, så skal tabellen gemmes under 'd:\Data\Fremmed\DatabaseFremmed.mdb'

Dvs. det jeg er ude efter er en anden måde at angive, at tabellen skal gemmes under ..\Data\Fremmed\DatabaseFremmed.mdb

Ideer?
Avatar billede avalon116 Nybegynder
14. oktober 2005 - 13:21 #1
...og jeg vil helst undgå at lave den i VB.
Avatar billede kabbak Professor
14. oktober 2005 - 14:40 #2
SELECT Felt1 AS FeltFremmed INTO TabelFremmed IN '\Data\Fremmed\DatabaseFremmed.mdb'
FROM Tabel;

prøv
Avatar billede avalon116 Nybegynder
14. oktober 2005 - 14:46 #3
det virker ikke, den kan ikke finde stien - den tolker det som c:\Data\Fremmed\DatabaseFremmed.mdb
Avatar billede kabbak Professor
14. oktober 2005 - 14:49 #4
Er stien oprettet på D drevet

Hvis du prøver mens din base ligger på C, burde den også forstå det som c:\Data\Fremmed\DatabaseFremmed.mdb

Hvis din base ligger på C, så burde den også forstå det som d:\Data\Fremmed\DatabaseFremmed.mdb
Avatar billede kabbak Professor
14. oktober 2005 - 14:50 #5
sidste linie skulle være:
Hvis din base ligger på D, så burde den også forstå det som d:\Data\Fremmed\DatabaseFremmed.mdb
Avatar billede avalon116 Nybegynder
14. oktober 2005 - 14:52 #6
ja problemet er, at det ikke ligger lige under c (eller d) men nærmere sådan her:
c:\mappe1\mappe2\Data\Fremmed\DatabaseFremmed.mdb

og ved brug af:
SELECT Felt1 AS FeltFremmed INTO TabelFremmed IN '\Data\Fremmed\DatabaseFremmed.mdb'
FROM Tabel;

tolker den det som:
c:\Data\Fremmed\DatabaseFremmed.mdb
Avatar billede avalon116 Nybegynder
14. oktober 2005 - 14:55 #7
kan man ikke i sql referere til den aktuelle sti? for så er problemet jo løst
Avatar billede kabbak Professor
14. oktober 2005 - 14:56 #8
Hvis det altid er et underbibliotek til der hvor din base ligger, så må dette gøre det
SELECT Felt1 AS FeltFremmed INTO TabelFremmed IN 'Fremmed\DatabaseFremmed.mdb'
FROM Tabel;

Altså din base ligger i .\..\data
og den anden ligger i .\..\data\Fremmed
Avatar billede avalon116 Nybegynder
14. oktober 2005 - 14:58 #9
Det er rigtig forstået, men det virker ikke
Avatar billede avalon116 Nybegynder
14. oktober 2005 - 14:59 #10
Kan man bruge "currentProject.Path" i sql?
Avatar billede kabbak Professor
16. oktober 2005 - 22:40 #11
du kan køre den fra en function


Public Function OpdaretFjerntabel()
strsql = "SELECT Felt1 AS FeltFremmed INTO TabelFremmed IN '" _
& CurrentProject.Path & "\Fremmed\DatabaseFremmed.mdb'FROM Tabel;"
DoCmd.RunSQL (strsql)
End Function
Avatar billede kabbak Professor
16. oktober 2005 - 22:41 #12
Public Function OpretFjerntabel()
strsql = "SELECT Felt1 AS FeltFremmed INTO TabelFremmed IN '" _
& CurrentProject.Path & "\Fremmed\DatabaseFremmed.mdb'FROM Tabel;"
DoCmd.RunSQL (strsql)
End Function
Avatar billede avalon116 Nybegynder
18. oktober 2005 - 09:20 #13
Ja det er nok den eneste mulighed så.

Du skal i hvert fald have tak for hjælpen.
Avatar billede avalon116 Nybegynder
18. oktober 2005 - 09:21 #14
Vil du ikke have points for ulejligheden...så smid lige et svar.
Avatar billede kabbak Professor
18. oktober 2005 - 10:06 #15
et svar ;-))
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