impedire creazione record duplicati per data e paziente
Moderatore: Moderatori
-
- Messaggi: 42
- Iscritto il: domenica 7 febbraio 2021, 23:14
- Versione FileMaker: 19
- Sistema operativo: Windows 10
impedire creazione record duplicati per data e paziente
Ciao a tutti. Ho un piccolo dubbio. Ho un pulsante che mi fa aprire una finestra per l'inserimento di un nuovo record. Sto cercando di scrivere uno script che mi verifichi prima di aprire la finestra che non sia stato inserito già un nuovo record nella data odierna per un singolo paziente. Faccio un esempio.
- Mario Rossi-->verifico se già presente record in data odierna per Mario rossi-->non è stato inserito record oggi--> apri finestra
- Mario Rossi-->verifico se già presente record in data odierna per Mario rossi-->è già stato inserito record oggi--> finestra errore. (ma domani posso inserire ma farà la verifica come per oggi)
- Giuseppe Verdi-->verifico se già presente record in data odierna per Giuseppe verdi-->non è stato inserito record oggi--> apri finestra
- Se già presente record per giuseppe verdi comportati come per Mario Rossi
ho provato a fare verifica per date e funziona ma non posso creare record per Giuseppe verdi se per Mario rossi è già stato inserito un record (perche fa la verifica per data) ma non posso fare neppure la verifica per chiave primaria perché mi impedisce di creare record sia oggi che domani (perche mario rossi ha già un record indipendente dalla data). Grazie e buon lunedì
- Mario Rossi-->verifico se già presente record in data odierna per Mario rossi-->non è stato inserito record oggi--> apri finestra
- Mario Rossi-->verifico se già presente record in data odierna per Mario rossi-->è già stato inserito record oggi--> finestra errore. (ma domani posso inserire ma farà la verifica come per oggi)
- Giuseppe Verdi-->verifico se già presente record in data odierna per Giuseppe verdi-->non è stato inserito record oggi--> apri finestra
- Se già presente record per giuseppe verdi comportati come per Mario Rossi
ho provato a fare verifica per date e funziona ma non posso creare record per Giuseppe verdi se per Mario rossi è già stato inserito un record (perche fa la verifica per data) ma non posso fare neppure la verifica per chiave primaria perché mi impedisce di creare record sia oggi che domani (perche mario rossi ha già un record indipendente dalla data). Grazie e buon lunedì
- fabio.beri
- Messaggi: 2041
- Iscritto il: sabato 4 ottobre 2014, 16:24
- Versione FileMaker: 2023
- Sistema operativo: Win/Mac
Re: impedire creazione record duplicati per data e paziente
Buongiorno. Prima di far attribuire il record a Mario Rossi farei un interrogazione SQL per verificare se in quella data c'è già qualcuno. La funzione è ESEGUISQL.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19
Omnia Studio
-----------------------------------------
http://tinyurl.com/omniagest2024
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19
Omnia Studio
-----------------------------------------
http://tinyurl.com/omniagest2024
-
- Messaggi: 42
- Iscritto il: domenica 7 febbraio 2021, 23:14
- Versione FileMaker: 19
- Sistema operativo: Windows 10
Re: impedire creazione record duplicati per data e paziente
no. quello che volevo era una verifica per ogni paziente a cui provavo a creare un record che non fosse già stato creato a lui nella giornata odierna
es. oggi non sono stati creati record ma sono presenti i passati quindi nella tabella avrò:
Nome: Data:
Mario rossi 04/03/2021
Giuseppe verdi 05/03/2021
Clicco il pulsante per entrare nella finestra e mi lascia entrare perche oggi 08/03/2021 non ho ancora creato record per mario rossi (ricava da chiave primaria). Lo creo per mario rossi, quindi alla fine la mia tabella aggiornata avrà:
Nome: Data:
Mario rossi 04/03/2021
Giuseppe verdi 05/03/2021
Mario rossi 08/03/2021
mettiamo io cerco di ricreare un record per mario rossi oggi e mi deve dare errore perche oggi l'ho già creato. domani non me lo deve dare perche domani non avrò ancora creato il record per il giorno 09/03/2021
ora creiamo un record per giuseppe verdi. giuseppe verdi non ha record creati per oggi quindi posso entrare nella finestra per crearlo però devo poter rifare il controllo come per mario rossi se per sbaglio si creerebbe un duplicato.
Devo in pratica verificare la condizione: se oggi (quindi data) e chiaveprimaria paziente sono già presenti nella tabella. prima di entrare nella finestra
es. oggi non sono stati creati record ma sono presenti i passati quindi nella tabella avrò:
Nome: Data:
Mario rossi 04/03/2021
Giuseppe verdi 05/03/2021
Clicco il pulsante per entrare nella finestra e mi lascia entrare perche oggi 08/03/2021 non ho ancora creato record per mario rossi (ricava da chiave primaria). Lo creo per mario rossi, quindi alla fine la mia tabella aggiornata avrà:
Nome: Data:
Mario rossi 04/03/2021
Giuseppe verdi 05/03/2021
Mario rossi 08/03/2021
mettiamo io cerco di ricreare un record per mario rossi oggi e mi deve dare errore perche oggi l'ho già creato. domani non me lo deve dare perche domani non avrò ancora creato il record per il giorno 09/03/2021
ora creiamo un record per giuseppe verdi. giuseppe verdi non ha record creati per oggi quindi posso entrare nella finestra per crearlo però devo poter rifare il controllo come per mario rossi se per sbaglio si creerebbe un duplicato.
Devo in pratica verificare la condizione: se oggi (quindi data) e chiaveprimaria paziente sono già presenti nella tabella. prima di entrare nella finestra
-
- Messaggi: 42
- Iscritto il: domenica 7 febbraio 2021, 23:14
- Versione FileMaker: 19
- Sistema operativo: Windows 10
Re: impedire creazione record duplicati per data e paziente
Avrei trovato anche questo link https://community.claris.com/en/s/quest ... validation che è esattamente quello che cerco io. Però devo adattarlo a quello che cerco di fare io...ma non sono per nulla pratico di SQL
i miei campi sono:
Pazienti::ChiavePrimaria
Valutazione_per_macroaree (tabella dei record da ricercare)
Valutazione_per_macroaree::Data Valutazione
i miei campi sono:
Pazienti::ChiavePrimaria
Valutazione_per_macroaree (tabella dei record da ricercare)
Valutazione_per_macroaree::Data Valutazione
- fabio.beri
- Messaggi: 2041
- Iscritto il: sabato 4 ottobre 2014, 16:24
- Versione FileMaker: 2023
- Sistema operativo: Win/Mac
Re: impedire creazione record duplicati per data e paziente
Al di là della condizione, sempre ESEGUISQL con una SELECT: https://www.w3schools.com/sql/sql_ref_select.asp
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19
Omnia Studio
-----------------------------------------
http://tinyurl.com/omniagest2024
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19
Omnia Studio
-----------------------------------------
http://tinyurl.com/omniagest2024
-
- Messaggi: 42
- Iscritto il: domenica 7 febbraio 2021, 23:14
- Versione FileMaker: 19
- Sistema operativo: Windows 10
Re: impedire creazione record duplicati per data e paziente
Ho preso SQL però non so dove sbaglio continuo sempre ad avere errore nella verifica perché mi rimanda sempre al messaggio di errore che ho creato partendo dal mio if iniziale.
EVuoto ( EseguiSQL ( "SELECT Valutazione_per_macroaree::Data Valutazione " & "FROM Valutazione_per_macroaree " & "WHERE Valutazione_per_macroaree::ChiaveEsternaPaziente_val.macr. " &
"AND Valutazione_per_macroaree::Data Valutazione"; "" ; "" ; Minuscolo (Valutazione_per_macroaree::ChiaveEsternaPaziente_val.macr.) ; Get ( DataCorrente )))
Questo è il codice SQL che ho preso di esempio e ho provato a modificare..EVuoto ( EseguiSQL ( "SELECT Valutazione_per_macroaree::Data Valutazione " & "FROM Valutazione_per_macroaree " & "WHERE Valutazione_per_macroaree::ChiaveEsternaPaziente_val.macr. " &
"AND Valutazione_per_macroaree::Data Valutazione"; "" ; "" ; Minuscolo (Valutazione_per_macroaree::ChiaveEsternaPaziente_val.macr.) ; Get ( DataCorrente )))
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
- fabio.beri
- Messaggi: 2041
- Iscritto il: sabato 4 ottobre 2014, 16:24
- Versione FileMaker: 2023
- Sistema operativo: Win/Mac
Re: impedire creazione record duplicati per data e paziente
I nomi delle tabelle vanno solamente dopo il FROM.
La SELECT è così:
SELECT (CAMPO IN CUI CERCARE) FROM TABELLA IN CUI CERCARE WHERE CAMPO SU CUI APPLICARE LA CONDIZIONE='VALORE DELLA CONDIZIONE'
La SELECT è così:
SELECT (CAMPO IN CUI CERCARE) FROM TABELLA IN CUI CERCARE WHERE CAMPO SU CUI APPLICARE LA CONDIZIONE='VALORE DELLA CONDIZIONE'
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19
Omnia Studio
-----------------------------------------
http://tinyurl.com/omniagest2024
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19
Omnia Studio
-----------------------------------------
http://tinyurl.com/omniagest2024
-
- Messaggi: 42
- Iscritto il: domenica 7 febbraio 2021, 23:14
- Versione FileMaker: 19
- Sistema operativo: Windows 10
Re: impedire creazione record duplicati per data e paziente
Quindi nel mio caso i campi da cercare saranno 2: chiave primaria paziente e data valutazione è esatto?
- fabio.beri
- Messaggi: 2041
- Iscritto il: sabato 4 ottobre 2014, 16:24
- Versione FileMaker: 2023
- Sistema operativo: Win/Mac
Re: impedire creazione record duplicati per data e paziente
Si, direi di si, se la domanda è: "dimmi se in quel giorno e per quel paziente ho un record. Se è la risposta è si allora non creo altri records, altrimenti lo creo.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19
Omnia Studio
-----------------------------------------
http://tinyurl.com/omniagest2024
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19
Omnia Studio
-----------------------------------------
http://tinyurl.com/omniagest2024
-
- Messaggi: 42
- Iscritto il: domenica 7 febbraio 2021, 23:14
- Versione FileMaker: 19
- Sistema operativo: Windows 10
Re: impedire creazione record duplicati per data e paziente
Esatto proprio quello che voglio. Però ho provato if [EVuoto (EseguiSQL........) = 1]
Vai al formato
Else
---- qui mi mostra il messaggio di errore
End if
Non so se sbaglio già in principio a legarci EVuoto
Però appena clicco il pulsante per avviare lo script già mi va nel messaggio di errore anche se per quel paziente e data non esiste il record. Dove sbaglio?
Vai al formato
Else
---- qui mi mostra il messaggio di errore
End if
Non so se sbaglio già in principio a legarci EVuoto
Però appena clicco il pulsante per avviare lo script già mi va nel messaggio di errore anche se per quel paziente e data non esiste il record. Dove sbaglio?