Avatar billede hekla Nybegynder
31. maj 2005 - 20:40 Der er 4 kommentarer og
1 løsning

Opdatere 100 felter i tabel vha recordseet

Jeg har op til hundrede CRT-målinger for hver person, og hver måling [CRT] står som en post i Tabel1, altså én måling pr. række. Målingerne er nummererede fra 1 - ca 100 i en separat kolonne[MaalingNr]. Der er i alt ca 66000 målinger.

Tabel1
[CPR] [Dato] [CRT] [MaalingNr]

Nu vil jeg gerne have målingerne [CRT] stillet op, så hver person får en post med 100 felter plus det løse, fordi det er nemmere, når man skal bruge data i statistikprogrammet.

Jeg har derfor lavet Tabel2 med felterne
[CPR] [Dato], [CTR1] [CRT2] [CRT3] [CRT4]... [CRT100]
hvor måling1 skal gemmes i CRT1, måling2 i CRT2 osv.

Jeg vil gerne fylde Tabel2 med følgende kode:

Function CRTTransform()

Dim dbs As Database
Dim Rst1 As Recordset
Dim Rst2 As Recordset
Dim StrCPR As String
Dim StrDato As Date
Dim StrCRT As Integer
Dim StrSQL As String
Dim strMaaling As String
Dim strFelt As String


Set dbs = CurrentDb
Set Rst1 = dbs.OpenRecordset("Tabel1")
Set Rst2 = dbs.OpenRecordset("Tabel2")

Rst1.MoveFirst

StrCPR = Rst1.Fields("CPR")
StrDato = Rst1.Fields("Dato")

Do Until Rst1.EOF
    StrSQL = "Insert into crtvertikal (cpr, dato) VALUES ('" & StrCPR & "', '" & StrDato & "')"
    DoCmd.RunSQL StrSQL
    strMaaling = Rst1.Fields("MaalingNr")
    strFelt = "CRT" & strMaaling
    StrCRT = Rst1.Fields("crt")

    Rst2.MoveLast
    With Rst2
        .Edit
        !strfelt = StrCRT 'Her går det galt. Jeg kan ikke bruge strengen strFelt som feltdefinition
        .Update
    End With
    Rst1.MoveNext

    Do Until strMaaling = 1
        strMaaling = Rst1.Fields("MaalingNr")
        strFelt = "CRT" & strMaaling
        StrCRT = Rst1.Fields("crt")
        With Rst2
            .Edit
            !strFelt = StrCRT 'Her går det selvfølgelig også galt
            .Update
        End With
        Rst1.MoveNext
    Loop
Loop
Rst1.Close
Rst2.Close
dbs.Close

Exit Function

End Function



Hvordan får jeg lov til at bruge min streng som feltdefinition? Eller findes der en anden brugbar metode?
Avatar billede hekla Nybegynder
31. maj 2005 - 20:43 #1
Fejl i eksemplet her:
    StrSQL = "Insert into crtvertikal (cpr, dato) VALUES ('" & StrCPR & "', '" & StrDato & "')"
Der skulle have stået:
    StrSQL = "Insert into Tabel2 (cpr, dato) VALUES ('" & StrCPR & "', '" & StrDato & "')"
Avatar billede terry Ekspert
01. juni 2005 - 19:45 #2
hi hekla, have you found a solution for your problem?
Avatar billede hekla Nybegynder
01. juni 2005 - 20:29 #3
Hej Terry
Nej jeg har stadig ikke fundet løsningen. Har du et forslag?
Avatar billede hekla Nybegynder
22. juni 2005 - 17:54 #4
Jeg løste det på den gove måde ved at sætte 100 opdateringsfunktioner ind efter hinanden med If StrMaaling = ## imellem.
Avatar billede hekla Nybegynder
22. juni 2005 - 17:54 #5
gove = grove
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