Weise in der ersten Zeile einmal nil zu (also vor dem if assigned).
Wobei dann die Abfrage auf Assigned auch keinen Sinn mehr macht. Insgesamt macht das ganze Konstrukt nicht viel Sinn, da es sich um eine lokale Variable handelt.
Am besten wäre es wenn man die lokale Variable in eine Feldvariable umwandelt, dann ergibt die Vorgehensweise auch wieder Sinn. Es soll ja scheinbar verhindert werden, dass das Formular mehrmals mit ".Show" angezeigt wird.