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?
