Eliminar un registre d'un formulari en Access, juntament amb els registres del subformulari associat.

 Aquí tens un codi VBA per eliminar un registre d'un formulari en Access, juntament amb els registres del subformulari associat. Aquest codi s'executa quan es fa clic en un botó "Eliminar", assegurant-se que esborra primer els registres del subformulari abans d'eliminar el registre principal.

Passos:

  1. Assegura't que el subformulari està vinculat correctament al formulari principal per mitjà d'un camp clau.
  2. Utilitza VBA per eliminar primer els registres del subformulari i després el registre principal.

Codi VBA per eliminar un registre i els seus associats

vba

Private Sub btnEliminar_Click() Dim db As DAO.Database Dim strSQL As String Dim idPrincipal As Long ' Comprovar si hi ha un registre seleccionat If Me.NewRecord Then MsgBox "Selecciona un registre per eliminar.", vbExclamation, "Atenció" Exit Sub End If ' Capturar l'ID del registre principal idPrincipal = Me.ID ' Canvia "ID" pel nom real del teu camp clau ' Confirmació abans d'eliminar If MsgBox("Segur que vols eliminar aquest registre i els seus associats?", vbYesNo + vbQuestion, "Confirmar eliminació") = vbNo Then Exit Sub End If ' Obrir la base de dades actual Set db = CurrentDb ' Eliminar primer els registres associats del subformulari strSQL = "DELETE FROM SubTaula WHERE ID_Principal = " & idPrincipal db.Execute strSQL, dbFailOnError + dbSeeChanges

' Eliminar el registre principal strSQL = "DELETE FROM TaulaPrincipal WHERE ID = " & idPrincipal db.Execute strSQL, dbFailOnError ' Actualitzar els formularis Me.Requery ' Missatge de confirmació MsgBox "El registre i els associats s'han eliminat correctament.", vbInformation, "Eliminació completa" ' Netejar la variable Set db = Nothing End Sub

Explicació del codi

  1. Evita eliminar un registre buit amb If Me.NewRecord Then.
  2. Guarda l'ID del registre principal per utilitzar-lo en les consultes SQL.
  3. Demana confirmació abans d'eliminar els registres.
  4. Elimina primer els registres de la subtaula (SubTaula).
  5. Elimina després el registre principal (TaulaPrincipal).
  6. Actualitza el formulari amb Me.Requery.

Consideracions

  • Substitueix TaulaPrincipal i SubTaula pels noms reals de les teves taules.
  • El camp ID_Principal a la subtaula ha de coincidir amb ID de la taula principal.
  • Assegura't que el botó que executa aquest codi està al formulari principal.

Comentaris