Newsgroup: it.comp.appl.access
Titolo: evitare inserimento dati

Salve a tutti, chiedo ancora il vs competente aiuto, dunque ho questo
problema, ho una tabellagestione dove ci sono vari campi, tabella di
gestione abbinata ad una mascheraGestione per inserire i suddetti
dati. Però all'apertura del Db mi si apre un'altra mashera dove
inserisco i due campi principali che mi servono campo Targa e campo
telaio, non necessariamente legati fra loro, non importa. Quello che
vorrei è questo:
Mi si apre MascheraAvvio.....io inserisco la targa oppure se non la
conosco il telaio, uno dei due dati ce l'ho, cmq inserisco la targa,
se la targa è presente mi deve dire che c'è farmi vedere se si tratta
di pratica già chiusa o no. E fin qui non ci sono problemi uso il
seguente codice:
Private Sub Targa_CIC_BeforeUpdate(Cancel As Integer)
If Not IsNull(DLookup("targaCIC", "TGestione", _
    "targaCIC = " & Chr$(34) & Me!TargaCIC & Chr$(34))) Then
  MsgBox " LA TARGA CERCATA E' GIA' PRESENTE IN ARCHIVIO.",
vbExclamation, "ATTENZIONE! CONTROLLA"
    Cancel = False
  DoCmd.OpenForm "MPresenti", , , "[targaCIC]=" & Chr$(34) & Me!
TargaCIC & Chr$(34)
End If
End Sub
A questo punto però vorrei o continuare ad inserire se la targa è
presente ma si tratta di altra pratica chiusa, oppure annullare se
pratica attiva.
E ovviamente, se la targa non c'è continuare nell'inserimento nella
MascheraGestione, magari riportando già il dato targa inserito.
Spero di essere stato chiaro altrimenti sono pronto a chiarire
ulteriormente.
Ciao Fabio

 ha scritto nel messaggio 
news:126c2f2c-7484-4fc0...@z6g2000pre.googlegroups.com...




End If
End Sub

[risposta]
Fai una OpenForm "MascheraGestione"  passando i valori da scrivere nella 
proprietà OpenArgs;
es.
DoCmd.OpenForm "MascheraGestione",,,,,,me!targa
Nell'evento "su caricamento" della form "MascheraGestione" inserisci il 
codice:
...
If Me.OpenArgs<>"" then
    Me!targa= Me.OpenArgs
End if
...
che scrive il valore passato nella casella di testo...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggionews:126c2f2c-7484-4fc0...@z6g2000pre.googlegroups.com...

Ti ringrazio per l'attenzione e mi scuso , per  il post
successivo.....
Relativamente a questo potresti essere + chiaro. ? Il mio codice va
bene? e quando devo inserire quello che tu mi hai suggerito? Grazie.

 ha scritto nel messaggio 
news:2b8dfd55-c63c-4a13...@c60g2000hsf.googlegroups.com...
Ti ringrazio per l'attenzione e mi scuso , per  il post
successivo.....
Relativamente a questo potresti essere + chiaro. ? Il mio codice va
bene?
[risposta]
L'hai già detto tu che funziona.
 e quando devo inserire quello che tu mi hai suggerito? Grazie.
[risposta]
Presumo, da quello che hai scritto tu (per me non in modo chiaro), che tu 
voglia aprire la form se il valore inserito non esista: "...E ovviamente, se 
la targa non c'è continuare nell'inserimento nella
MascheraGestione, magari riportando già il dato targa inserito."; così 
scrivi.
Quindi dopo la End If;
...
If Not IsNull(DLookup("targaCIC", "TGestione", _
...
End If
DoCmd.OpenForm "MascheraGestione",,,,,,me!TargaCIC
Per il resto mi sembra chiaro:
(riporto)


 ha scritto nel messaggionews:2b8dfd55-c63c-4a13...@c60g2000hsf.googlegroups.com...

Ho provato non funziona, come vorrei, dunque cerco di essere + chiaro,
allora.....sulla mascheraAvvio senza origine record ho creato un campo
non associato campo targa.....su evento...
Private Sub Targa_CIC_BeforeUpdate(Cancel As Integer)
If Not IsNull(DLookup("targaCIC", "TGestione", _
    "targaCIC = " & Chr$(34) & Me!TargaCIC & Chr$(34))) Then
  MsgBox " LA TARGA CERCATA E' GIA' PRESENTE IN ARCHIVIO.",
vbExclamation, "ATTENZIONE! CONTROLLA"
    Cancel = False
  DoCmd.OpenForm "MPresenti", , , "[targaCIC]=" & Chr$(34) & Me!
TargaCIC & Chr$(34)
End If
End Sub
gli faccio controllare se la targa esiste o no ...quindi me la
visualizza....in MPresenti, a quel punto se si tratta di una pratica
vecchia e già chiusa, continuare nell'inserimento..in un nuovo
record..se invece si tratta di doppione uscire.
Poi ovviamente se la targa invece non c'è mai stata.......inserimento
normale...in un nuovo record, magari far si che la targa già scritta
in MascheraAvvio mi si riscriva in MascheraGestione....spero adesso di
essere stato un po + chiaro.
P.s. Il sistema che mi hai suggerito tu, non funziona forse dovuto al
fatto che non ti avevo spiegato bene cosa volevo...,
infatti quando inserisco la targa se c'è mi apre sia la MPresenti che
la Maschera Gestione, riportando il dato sul primo record...se non c'è
mi apre solo la mascheraGestione però scrive sempre sul primo
record......
Grazie ancora dell'attenzione
Fabio

 ha scritto nel messaggio 
news:0a6af592-0613-4752...@i76g2000hsf.googlegroups.com...




End If
End Sub

[risposta]
Praticamente tu filtri la maschera "MPresenti" tramite la CondizioneWhere 
della OpenForm; se la maschera ti presenta la targa tu vedi:
1 - se è chiusa --> prosegui inserimento
2 - se è un doppione(?) --> esci
3 - se non c'è nessun record devi inserirne uno nuovo ma con la targa 
inserita per la ricerca.
Da quanto ho capito ti manca il punto 3; se è così devi aggiungere alla 
OpenForm di "MPresenti" la targa cercata e utilizzare il codice suggerito 
nell'evento "su apertura" della stessa "MPresenti".
Es.
...
DoCmd.OpenForm "MPresenti", , , "[targaCIC]=" & Chr$(34) & Me!TargaCIC & 
Chr$(34),,,Me!TargaCIC
...
(nell'evento "su apertura" della form "MPresenti"):
...
If Me.OpenArgs<>"" And isnull(Me!TargaCIC) then
     Me!TargaCIC= Me.OpenArgs
End if
...
Ciao
-- 
Sergio MAZZA