Hej Jag har inte testat men; gör om den till en integer i stället för bool då blir den 0 eller -1/1 och det brukar fungera bra i databasen. Tack Johan. Finns mycket att tänka på. Om t.ex en sträng innehåller ' kommer du få problem. Sant eller falskt
Jag har ett delikat problem som jag ej förstår. Jag skall uppdatera en access-databas med ett boolskt värde. ex från *Visula Basic 6.0 av Martin Omander Bonniers förlag'
enligt följande kodfragment
dim strSQl as String
Dim strSQL1 as String
dim minBool as Boolean
strSQL = "INSERT INTO tblUsers " & _
"( strLoginID, strLocation, strName, blnSysAdmin, strPassword) " & _
"VALUES (" & _
"'" & AddedUser.LoginID & _
"', '" & AddedUser.Location & _
"', '" & AddedUser.Name & _
"', "
minBool = CBool(AddedUser.SysAdmin)
strSQL1 = ", '" & AddedUser.Password & "');"
Debug.Print strSQL & minBool & strSQL1
dbUsers.Execute (strSQL & minBool & strSQL1)
Kör jag debuggern så är minBool antingen False eller True
men vid utskrift så är minBool Falskt eller Sant och då får jag följande felmeddelande vid Execute(,,,)
No value given for one or more required parameters.
Taclsam för tips
mvh
BengtSv: Sant eller falskt
/johan/Sv: Sant eller falskt
Det funkar,
En stor eloge till forumet det tog 50 minuter att få svar, Utmärkt.
mvh
BengtSv: Sant eller falskt
Jag skulle gjort på följande sätt:
Sub Test
Dim strSQl as String
strSQL = "INSERT INTO tblUsers " & _
"( strLoginID, strLocation, strName, blnSysAdmin, strPassword) " & _
"VALUES (" & _
SQLString(AddedUser.LoginID) & ", " & _
SQLString(AddedUser.Location) & ", " & _
SQLString(AddedUser.Name) & ", " & _
SQLBoolean(AddedUser.SysAdmin) & ", " & _
SQLString(AddedUser.Password & ");"
Debug.Print strSQL
dbUsers.Execute strSQL
End Sub
Public Function SQLBoolean(Value as variant) as String
If IsNull(Value) Then
SQLBoolean = "Null"
ElseIf Value Then
SQLBoolean = "True"
Else
SQLBoolean = "False"
End If
End Function
Public Function SQLString(Value as variant) as String
If IsNull(Value) Then
SQLString = "Null"
Else
SQLString = "'" & Replace(Value,"'","''") & "'"
End If