gemme GUID og bruge den igen
Jeg har en database hvor to tabeller er linkede med en GUID. Jeg skal oprette en linie i undertabellen inde fra en formular.En af de ting der skal skrives ned i undertabellen er naturligvis nøglefeltet. Følgende virker ikke:
Private Function SampleID(Key As Variant, SampleType, Conservation, Purpose, Recipient)
Dim cn As Connection
Dim rs As ADODB.Recordset
Dim temp As Integer
Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.Open SQLStringIndividualSample(StringFromGUID(Key)), cn, adOpenDynamic, adLockPessimistic
rs.AddNew
rs!IndividualSampleType = SampleType
rs!individualsampleship = "PA"
rs!ConservationMethod = Conservation
rs!Purpose = Purpose
rs!Recipient = Recipient
rs!KeyIndividualMeasure = Key
rs.Update
temp = rs!IndividualSampleID
rs.Close
Set rs = Nothing
SampleID = temp
End Function
Grunden til at det ikke virker er at formatet på Key er forkert. Jeg har også prøvet at skrive
rs!KeyIndividualMeasure = Me!txtKeyIndividualMeasure
for på den måde at læse nøglefeltet fra formularen.
Den Key der bruges som variable i funktionen er fundet som Me!txtKeyIndividualMeasure, altså læst fra formularen.
Hvad der derimod virker er følgende:
Private Function SampleID(Key As Variant, SampleType, Conservation, Purpose, Recipient)
Dim cn, cn2 As Connection
Dim rs, rs2 As ADODB.Recordset
Dim temp As Integer
Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset
Set cn2 = CurrentProject.Connection
Set rs2 = New ADODB.Recordset
rs.Open SQLStringIndividualSample(StringFromGUID(Key)), cn, adOpenDynamic, adLockPessimistic
rs2.Open SQLStringIndividualMeasure(StringFromGUID(Key)), cn2, adOpenStatic, adLockReadOnly
rs.AddNew
rs!IndividualSampleType = SampleType
rs!individualsampleship = "PA"
rs!ConservationMethod = Conservation
rs!Purpose = Purpose
rs!Recipient = Recipient
rs!KeyIndividualMeasure = rs2!KeyIndividualMeasure
rs.Update
temp = rs!IndividualSampleID
rs.Close
Set rs = Nothing
rs2.Close
Set rs2 = Nothing
SampleID = temp
End Function
Er der nogen der kender en måde at holde en GUID nøgle på så den kan skrives direkte ind i en tabel i stedet for at skulle lave det nummer.