Jag vill ha tomma fält (Tal) i min databas (Access). När du skall lägga in ett null-värde med en SQL-sats så ska du skriva strängen "null" som värde, dvs : Du kan inte spara tal som sträng. Du kan använda en generell funktion som även kan lagra toma värden:Tomma fält i databasen
Jag har följande kod som inte funkar. Får typblandningsfel!
tabell = "Verlista"
txt1 = Form55.etikVernr
tal1 = transKonto
If ardVal = "ja" Then
tal2 = Format(transTal, "#,##0.00")
Else
tal2 = Null
End If
SQL = "INSERT INTO " & tabell & "" _
& "(vernr,kontonr,debet)" _
& " VALUES('" & txt1 & "','" & tal1 & "','" & tal2 & "')"
Set rsLB = Conn.Execute(SQL)
Var ligger felet?
/GunnarSv: Tomma fält i databasen
<code>
tabell = "Verlista"
txt1 = Form55.etikVernr
tal1 = transKonto
If ardVal = "ja" Then
tal2 = "'" & Format(transTal, "#,##0.00") & "'" ' Sätt fnuttar runt värdet
Else
tal2 = "null" ' Strängen "null"
End If
SQL = "INSERT INTO " & tabell & "" _
& "(vernr,kontonr,debet)" _
& " VALUES('" & txt1 & "','" & tal1 & "'," & tal2 & ")" ' Tagit bort fnuttar runt tal2
Set rsLB = Conn.Execute(SQL)
</code>Sv: Tomma fält i databasen
<code>
Function SQLNumber(Value)
If IsNumeric(Value) Then
SQLNumber = Replace(Value, ",",".")
Else
SQLNumber = "Null"
End If
End If
</code>
Då kan du skriva det som:
<code>
tabell = "Verlista"
txt1 = Form55.etikVernr
tal1 = transKonto
If ardVal = "ja" Then
tal2 = Format(transTal, "#,##0.00")
Else
tal2 = Null
End If
SQL = "INSERT INTO " & tabell & " (vernr,kontonr,debet) " & _
"VALUES('" & txt1 & "'," & SQLNumber(tal1) & "," & SQLNumber(tal2) & ")"
Conn.Execute SQL
</code>