24. juni 2005 - 13:37Der er
11 kommentarer og 1 løsning
importere fra database
jeg vil gerne importere nogle tabeller fra en anden database. Alle tabellerne (der har samme struktur) skal importeres til den samme tabel. Tabellernes navne (i den database der importeres fra) er årstal og i min database (som der skal importeres til) er der en anden tabel med kun ét felt. I dette felt er der er række poster (typisk 4) med fortløbende årstal (fx 1999, 2000, 2002, 2002).
Jeg vil importere de tabeller, der har samme navne som i tabellen med årstal.
Jeg vil bruge "DoCmd.TransferDatabase" men er usikker på hvordan jeg får den til at hente værdierne fra tabellen med årstal og så bruge dem?
Det må være noget med at tælle antallet af poster og så loope?
Jeg er ikke helt sikker på om spørgsmålet specifikt drejer sig om docmd.transferdatabase specifikt. men hvis ikke. Hvis du går til tables skærmbilledet, højreklikker og vælger import, vil du få en dialog til at importere og foretage evt feltmapninger igennem.
Personligt ville jeg nok linke (også ved højreklik) til den gamle db. Siden lave en query ovenpå de linkede tabeller som en enten insert eller create table type.
terry> samme layout men ikke samme navn. Tabellen jeg importerer til hedder "tIndivid" og de tabeller jeg inporterer fra hedder forskelllige årstal fx "1999". Den tabel der indeholder navnene på de tabeller jeg importerer fra hedder tStartår og rummer altså et antal poster med årstal, fx:
Private Sub cmd1_Click() Dim StartAar As Integer Dim AntalAar As Integer Dim Count Dim Individdata As String Dim strFilter As String Dim Aar As String Dim Database As String
'slet indholdet at tabellen tStartår og indsæt nye år DoCmd.SetWarnings False DoCmd.RunSQL "DELETE * from tStartår" StartAar = InputBox("Indtast nyeste statusår." & Chr(13) & "Status pr 31.12:", "Statusår", Year(Now) - 1) AntalAar = InputBox("Hvor mange års data skal anvendes?", "Antal år", 4) Count = AntalAar Do Until AntalAar = 0 DoCmd.RunSQL "INSERT into tStartår([Id],[Startår]) VALUES (" & AntalAar & "," & StartAar - AntalAar + 1 & ")" AntalAar = AntalAar - 1 Loop
'Slet indhold af tIndivid DoCmd.RunSQL "DELETE * from tIndivid"
'Åbner filbrowser så man kan vælge den database, der indeholder dataene strFilter = ahtAddFilterItem(strFilter, "Datafiler (*.mdb)", "*.MDB") Database = ahtCommonFileOpenSave( _ Filter:=strFilter, OpenFile:=True, _ DialogTitle:="Vælg database, der indeholder Individdata...", _ Flags:=ahtOFN_HIDEREADONLY)
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.