Gianni55 ha scritto:
Mah questa riga di codice l'hai provata?
Me.Form.RecordSource = "LaTuaQuery"
Ho provato ma non funziona.
Comunque vi ringrazio e ribadisco che sono proprio alle prime armi e sto imparando a usare access con dei tutorial online. Quindi sicuramente farò degli errori con concetti che voi riterrete comprensibilmente banali. Accetto di buon grado le spiegazioni.
Cosa intendete quando mi dite che non si rinominano né duplicano le query?
Io cerco di spiegare passo passo ciò che faccio.
Il database che sto creando permette a ogni utente di creare una libreria, il quale può selezionare dei film e aggiungerli.
Fino a qua tutto bene. Io vorrei poi fare delle schede riferite a ogni attore, che raccolgano oltre ai loro dati, tutti i film in cui hanno recitato.
Quindi l'utente può cliccare sul nome di un attore e gli appare una maschera impostata come scheda attore.
Quindi ho due tabelle: Attori e Film.
Nella tabella film c'é il campo "titolo" come chiave primaria e il campo "Cast", in relazione con il campo "Nome" della tabella "Attori".
Per creare una scheda attore io ho impostato una query che raccoglie i campi "Titolo" della tabella "film", "Nome" della tabella attori e altri campi della tabella attori. Ho inserito come criterio il nome di un attore, ad esempio Robert De Niro, e quindi io visualizzo soltanto i titoli di film in cui ha recitato Robert De Niro.
Poi ho creato una maschera relativa a questa query e l'ho curata graficamente.
Quindi ho una scheda attore dell'attore Robert De Niro, con una foto del campo "foto" nel punto giusto, del colore che voglio, ecc...
Adesso voglio aggiungere supponiamo Mel Gibson e ottenere la stessa cosa.
Però devo inserire tantissimi attori e in più vorrei dare all'utente la possibilità di inserire un eventuale attore mancante nel database, automatizzando la creazione della sua scheda attore.
Chiaramente voi riuscireste a ottenere tutto ciò in modo più corretto, giusto e ordinato.
A livello di mero risultato, il codice che ho inserito funziona quasi fino alla fine.
E' chiaro che, con massima umiltà e non essendo un idiota, sono pronto a rimettermi in gioco da zero e ad accettare un metodo migliore.
Io ho utilizzato la prima query creata, chiamata "query default" e la maschera di questa query, chiamata "schedadefault".
Il codice funziona DOPO l'inserimento di un attore nella tabella "Attori".
Quindi, io amministratore o un utente, inseriamo il nome Mel Gibson.
Il codice, postato nel mio primo post, duplica "query default" (mi spiegherete perché ciò é sbagliato, non mi sto incaponendo ma solo spiegando) e rinomina il duplicato "Mel Gibson". Questo mi serve solo per fare ordine e non ha in effetti una grande utilità.
Comunque, utilizzando la funzione DLast, nomina questa query con il nome dell'ultimo attore inserito.
Ciò mi serve perché qualsiasi nome io inserisca successivamente seguirá la stessa regola.
Sempre in questo modo, il codice modifica il criterio della "query default" da "Robert De Niro" a "Mel Gibson".
Ho quindi una query che mi restituirá soltanto i film in cui ha recitato Mel Gibson. Naturalmente dopo che avrò selezionato dalla casella combinata nella tabella "Film", Mel Gibson mei film in cui ha recitato.
Il codice poi duplica la "Scheda default", in modo da conservare il layout grafico.
La rinomina Mel Gibson (Anche in questo caso non c'é una grande utilità).
A questo punto, se riuscissi a variare il record source di questa maschera, ne avrei una identica alla "Scheda default", ma con i dati di Mel Gibson.
Però anche la record source dovrebbe variare a seconda dell'ultimo record inserito nel campo "nome" della tabella "Attori".
Mi rendo disponibile a condividere con voi anche il database o a postare delle foto, perché credo sia molto più semplice di ciò che sembra a parole.
Grazie ancora