Estimado derkanzler, todo depende de la base de datos que estés utilizando, pero tenés que tener en cuenta que tanto con Access como con SQL Server, el que un campo de una base de datos pueda aceptar valores nulos, no quiere decir que devuelva nulo cuando los recuperas. Por eso te recomiendo que no chequees si el "NivelInstruccion" no es nulo, simplemente chequea que sea distinto de una cadena vacía o sea ""
Eso quiere decir que en lugar de poner:
If (Not isNull((update.Fields.Item("NivelInstruccion").Val ue))) Then
'ya quisiera yo saber para qué tantos paréntesis?????
Te recomiendo que pongas:
If update("NivelInstruccion") <> "" then
En caso que estés trabjando con SQL Server cambiá el "" por " "
Eso debería solucionar tu problema