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.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.