Buongiorno a tutti, vi espongo questo problema:
Su una maschera riportante i dati di un noleggio con relativa tabella collegata sulla quale sono riportati gli articoli noleggiati, ho creato un pulsante con il quale il cliente mi ha chiesto di poter duplicare, su una nuova scheda, il dettaglio degli articoli noleggiati precedentemente.
Pertanto, tramite VBA e SQL, sono riuscito a risolvere parzialmente. In pratica con questo codice:
DBEngine(0)(0).Execute "INSERT INTO Noleggi SELECT idCliente, DtNoleggio FROM Noleggi WHERE idNoleggio=" & Me.idNoleggio & ""
Riesco a creare un nuovo record sulla tabella "Noleggi", anche se in questo caso mi vene anche riportata la data del precedente noleggio e, in realtà, dovrei dare la possibilità all'utente di decidere la nuova data (potrei ovviare inserendo una textBox da far compilare all'utente)
Il problema sorge nel momento in cui devo inserire il nuovo record sulla tabella contente il dettaglio degli articoli. Come faccio a memorizzare su tale tabella l'id della chiave primaria del record appena creato?
Ho creato questo codice :
UltimoId = Nz(DMax("idNoleggio", "Noleggi"))
' con questo codice assegno alla variabile UltimoId il valore dell'ultimo id inserito nella tabella Noleggi
DBEngine(0)(0).Execute
"INSERT INTO Noleggi_DettaglioArticoli
SELECT Noleggi_DettaglioArticoli.idArticolo, Noleggi_DettaglioArticoli.qtaNoleggiata, Noleggi_DettaglioArticoli.importoNoleggi
FROM Noleggi_DettaglioArticoli
WHERE Noleggi_DettaglioArticoli.idNoleggio=" & Me.idNoleggio & ""
Ma non so come scrivere nel campo idNoleggio il valore di UltimoId.
Di seguito lo schema delle due tabelle interessate: