A ver si te entiendo bien. Por lo que me decís, tu problema es que al recuperar el valor del checkbox te lo recupera como "True" en vez de True. Hasta ahí estamos. Lo que yo te digo es que no insertes ese "True" que estás recuperando, sino que verifiques primero con un simple if para ver si es "True". Si es "True" a una variable cualquiera (que después es la que vas a insertar) le asignas True (sin comillas). En otro caso (sería el falso, el checkbox te devuelve vacío si no está marcado) le asignas False a esa variable a insertar.
El código que te puse antes, lo ponés cuando recuperás, quedaría algo así:
Código:
If Request.Form("ecology") = "True" Then
secology = True
else
secology = False
End If
sSQL = ""
sSQL = sSQL & "INSERT INTO Comercials ( ecology) "
sSQL = sSQL & " VALUES ( "& SQLStr(sEcology) & " )"
Supongo que estoy interpretando bien lo que decís, si ése es tu problema (que está insertando "true" en vez de true.)
saludos.