frm_Main.edt_Marge.Text:= Format('%3f',[DataMod.Q_sArtikelmarge1.AsFloat/DataMod.Q_sArtikelArtEKQuer.AsFloat*100]);
Vielleicht solltest du vor der Division eine Prüfung auf IsZero machen.
Ich stecke gerade nicht so tief drin, was AsFloat bei einer leeren Datenmenge macht, aber man muss dort zumindest mit einer Division durch "0" rechnen. Ungültige Gleitkommaoperationen kann ich mir dabei durchaus auch vorstellen. Mit der FPU muss das nicht zwingend etwas zu tun haben.