...rieccomi,...scusate il disturbo!

ho questa tabella di un IBdatabase:
codice:
CREATE TABLE MOVIMENTI (
    ID_MOVIMENTI       INTEGER  NOT NULL UNIQUE,
    FORNITORE          VARCHAR(5)   REFERENCES FORNITORI (codice),
    NUMERO_FATTURA     INTEGER,
    DATA               DATE,
    NUMERO_BOLLA       INTEGER,
    DATA_BOLLA         DATE,
    BOLLI              NUMERIC(10,3),
    IVA                INTEGER,
    IMPONIBILE         NUMERIC(14,3),    
    IMPOSTA            NUMERIC(14,3),     
    TOTALE             NUMERIC(15,3),
    NOTE               VARCHAR(50));
vorrei gestire questi dati su una semplice form, dove ho inserito un Tedit (edit1), un button (cerca), e 3 DbEdit collegati ai campi fornitori, numero fattura e data.

all'attivazione della form e' attivo unicamente il campo edit1 e il bottone cerca tramite il quale effettuo una query per selezionare il record desiderato.

domande:

1:
edit1 deve accettare solo valori numerici in quanto serve per effettuare la query tipo...
codice:
select * from movimenti where id_movimenti = edit1.text
quindi per controllare che sia immesso un valore numerico agisco sull'evento OnKeypress?

2:
dbEdit1 e' collegato al campo fornitori della tabella movimenti e referenzia un elemento univoco della tabella IBFORNITORI sempre dello stesso database.
visto che questo deve essere un campo sia obbligatorio che esistente nella tabella collegata dove mi consigliate di fare i dovuti controlli...sull'evento onexit....o mi consigliate una tecnica migliore?

3:
dbEdit2 e' collegato al campo numero fattura, ma non trovo il maskedit....
x favore mi potete dire come devo fare per editare/visualizzare questo campo es...con i punti separatore di migliaia.

4:
il campo data...stesso problema di visualizzazione. come devo fare per visualizzare il formato data ../../....

grazie