Jeg har i en access database en function der køre hver gang nogen ændre værdien i et felt - Funktionen registrer den gamle værdi og den nye værdi - Dvs. en logfil af alle ændringer.
Men hvis folk sletter en hel linje så bliver der ikke registereret noget. Jeg vil gerne benytte den event der hedder "On Delete" som netop køre en event ved sletning af en linje. Jeg kan se, at denne event køres for hver post der er i en linje - Dvs. hvis jeg f.eks. sletter en linje hvor der er 5 felter/poster man kan udfylde så køres eventen 5 gange (altså hver gang den sletter et felt/post)
Det jeg så gerne vil er, at jeg vil hente fange værdierne af de felter den sletter. Det jeg søger er en kommando til at hente værdien af netop det felt den er ved at slette - Håber i forstår hvad jeg mener eller skal jeg gerne uddybe :-)
The Delete event occurs when the user performs some action, such as pressing the DEL key, to delete a record, but before the record is actually deleted.
The BeforeDelConfirm event occurs after the user deletes to the buffer one or more records, but before Microsoft Access displays a dialog box asking the user to confirm the deletions.
The AfterDelConfirm event occurs after the user confirms the deletions and the records are actually deleted or when the deletions are canceled.
Private Sub Form_BeforeDelConfirm(Cancel As Integer, _ Response As Integer) ' Suppress default Delete Confirm dialog box. Response = acDataErrContinue ' Display custom dialog box. If MsgBox("Delete this record?", vbOKCancel) = vbCancel Then Cancel = True End If End Sub
Private Sub Form_AfterDelConfirm(Status As Integer) Select Case Status Case acDeleteOK MsgBox "Deletion occurred normally." Case acDeleteCancel MsgBox "Programmer canceled the deletion." Case acDeleteUserCancel MsgBox "User canceled the deletion." End Select End Sub
Har læst denne hjælpefil - Men det er ikke det jeg søger.
Ovenstående beder bare brugeren om at bekræfte om man vil slette linjen. Det jeg søger er en måde at hente feltnavnet og værdien i feltet på det felt der er ved at blive slettet
F.eks. således at hvis jeg sletter en række med 5 felter - hvis jeg her har mulighed for at hente feltnavn og værdi inden den slettes så kan jeg smide den over i min logfil så man kan se hvad der stod i den linje der blev slettet.
Men hvilken kommando skal jeg bruge for at få den til at hente navnet på det felt den er ved at slette? For når jeg markerer en hel linje og klikker slet så vil koden jo blive kørt 5 gange hvis der er 5 felter i linjen. Derfor har jeg brug for at kunne identificerer i min kode hvilket felt der er ved at blive slettet så jeg kan hente værdien af feltet inden den slettes.
jeg har selv lavet tilsvarende funktion, hvor jeg brugte denne kode:
Private Sub Form_Delete(Cancel As Integer) If MsgBox("Ønsker du at slette denne post?", vbQuestion + vbYesNo, "Slet?") = vbYes Then SkrivTilHistorik Me.RecordSource, PrimærNøgle, PKey, HandlingSletning
'Brug sendkeys til at acceptere dialogboksen, som spørger om du er sikker. 'Denne metode er ikke helt pæn, da Sendkeys er lidt fy-fy SendKeys "{ENTER}", False Else DoCmd.CancelEvent End If End Sub
SkrivTilHistorik er den funktion, som opretter en post i min historik-tabel.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.