Jag får följande felmeddelande när jag försöker lägga in data i en accessdatabas. Vet inte om detta hjälper men i hälpen om Type står att: Vad händer om du kör denna kod: Tack, men jag har löst problemet nu. Måste skriva så här istället: Jag skulle använt en For Each sats istället.Lägga till data i Access
Provider (0x80040E21)
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
Jag använder följande kod för att lägga till datan:
Dim n, strNr
Const adBoolean = 11
If Request.Querystring("submit") = "ok" Then
For n = 0 to rsObj.Fields.Count -1
If rsObj.Fields(n).Type = adBoolean Then
---> rsObj(rsObj.Fields(n).Name) = Request.Form("checkbox"&n)
End If
Next
rsObj.Update
Response.Redirect "comphome.asp?compid="&Request.Querystring("compid")
End If
Det fungerar när jag kör mot en SQL2000-databas men inte mot Access.Varför?Sv: Lägga till data i Access
adBoolean - A Boolean value (DBTYPE_BOOL).
Söker man sedan i Objektgranskaren så ser jag att DB_BOOLEAN = 1, och även dbBoolean som ingår i DAO.DataTypeEnum är lika med 1
Vet inte om det kan hjälpa men kanske om du provara tt byta ut din konstant mot 1?Sv: Lägga till data i Access
rsObj.Fields(n).Name = Request.Form("checkbox"&n)Sv: Lägga till data i Access
rsObj(n) = CBool(Request.Form("checkbox" & n))Sv: Lägga till data i Access
<code>
Dim Index
Dim fldField
Const adBoolean = 11
If Request.Querystring("submit") = "ok" Then
Index = 0
For Each fldFieldn In rsObj.Fields
If fldFieldn.Type = adBoolean Then
fldField= Request.Form("checkbox" & Index)
End If
Index = Index + 1
Next
rsObj.Update
Response.Redirect "comphome.asp?compid=" & Request.Querystring("compid")
End If
</code>