ocx sind (hauptsaechlich) activex-steuerelemente. dll-dateien sind zwar schon irgendwie programme, aber nicht selbststaendig lauffaehig. dlls werden ja auch oo programmiert, und koennen daher auch instanzen von steuerelementen besitzen, von denen man ueber klassenvererbung dann wieder eigene steuerelemente ableiten kann.
trotzdem solltest du bei selbsterstellten steuerelementen eher auf activex zurueckgreifen, weil die anbindung an vb besser ist. und ganz nebenbei auch datenbankzugriffe mit access, weil die in zukunft auch alle ueber ado laufen werden. und ado heisst ja nix anderes als activex data objects...
ich benutz dlls zwar eigentlich nur fuer funktionen und routinen, die ich immer wieder mal brauche, aber es hindert dich niemand daran, auch mal ein ganzes formular in einer dll auszulagern. ist nur etwas aufwendiger zu programmieren...