Salve a tutti,
sono un neofita di Access e sto strutturando un database per uso personale.
Alla chiusura della maschera frmCampagne (basata sulla tabella lkpCampagne, che contiene anche campi non presenti nella maschera) vorrei aggiornare la tabella lkpGestione:
- aggiungendo i dati relativi ai record non presenti;
- aggiornando i dati relativi ai record già presenti.
L'idea è la seguente:
- creo il recordset rstCampagne, relativo alla maschera frmCampagne
- controllo se esiste il record relativo nella tabella lkpGestione
- - se non esiste, eseguo la query di accodamento
- - se esiste, eseguo una query di modifica (che in questa fase non ho ancora scritto, sostituendola con un messaggio di avvertimento)
- vado al record successivo, fino alla fine del recordset
Ho scritto il seguente codice (usando come suffisso del NomeCampo il nome della tabella di appartenenza, quindi IdGestione appartiene alla tabella lkpGestioni, DenominazioneCampagna appartiene alla tabella lkpCampagne, etc.):
Private Sub Form_Close()
Dim rstCampagne As DAO.Recordset
Dim intIdGestione As Integer
Dim sqlAggiunta As String
Dim strRisposta As String
Set rstCampagne = Me.Recordset
rstCampagne.MoveFirst
Do While Not rstCampagne.EOF
intIdGestione = DCount("IdGestione", "lkpGestione", "CampagnaGestione = " & Me.IdCampagna)
Select Case intIdGestione
Case Is = 0 'Aggiunta
sqlAggiunta = "INSERT INTO lkpGestione(CodiceGestione,IVAGestione,ClienteGestione,CampagnaGestione,TipoGestione,DataGestione,FaseGestione,MSISDNGestione,PianoGestione,CausaleGestione,ValoreGestione,FatturaGestione) " & _
"VALUES (""" & Me.CodiceCampagna & _
""",""" & Me.IVACampagna & _
""",""" & Me.ClienteCampagna & _
""",""" & Me.IdCampagna & _
""",""" & """Campagna""" & _
""",""" & Me.FineCampagna & _
""",""" & 2 & _
""",""" & Me.MSISDNCampagna & _
""",""" & """ - """ & _
""",""" & Me.DenominazioneCampagna & _
""",""" & 0 & _
""",""" & 20 & """)"
CurrentDb.Execute sqlAggiunta
rstCampagne.MoveNext
Case Else 'Modifica
strRisposta = MsgBox("Modifica ?", vbOKCancel)
If strRisposta = vbCancel then
Exit Sub
End If
rstCampagne.MoveNext
End Select
Loop
End Sub
La procedura va subito alla modifica (anche se nella tabella lkpGestioni non esiste un record relativo); nonostante abbia letto alcuni post sugli argomenti utilizzati, non riesco a capire dove sia l'errore (o gli errori)
Vi sarei molto grato se riusciste a chiarirmi le idee ...