Borrar ultima factura según la serie

buenos días,

hice lo que me comentaste, pero me elimina la ultima factura mas alta de una serie. Esto es lo que tengo: donde SERIE es el nombre del campo y esta puesto en el origen del control y txtserie el nombre.

Private Sub cmborrar_Click()
' Proceso para borrar solamente la última factura creada.
Dim ultimafactura As Integer
Dim sqlAccion As String
ultimafactura = DMax("facturadefinitiva", "bd_minutas")
If Me.FACTURADEFINITIVA = ultimafactura Then
POR = MsgBox("Esta Seguro de Borrar esta Factura", vbYesNo, "ALERTA DE ATENCIÓN")
If POR = vbYes Then
Me.AllowEdits = True
sqlAccion = "DELETE * FROM bd_minutas WHERE ((facturadefinitiva = " & ultimafactura & ") AND (SERIE = '" & txtserie & "'))"
CurrentDb.Execute sqlAccion
DoCmd.GoToRecord , , acNext
Me.Refresh
MsgBox ("factura Borrada")
Me.AllowEdits = False
Else
MsgBox ("Proceso Cancelado")
End If
Else
MsgBox " Solo se puede borrar la ultima factura generada"
End If
End Sub

seguro que algo estoy haciendo mal.

gracias.

1 respuesta

Respuesta
1

Vale, está claro.

Date cuenta de que cuando asignas valor a la variable ultima dices:

ultimafactura = DMax("facturadefinitiva", "bd_minutas")

Esto te calcula la ultima factura. De cualquier serie.

Cuando eliminas lo haces borrando la factura con el número calculado pero de la serie que te introducen.

Deberías modificar la línea como:

ultimafactura = DMax("facturadefinitiva", "bd_minutas","serie = '" & txtserie & "'")

Esto te calcularía la última factura de la serie.

Ten en cuenta las comillas simples

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas