Hej,
Jag vill kopiera en rad i databasen och det löser jag genom att öppna ett recordset och hämta in fälten i variabler. Därefter infogar jag en ny rad med INSERT kommandot. Mitt problem är att jag vill ha NULL när strängen är tom. Om te x fältet "Lagledare" är tomt vill jag att den nya posten skriver NULL till databasen. För närvarande skickar den in en tom sträng istället för NULL.
Jag misstänker att det beror på tecken 'runt variabeln'
Jag kan ju inte ta bort ' ' eftersom det är ett textfält.
Som alternativ till INSERT kan jag använda RecordSet.AddNew och då fungerar det med NULL. Finns det något sätt att lösa med INSERT kommandot eller finns det ett bättre sätt att kopiera en rad i en databas (en del fält ska ha samma värde men inte alla).
Call Execute(_
"INSERT INTO tbl_Laginfo (" & _
"CompID," & _
"Lagnamn," & _
"Lagledare," & _
"KlassID" & _
") VALUES (" & _
CompID & "," & _
"'" & SQLCheck(Lagnamn) & "'," & _
"'" & SQLCheck(Lagledare) & "'," & _
SQLCheck(KlassID) & _
'")")
Funktionen som kontrollerar om variabeln innehåller något. Det kanske går att ordna här?
Function SQLCheck(strValue)
if isNULL(strValue) OR Len(strValue) < 1 OR (strValue) = "" then
SQLCheck = NULL
else
SQLCheck=Replace(strValue,"'","''")
End If
End Function