copiare valore da altra tabella

Come utilizzare gli script. Automatizzare gli archivi. Utilizzo dei pulsanti

Moderatore: Moderatori

Rispondi
max103
Messaggi: 57
Iscritto il: sabato 29 dicembre 2007, 1:00

copiare valore da altra tabella

Messaggio da max103 » lunedì 7 novembre 2022, 15:22

Devo copiare un valore dal campo di una tabella e incollarlo nel campo di un'altra tabella

ho adottato una soluzione maccheronica ma troppo lunga e farraginosa per cui a volte si blocca

SOLUZIONE MACCHERONICA

Codice: Seleziona tutto

#creo relazione
Imposta variabile [ $NomeCliente; Valore:FCCalendarEvents 1::Nome Cliente ]
Imposta cattura errori [ Attivata ]
#cerca id cliente
Vai al formato [ “Elenco Clienti” (Clienti) ]
Visualizza
[ Visualizza come tabella ]
Passa al modo Trova [ ]
Imposta campo [ Clienti::Cognome e Nome; $NomeCliente ]
Esegui la ricerca [ ]
Copia [ Clienti::ChiavePrimaria ]
[ Seleziona ]
#imposto relazione
Vai al formato [ “FCCalendarEvents 1” (FCCalendarEvents 1) ]
Incolla [ FCCalendarEvents 1::ChiaveEsterna ]
[ Seleziona; Nessuno stile ]
Salva record/richieste
[ Senza finestra ]
Vai al formato [ formato originale ]
Non posso al momento aggiungere relazioni tra tabelle
C'è un modo più elegante e soprattutto più robusto per copiare il valore [ Clienti::ChiavePrimaria ] in [ FCCalendarEvents 1::ChiaveEsterna ] ?
FM 15 - Win 10

Avatar utente
fabio.beri
Messaggi: 1958
Iscritto il: sabato 4 ottobre 2014, 16:24
Versione FileMaker: 2023
Sistema operativo: Win/Mac

Re: copiare valore da altra tabella

Messaggio da fabio.beri » martedì 8 novembre 2022, 14:14

Non posso al momento aggiungere relazioni tra tabelle
perché non è possibile? uno dei files è protetto?
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19

Omnia Studio

-----------------------------------------
http://tinyurl.com/omniagest2024

max103
Messaggi: 57
Iscritto il: sabato 29 dicembre 2007, 1:00

Re: copiare valore da altra tabella

Messaggio da max103 » martedì 8 novembre 2022, 19:31

ok facendo alcune modifiche sono riuscito a creare una relazione tra la tabella
FCCalendarEvents 1::ChiaveEsterna -----> Clienti::ChiavePrimaria

Ora alla creazione/modifica di ogni record su FCCalendarEvents 1 dovrei scrivere su FCCalendarEvents 1::ChiaveEsterna il valore Clienti::ChiavePrimaria

ma il cliente lo scelgo tramite una tendina popolata da LISTA VALORI che mi da il nome del cliente ma non il suo valore Clienti::ChiavePrimaria
FM 15 - Win 10

chebfarid
Messaggi: 4
Iscritto il: lunedì 17 novembre 2003, 1:00
Località: Milano

Re: copiare valore da altra tabella

Messaggio da chebfarid » venerdì 11 novembre 2022, 13:01

Secondo mai fai molto prima usando un "ExecuteSQL" che è fatto proprio a posta per interrogare tabelle non relazionate:

Codice: Seleziona tutto

// imposta variabile $risultato =
ExecuteSQL ( "SELECT ChiavePrimaria FROM Clienti WHERE 'Cognome e nome' = $NomeCliente" ; "" ; "" )
// poi vai al formato che ti serve ed usi il risultato per impostare il campo in questione
https://help.claris.com/it/pro-help/con ... ExecuteSQL

Cheers
Farid

max103
Messaggi: 57
Iscritto il: sabato 29 dicembre 2007, 1:00

Re: copiare valore da altra tabella

Messaggio da max103 » venerdì 11 novembre 2022, 13:45

ottimo la provo subito
grazie
FM 15 - Win 10

max103
Messaggi: 57
Iscritto il: sabato 29 dicembre 2007, 1:00

Re: copiare valore da altra tabella

Messaggio da max103 » sabato 3 dicembre 2022, 16:58

Niente da fare
non c'è verso di visualizzare il risultato della query.

Ho provato in tutti i modi, la prova più corretta credo sia così:

Codice: Seleziona tutto

Imposta variabile [$NomeCLiente; Valore: FCCalendarEvents 1::Nome Cliente]
Imposta variabile [$risultato; Valore: EseguiSQL ( "SELECT ChiavePrimaria FROM Clienti WHERE Cognome e Nome = $NomeCliente"; ""; "" ) ]
Mostra finestra personalizz. [$NomeCliente; $risultato]
Nella finestra, viene vìsualizzato correttamente il nome cliente: $NomeCliente
e non visualizza il risultato: $risultato. Visualizza soltanto: ?
FM 15 - Win 10

Avatar utente
fabio.beri
Messaggi: 1958
Iscritto il: sabato 4 ottobre 2014, 16:24
Versione FileMaker: 2023
Sistema operativo: Win/Mac

Re: copiare valore da altra tabella

Messaggio da fabio.beri » lunedì 5 dicembre 2022, 11:47

Quando esce un punto interrogativo, la query è sbagliata. In questo caso, riesco a vedere solamente che il campo Nome e Cognome, certamente campo di tipo testo, non è interrogato tramite le apici che vanno messe dopo l'uguale:

Codice: Seleziona tutto

EseguiSQL ( "SELECT ChiavePrimaria FROM Clienti WHERE Cognome e Nome ='" &  $NomeCliente & "'"; ""; "" )
max103 ha scritto:
sabato 3 dicembre 2022, 16:58
Niente da fare
non c'è verso di visualizzare il risultato della query.

Ho provato in tutti i modi, la prova più corretta credo sia così:

Codice: Seleziona tutto

Imposta variabile [$NomeCLiente; Valore: FCCalendarEvents 1::Nome Cliente]
Imposta variabile [$risultato; Valore: EseguiSQL ( "SELECT ChiavePrimaria FROM Clienti WHERE Cognome e Nome = $NomeCliente"; ""; "" ) ]
Mostra finestra personalizz. [$NomeCliente; $risultato]
Nella finestra, viene vìsualizzato correttamente il nome cliente: $NomeCliente
e non visualizza il risultato: $risultato. Visualizza soltanto: ?
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19

Omnia Studio

-----------------------------------------
http://tinyurl.com/omniagest2024

max103
Messaggi: 57
Iscritto il: sabato 29 dicembre 2007, 1:00

Re: copiare valore da altra tabella

Messaggio da max103 » lunedì 5 dicembre 2022, 18:19

riuscito

erano due i problemi
1) $NomeCliente andava tra apici
2) WHERE Cognome e Nome davano fastidio gli spazi bianchi nel nome del campo (effettivamente in SQL è così)

quindi la query totale funzionante è:

Codice: Seleziona tutto

EseguiSQL ( "SELECT ChiavePrimaria FROM Clienti WHERE CognomeNome = '" & $NomeCliente & "'"; ""; "" )
Grazie 1000 per l'aiuto
FM 15 - Win 10

Rispondi