Avatar billede puppetmaster Nybegynder
09. marts 2004 - 08:59 Der er 9 kommentarer og
3 løsninger

Kopiere en sammenkædedet tabel

Hvordan kopierer jeg bedst en tabel fra en frontend/backend Access database til en anden frontend/backend ditto? Tabellerne er jo sammenkædedet og en KopierObjekt makro virkede ikke efter hensigten.
Avatar billede trer Nybegynder
09. marts 2004 - 09:02 #1
Lav en

SELECT * INTO nytabel FROM oldtabel

i Query analyser - husk at angive indeks efterfølgende.

Link så den nye tabel i din frontend.
09. marts 2004 - 09:13 #2
Hvorfor åbner du ikke bare den nye backend og importerer tabellen fra den gamle backend?

Eller skal det være en aktivitet, som kan kaldes igen og igen?
Avatar billede puppetmaster Nybegynder
09. marts 2004 - 09:16 #3
trer, den har jeg godt nok ikke kigget på.
Thomas, ja, den skal kunne kaldes igen og igen.
Det er 4 tabeller, som bliver opdateret i Navision, som er indsat som sammenkædede tabeller i den ene frontend, som skal kopieres til "den anden" backend. Jeg har prøvet lidt forskelligt, men får kopieret KÆDEN i stedet for! :(
Avatar billede puppetmaster Nybegynder
09. marts 2004 - 09:16 #4
trer: query analyser, er det ikke et SQL Server værktøj?!
Avatar billede trer Nybegynder
09. marts 2004 - 09:18 #5
jep.  du har kun msde?

så kan du bruge OSQL eller blot lave et lille vb script der fyrer ovenstående sql af.
Avatar billede puppetmaster Nybegynder
09. marts 2004 - 09:19 #6
Jeg skal bruge noget hen ad dette eksempel:

Dim appAccess As New Access.Application 'declare this in your declaration seciton

Private Sub Command1_Click()
    appAccess.OpenCurrentDatabase ("Path+Norhtwind.mdb")  'file from which you need to export
    appAccess.DoCmd.TransferDatabase acExport, "Microsoft Access", "Path + Biblio.mdb", acTable, "customer", "Copy Of customer"
End Sub
Avatar billede puppetmaster Nybegynder
09. marts 2004 - 09:20 #7
Jeg skal kunne overføre tabellen UDEN SQL Server værktøjer.
09. marts 2004 - 09:22 #8
Du kan klare det hele i SQL'en:

SELECT DinTabel.* INTO DinTabel IN 'C:\Dokumenter\NyDatabase.mdb'
FROM [C:\Dokumenter\GlDatabase.mdb].DinTabel;
Avatar billede trer Nybegynder
09. marts 2004 - 09:24 #9
Lav en funktion a la denne:

dim con
set con = createobject("adodb.connection")
con.open "<ado connection string til din sql server>"
con.exec "select * into nytabel from gammeltabel"
con.exec "alter table add primary key bla bla ba"
con.exec "create index ix_nytabel on nytabel(kolonne)"
...
...
con.close
Avatar billede puppetmaster Nybegynder
09. marts 2004 - 09:57 #10
Er endt med at lave 4 forespørgsler, som kan overføre en tabel hver. Suk. Nå, point skal I da have.
09. marts 2004 - 10:01 #11
Nå...det er vel heller ikke så slemt! 4 liner kode for at lave 4 kopieringer!
Du kan jo bare lave en stump kode eller en makro (sagde jeg virkelig fy-ordet?) som afspiller alle fire på en gang uden advarsler.
Avatar billede puppetmaster Nybegynder
09. marts 2004 - 10:17 #12
:)
Jeg ville da gerne være sluppet med én forespørgsel, som kunne overføre alle 4 tabeller på én gang, men det er der vel ingen database systemer der kan, vel?
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