Ciao a tutti
Sono sicuro di avere una trave nell'occhio e non vederla, ma tant'è…
Sto costruendo da zero un programmino senza troppo pretese per gestire le ricevute. Quando vado a generare una nuova ricevuta, semplicemente vado a prendere i dati dalla tabella “Clienti” per riportarli nella tabella “Ricevute” tramite una query di accodamento (Nota a margine: faccio la copia perchè una volta emessa la ricevuta deve rimanere come è stata fatta, quindi non soggetta a modifiche successive dei dati).
Ora, la query funziona in modo a dir poco strano, in quanto in alcune condizioni (record con giusto un paio di campi compilati) non accoda nulla, altrimenti dà errore “Impossibile assegnare un valore Null ad una variabile non di tipo variant”. Dopo innumerevoli prove, ho verificato che questo errore si verifica solo se i campi “Nome” e “Cognome” oppure “Nome_P” e “Cognome_P” (tutti nella tabella "Clienti") non contengono un valore. Se elimino questi campo dalla query, è ok. Se inserisco il nome ma non il cognome (o viceversa, idem per i campi con “_P” -che sta per “Praticante”, la query dà l'errore.
Ora, posto che ho controllato e ricontrollato più volte, tutti questi campi sono di tipo stringa e generati in automatico da Access, con la sola modifica della dimensione del campo, impostato a 25.
Non riesco a darmi una spiegazione logica che mi indirizzi verso la soluzione, quindi mi appello a voi. Di seguito, ammesso che possa essere utile, ecco la query
INSERT INTO Ricevute ( ID_Cliente, Cognome, Nome, Codice_Fiscale, Cognome_P, Nome_P, Luogo_Nascita_P, Data_Nascita_P, Indirizzo )
SELECT Clienti.ID_Cliente, Clienti.Cognome, Clienti.Nome, Clienti.Codice_Fiscale, Clienti.Cognome_P, Clienti.Nome_P, Clienti.Luogo_Nascita_P, Clienti.Data_Nascita_P, Clienti.Indirizzo
FROM Clienti
WHERE (((Clienti.ID_Cliente)=[Maschere]![Clienti_Scheda_completa]![ID_Cliente]));