Salve a tutti,
Ho la necessità di copiare alcuni record in una stessa tabella (Prova) tramite pulsante in una maschera.
Posto un esempio semplificato.
Diciamo che ho una tabella composta da 4 campi del tipo:
ID - Numerazione automatica (chiave primaria)
nome - Testo
cognome - Testo
eta - Numero
il codice è il seguente:
Private Sub Comando25_Click()
Dim DBCorrente As DAO.Database
Dim Tabella As DAO.Recordset
Dim Tabella1 As DAO.Recordset
'Apro la tabella
Set DBCorrente = CurrentDb
Set Tabella = DBCorrente.OpenRecordset("Prova", dbOpenDynaset)
Set Tabella1 = DBCorrente.OpenRecordset("Prova", dbOpenDynaset)
'Cerco il dato
id_Dato = InputBox("Inserire Id da duplicare", "Richiesta Id")
Tabella.FindFirst "ID = '" & id_Dato & "'" ' <----VA IN ERRORE![]()
![]()
'Srivo il campo da rinominare
Nome_Dato = InputBox("Inserire Nome Nuovo", "Richiesta Nome")
'Se non lo trovo non non duplica il dato
If Tabella.NoMatch = False Then
Tabella1.AddNew
Tabella1.Fields("Nome") = Nome_Dato
Tabella1.Fields("Cognome") = Tabella.Fields("Cognome")
Tabella1.Fields("eta") = Tabella.Fields("Eta")
Tabella1.Update
Else
MsgBox ("Id Non Trovato"), vbExclamation
End If
'Chiusura tabelle
Tabella.Close
Tabella1.Close
DBCorrente.Close
End Sub
Il debug si blocca dove ho segnalato.
Ho visto che se cambio il campo ID da Numerico a Testuale il codice funziona perfettamente. Ma se resta un campo numerico (è una chiave primaria!) non ne vuole sapere.
Dove sbaglio?
Grazie in anticipo.