Avatar billede alf149 Nybegynder
18. april 2006 - 10:09 Der er 7 kommentarer og
2 løsninger

split tekst felt til nye records i tabel

Hej

jeg har følgende i en tabel
guppenr og initialer
men initialer er flere initialer adskilt med ,
eks: MB1, VB2, VT4

det jeg ønsker er

gruppenummer, initialer

jar har en anden tabel hvor gruppenummer er nøgle hvor jeg har en masse oplysninger om gruppen

jeg har en tredie tabel hvor jeg har en masse oplysninger om personen hvor initialer er nøgle

villger kunne ende med en forespørgelse hvor jeg har gruppe div gruppe oplysninger og initialer og en masser medarbejder oplysninger.

det skal være i "ren" access dvs. jeg bruger ikke asp eller noget til web. er newbie i access.

Håber dette er forståeligt.
Avatar billede fdata Forsker
18. april 2006 - 11:31 #1
Opret et nyt modul og indsæt nedenstående kode i det.

'-------------------------------------
Sub SplitIni()
  Dim GrpRst As Recordset
  Dim Initialer As String
  Dim a
  Dim i As Integer
   
  Set GrpRst = CurrentDb.OpenRecordset("GrpIniMange")
  With GrpRst
    Do Until .EOF
      Initialer = .Fields("Ini")
      a = Split(Initialer, ",")
      For i = 0 To UBound(a)
        DoCmd.SetWarnings False
        DoCmd.RunSQL ("INSERT INTO GrpIni(Grp,Ini) SELECT '" & .Fields("Grp") & "','" & Trim(a(i)) & "'")
        DoCmd.SetWarnings True
      Next i
      .MoveNext
    Loop
    .Close
  End With
  Set GrpRst = Nothing
End Sub
'-------------------------------------

Erstat GrpIniMange med navnet på din tabel
Erstat GrpIni med den nye tabel (resultatet). Husk at oprette den først!

Kør koden med F5
Avatar billede alf149 Nybegynder
18. april 2006 - 13:17 #2
tak for det meget hurtige svar

Men jeg har lige lidt endnu.
Først havde jeg selvfølgelig glemt at fortælle at den også kunen være tom i initial feltet... men jeg lavede selv en tabeloprettelses ting der kun tager dem ud hvor initial feltet ikek er tomt.

men nu kommer den med denne fejl 3265 i line
DoCmd.RunSQL ("INSERT INTO GrpIni(Grp,Ini) SELECT '" & .Fields("Grp") & "','" & Trim(a(i)) & "'")

Hvad skyldes det?

Jeg har lavet en tabel "GrpIni" med Grp og ini som felter er det forkert ? elelr hvordan skal den ekstra tabel laves ?

og kan man kører et modul med en makro?
mvh Rolf
Avatar billede fdata Forsker
18. april 2006 - 14:32 #3
M.h.t. fejlen: Det er lidt svært at gætte på, hvad problemet er; men hvis du placerer musen over .Fields("Grp") og a(i), kan du se, hvad de indeholder. Det kunne måske give et fingerpeg.

Din nye tabel skal bare indeholde de to felter Grp og Ini - begge tekst felter.
Hvis du vil have at gruppen er numerisk, er det her problemet er. Så skal du ændre INSERT sætningen til:
  DoCmd.RunSQL ("INSERT INTO GrpIni(Grp,Ini) SELECT " & .Fields("Grp") & ",'" & Trim(a(i)) & "'")
(her er der ikke plinger om gruppen)

.. og ja, man kan sagtens køre kode fra en makro. Måske ikke et "modul" som du skriver; men en funktion. Du retter bare Sub til Function i din kode (husk også End Sub). Så kan du kalde funktionen med makrokommandoen AfspilKode. Ud for funktionsnavn skriver du f.eks. SplitIni()
Avatar billede alf149 Nybegynder
18. april 2006 - 14:57 #4
tak for hjælpen det kører nu. Har så nogele andre problemer, men nu leger jeg lige vider selv først....

Jeg har accepteret dit svar men kan ikek se om du har fået point ?
Avatar billede fdata Forsker
18. april 2006 - 15:19 #5
Super.
M.h.t. point ser det ikke ud som om, det er lykkedes. Prøv igen.
Der står Accepteret ved svaret, når alt er ok.
Avatar billede alf149 Nybegynder
18. april 2006 - 15:30 #6
man skal åbenbart acceptere på et svar og det nyeste er en kommentar
gider du lave et svar ?
Avatar billede fdata Forsker
18. april 2006 - 15:33 #7
Du burde kunne vælge mellem de indkomne svar i en lille dropdown liste og så vælge Accepter. Her får du et nyt svar.
Avatar billede alf149 Nybegynder
18. april 2006 - 17:15 #8
Sådan nu har du fået point, virkede ikek i Firefox ???
Avatar billede fdata Forsker
18. april 2006 - 17:20 #9
Alt i orden. Tak for point.
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