Newsgroup: it.comp.appl.access
Titolo: Procedura ricerca e verifica presenza record e sua modifica

Vorrei che al momento dell'inserimento nel campo "Cognome", venga
effettuata una ricerca, automtica e silenziosa, che mi avvisa della
presenza di un record con lo stesso valore, ma ciò dovrebbe avvenire
solo se il campo "orafine" del record è vuoto, altrimenti mi permette
di continuare senza nessun avviso.
Ma se nella ricerca avrà un riscontro positivo a video mi apparirà una
finestra che mi avvisa dell'esistenza del record e mi chiede se voglio
modificarlo subito o in seguito, se scelgo subito mi apprirà una
finestra di modifica popup temporizzata.
Che ne dite come posso fare?
Il mio db è strutturato in questo modo:
MscInsGiornaliera
SottoMscInsDati
le due mschere sono collegate tra loro con il campo "Data"
in quanto gestisco i dati inseriti nell'arco delle 24 ore a cavallo di
due giorni dalle 05.00 alle 05.00 del giorno dopo, ma l'orario non è 
indicativo.
grazie
 

 ha scritto nel messaggio news:9eksh2l19f77icvau...@4ax.com...

Nell'evento "su uscita" della casella di testo, oppure nell'evento "prima di aggiornare" della maschera, fai un controllo 
dell'esistenza del valore inserito con la funzione DLookup (vedi help attivabile con ALT-F11 poi F1):
es.
if not isnull(DLookup("cognome","nomeTabellaQuery","Cognome=" & chr$(34) & Me!Cognome & chr$(34))) then
    msgbox me!Cognome & " è già stato inserito."
    Cancel = true
    me!Cognome.setfocus
end if
Ciao.
-- 
Sergio MAZZA 


--------------------------------
Inviato via 
http://arianna.libero.it/usenet/



Grazie, il grande problema è effettuare la ricerca solo nell'elenco
dei record del giorno cioè alla data della sottomaschera in relazione
con  la maschere principale.
Inoltre  una volta trovato il record corrispondente devo contrllare il
se il campo "orafine" è vuoto, in quanto:
1) se vuoto, vorrei che apparisse un messaaggio a video che mi avverte
del duplicato e mi permette di scegliere se modificarlo o andare
avanti.
	a) se scelgo di modificarlo si pre una maschera pop up che mi 
                 permette di modificare il record trovato.
	b) se scelgo di andare avanti si chiude la finestra.
2) se pieno non compare nessuna finestra e proseguo con l'inserimento.
Non ho idea su come procedere nel risolvere il tutto.
Grzie .

 Francesco
Se l'hai scritta in quel modo è strano che funzioni.
If Not IsNull(DLookup("[cognome]", "[rubrica]", "[cognome] Like '*" & Me.caratterecomune & "*'")) Then
...
I testi devono essere racchiusi o tra apici singoli (') o doppi ("). Ma se stai costruendo una stringa VBA e devi passare un valore 
testuale a SQL o lo racchiudi tra apice singolo oppure utilizzi la funzione chr$(34). Oppure raddoppi i doppi apici ma a me è sempre 
venuto il mal di testa a contarli.
Prova così e vediamo che succede...
Ciao.
-- 
Sergio MAZZA 

 Grzie .
Prgo...
Ciao.
P.S. Per tutte le informazioni sulle istruzioni scritte utilizza l'help in linea attivandolo con ALT-F11, poi F1.
-- 
Sergio MAZZA 

 ...
[cut]
l'ho scritta così e funziona:
If DLookup("cognome", "rubrica", "cognome") Like "*" & Me.caratterecomune &
"*" Then
              fai una certa cosa.......
         else
             MsgBox Me.caratterecomune & " non trovato nella stringa"
end if
ciao e grazie
F




Adesso si mi metto all'opera, grazie.


grrrrr.....mi è venuto di provare a inserire una parola e non un singolo
carattere in comune, ma ho notato che non funziona la condizione di DLookup,
cioè:
se inserisco <<$>> come carattere comune, mi soddisfa la condizione
se inserisco <<sample>> come parola comune del campo cognome, manco per
idea.....mi va in condizione di Else ma non è così, è falso
io credo che sia un problema con il Like nella stringa DLookup
ciao
