Newsgroup: it.comp.appl.access
Titolo: evento non in elenco

Salve a tutto il NG.
Scartabellando i vecchi post sono riuscito a capire come aggiornare una
combo (IDCntr) se il record inserito non è presente, aprendo una nuova form
(FrmCntr basata su TblCntr) sull'evento "non in elenco", che mi permette di
inserire il nuovo record. La combo si trova nella maschera SFrmUnica ed è
associata al campo contatore della tabella TblUnica. La combo naturalmente
non visualizza l'IDCntr, ma solo i seguenti 2 campi da TblCntr:
SELECT [TblCntr].[IDCntr], [TblCntr].[Sigla] & " " & [TblCntr].[Numero] FROM
TblCntr
Es: XYZK 1234567
Vorrei evitare di digitare nuovamente Sigla e Numero, trovandoli già
inseriti nei rispettivi controlli della FrmCntr. Potete aiutarmi?
Grazie in anticipo
Pierpa
--------------------------------
Inviato via 
http://usenet.libero.it


Scusa eh?
Se il record non è in elenco, che ci metti nella form di inserimento?
Non ci sono sigla e numero, tutt al più ci sta uno dei due che è quello che
l'utente inserisce nella combo e che non viene trovato!!!
Antonio


L'utente inserisce nella combo Sigla" "Numero (tipo: XYZK 1234567). La mia
difficoltà sta nel separare Sigla" "Numero digitati dal cliente e (nel caso
non in elenco) inserirli direttamente nei loro rispettivi controlli della
maschera FrmCntr. Sono stato + chiaro?


 maschera FrmCntr. Sono stato + chiaro?
Mah...
Se non ci sono nella lista della combo, l'utente premerà un piccolo
pulsantino "Nuovo record" e si aprirà la maschera dove scriverà tutti i dati
per il nuovo record.
Il su non in elenco normalmente lo usi per l'inserimento di un singolo
valore (es. il cognome, non esiste, apre la maschera con quel cognome già
inserito...)
Antonio

 ha scritto nel messaggio
news:217Z57Z214Z92Y...@usenet.libero.it...

Quello che ti ha suggerito Antonio Biso mi sembra un buon modo di procedere
anche perchè non è certo che l'utente scriverà esattamente quello che ti
aspetti e cioè XYZK 1234567
con lettere spazio e numeri.
Se invece sei sicuro di quello che l'utente scriverà potresti aggiungere una
semplice funzione del tipo:
Apri il recordset da aggiornare, fai il parsing della stringa e separi i due
valori, incolli il risultato nei due campi del recordset. Se IDCntr è di
tipo contatore nessun problema se di tipo numerico devi prevedere un
incremento.
Per fare il parsing della stringa puoi usare InStr, Mid e IsNumeric. Sul
sito comune trovi una funzione che estrae solo i numeri di una stringa.
Se non ci riesci fammi un fischio.
Ciao, Carlo


Ringarzio sia te che Antonio Biso per la disponibilità.
In effetti il problema non è di difficile soluzione, ma non riesco a
tradurlo in codice xchè non lo conosco molto. L'idea mia era questa:
- mi creo un controllo testo non associato nel quale parcheggio la Sigla"
"Numero digitati dall'utente (fatto)
- visto che la stringa ha sempre lo stesso formato posso lavorare con left e
right estraendo rispettivamente i primi 4 e gli ultimi 7 caratteri (fatto,
ma non funzia)
- Inserire i primi 4 nel controllo (testo) Sigla della nuova form (FrmCntr)
e gli ultimi 7 nel controllo (testo) Numero


 e gli ultimi 7 nel controllo (testo) Numero
Dopo la docmd.openform avrai
forms("formaperta").controllosigla = spezzone_sigla
forms("formaperta").controllonumero = spezzone_numero
Antonio