23. oktober 2004 - 00:18Der er
13 kommentarer og 3 løsninger
Flytte data fra en tabel til en anden
Hvordan kan jeg flytte data fra en tabel til tabel til en anden; De data der skal flyttes er i parantes eks.: (data2). Det er det og ikke anden der skal flyttes over i en ny tabel. Data der står i tabelen er ren tekst og skal forblive det.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
ja nemlig. Jeg sidder og arbejder med at hente data fra tabel0 over i henholdsvis tabel1 og tabel2. Og tabel 0 har KUN et felt som de to andre også har - men skulle nu helst ende ud med hver deres data - data1 og data2
INSERT INTO Table2 ( felt1 ) SELECT Mid(Table1.felt1,InStr(Table1.felt1,"(")+1,InStr(Table1.felt1,")")-InStr(Table1.felt1,"(")-1) AS felt1 FROM Table1;
Nu er det sengetid, så hvis det ikke lige var det svar du søgte må du spørge igen =)
Jeg kan ikke få det til at virke skal det se ud som flg:
INSERT INTO Tabel2 ( felt1 ) SELECT Mid(Tabel1.felt1,InStr(Tabel2.felt1,"(")+1,InStr(Tabel1.felt1,")")-InStr(Tabel1.felt1,"(")-1) AS felt1 FROM Tabel0;
Tabel0 er den tabel hvor der hentes fra. Og tabel1 er den tabel, hvor det data der ikke står i parantes skal hen. Mens der i tabel2 skal stå det i parantes
Opret en ny formular i databasen. Formularen skal ikke baseres på nogle tabeller. Vælg designvisning - indsæt en knap fra værktøjskassen. Højreklik på denne knap - vælg egenskaber(Properties) - hændelsesegenskaber: Ved klik på knappen - vælg generer hændelse via kodegenerator.
Indsæt denne kode via udklipsholder - og tilpas evt. knappens navn - samt evt. tabelnavnene. Gem koden - gå til formularvisning og klik på knappen
Koden er som følger: ==================== Option Compare Database Option Explicit
Const basisTabel = "tabel0" 'navn t/ bestående tabel Const uptabel = "tabel1" 'navn t/tabel til text uden ( ) Const mptabel = "tabel2" '- - - - med ( )
Dim db, tabA, tabB, tabC Dim up, mp Private Sub Kommandoknap0_Click() 'SKAL evt rettes Dim f Set db = CurrentDb Set tabA = db.OpenRecordset(basisTabel) Set tabB = db.OpenRecordset(uptabel) Set tabC = db.OpenRecordset(mptabel)
For f = 1 To tabA.RecordCount With tabA adskil .Fields(0) opdaterTabel tabB, up opdaterTabel tabC, mp
.MoveNext End With Next f
MsgBox ("Adskillelsen er udført") End Sub Private Sub opdaterTabel(tabx, txt) With tabx .AddNew .Fields(0) = txt .Update End With End Sub Private Sub adskil(txt) Dim p1, p2, rtxt p1 = InStr(txt, "(") p2 = InStr(txt, ")")
mp = Mid(txt, p1 + 1, p2 - (p1 + 1)) up = LTrim(Mid(txt, 1, p1 - 1) + Mid(txt, p2 + 1)) End Sub
Nej hvis din tabel hedder tabel0 hvor data'ene kommer fra skal det se således ud:
INSERT INTO Tabel2 ( felt1 ) SELECT Mid(Tabel0.felt1,InStr(Tabel0.felt1,"(")+1,InStr(Tabel0.felt1,")")-InStr(Tabel0.felt1,"(")-1) AS felt1 FROM Tabel0;
Og for at få data i tabel1:
INSERT INTO Tabel1 ( felt1 ) SELECT Mid(1,InStr(Tabel0.felt1,"(")-1) AS felt1 FROM Tabel0;
Mange tak for jeres indsats. Jeg deler pointene lige:
Synes godt om
Ny brugerNybegynder
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.