Ciao a tutti.
In una maschera ho inserito un codice VBA che al verificarsi di alcune condizioni va a copiare tutti i campi di una tabella di un database1 (inutilizzato) alla medewsima tabella del database2 (in utilizzo).
Fino ad oggi ha sempre funzionato, il problema ora sta nel fatto che ho la necessità di eliminare alcuni campi sulla tabella del database2, quindi dovrei modificare il mio codice, in modo che la funzione INSERT INTO copi comunque tutti i campi da una tabella all'altra, tralasciando i campi della tabella del database1 che non sono presenti nella tabella del database2.
Non saprei proprio da dove iniziare
Spero di essere stato chiaro.
Di seguito il mio attuale codice
Private Sub Form_Load()
On Error GoTo FINE:
'Controllo autocompattazione
If Application.GetOption("Auto Compact") = True Then
Application.SetOption "Auto Compact", False
End If
'controllo importazione vecchio database
Dim TabUpdate As DAO.Recordset
Set TabUpdate = CurrentDb.OpenRecordset("SELECT * FROM ISUpdate WHERE Riga = '1' ")
If TabUpdate.Fields("Updated") = False Then
Dim oldfile As String, dbsOld As DAO.Database
oldfile = Application.CurrentProject.Path & "\Database1.accdb"
If EsisteFile(oldfile) Then
Dim answer As Integer, strSQL As String
answer = MsgBox("Do You want to copy Records from old Database?", vbQuestion + vbYesNo + vbDefaultButton2, "Copy Data")
If answer = vbYes Then
Set dbsOld = OpenDatabase(oldfile, False, False, ";pwd=aaa")
CurrentDb.Execute "INSERT INTO Tabella1 Select * From Tabella1 IN '' [;DATABASE=" & oldfile & ";PWD=aaa];"
TabUpdate.Edit 'Abilita la modifica del record
TabUpdate.Fields("Updated") = True
TabUpdate.Update 'Salva il record
answer = MsgBox("Copy Complete, Do you Want to delete the old database?", vbQuestion + vbYesNo + vbDefaultButton2, "!!!Delete File!!!")
If answer = vbYes Then
Kill (oldfile)
MsgBox ("Database1 DELETED")
End If
End If
End If
Set dbsOld = Nothing
End If
TabUpdate.Close
DoCmd.Close acForm, "frmStart"
DoCmd.OpenForm "NewContract", acNormal, "", "", , acNormal
FINE:
End Sub