Un Access Violation indica que estas accediendo a memoria que no asignaste antes; en palabras simples, cuando le mandas un mensaje a un objeto que no fue asignado, por ejemplo, un nil. Hay casos mas complicados donde se crea un objeto, se libera y luego se le siguen mandando mensajes:
Código Delphi
[-]
var
obj: TMiClase;
begin
obj := nil;
obj.Algo;
obj := TMiClase.Create;
obj.Algo;
obj.Free; Assert(obj <> nil);
obj.Algo; end;
Cuales son los valores de todas las variables cuando rompe el programa? Estan todos los objetos creados e inicializados correctamente?
Cuando recuperas el campo blob 'as_modulo', este te devuelve un objeto de tipo TBlobField? Que dice el depurador del valor de esta variable?
Que ocurre cuando llamas a la funcion CreateBlobStream? Esta termina correctamente?
Cual es el valor del objeto TablaAcc?