15. marts 2002 - 16:04Der er
14 kommentarer og 2 løsninger
Finde "næstsidste" post.
Jeg har en formular, baseret på en forespørgsel. I formularen kan data kun vises, ikke ændres. Jeg bladrer frem gennem mine poster via en knap på formularen. Når jeg er nået til den sidste post, og klikker på knappen vises en meddelesesboks med Error 2105: "Du kan ikke gå til den angivne post".
Er der en mulighed for, at når jeg faktisk bladrer frem til den "sidste" record, at deaktivere knappen, så den simpelthen ikke kan bruges mere.
Og selvfølgelig har jeg også samme problem, når jeg - med en anden knap bladrer en record tilbage ad gangen. Her har jeg behov for at vide, at jeg står på den "første record".
Hvis denne sidste post er en ny post, kan du sættte formularens egenskaber "Tillad Tilføjelser" til nej. Så kan du ikke "gå forbi" den sidst oprettede post.
You can alter the on click event for the appropriate button so that no message is displayed. You can also disable the button but then you will need to enable it again at the corect time.
Here is an example for the go to next record button, notice the line If Err.Number = 2105 ...... this just continues with displaying an error. You can alter the other buttons too.
Private Sub Command14_Click() On Error GoTo Err_Command14_Click
DoCmd.GoToRecord , , acNext
Exit_Command14_Click: Exit Sub
Err_Command14_Click: If Err.Number = 2105 Then Resume Exit_Command14_Click MsgBox Err.Description Resume Exit_Command14_Click
I dette tilfælde vil jeg være hård og foreslå, at du blot benytter "On Error resume next". Der kan ikke opstå andre fejl, end at du når til enden af tabellen. Derfor er det trygt nok at bruge denne errorhandler, som man ellers skal være forsigtig med.
Private Sub cmdNæste_Click() on error resume next docmd.gotorecord,,acnext end sub
Mugs> nej den sidste post er ikke en ny post. Der kan slet ikke oprettes poster i formularen. De kan kun vises og et enkelt felt kan rettes..
Thomas og Terry> Jeg jar prøvet begge jeres løsninger, og ganske vist får jeg ikke fejlmeddelelsen, men den er jeg allerede sluppet af med. Og jeg ønsker egentlig at opnå at brugeren kan se,
Kan se at han er på den sidste post/første post, ved at der ikke længere kan bladres frem/tilbage. Dette bør ske allerede når sidste/første post vises.
Okay, se her: På formens VedAktuel-hændelse lægger du følgende kode:
Private Sub Form_Current() Select Case Me.CurrentRecord Case Me.RecordsetClone.RecordCount Me!cmdForrige.SetFocus Me!cmdNæste.Enabled = False Case 1 Me!cmdNæste.SetFocus Me!cmdForrige.Enabled = False Case Else Me!cmdNæste.Enabled = True Me!cmdForrige.Enabled = True End Select End Sub
cmdNæste og cmdForrige er navnene på dine knapper som bladre frem og tilbage. Tilpas koden til dine egene navne.
På selve knapperne skal du så bare have: Docmd.GotoRecord ,, acnext
thomas> Det halter lidt i din kode. Bruger jeg den uændret er knappen disablet, når jeg åbner formularen. Ombytter jeg True and False, virker den fra start, men disables altid allerede ved 2. record, uanset hvor mange der er.
Jeg har imidlertid nu selv fundet en løsning inspireret af Terrys, noget med at bladre en record frem og se og fejlmeddelelsen afgives, derefter bladre en record tilbage og disable knappen. Så ebler jeg den igen, når jeg fx trykker Tilbage, idet jeg ført undersøger om Frem knappen er enabled eller ej. Og omvendt med den anden knap. Tak for hjælpen og inspirationen til jer begge.
Ja, jeg har haft formularten helt lukket. Desværre var det Næste knappen der var disabled. På det tidspunkt havde hjeg slet ikek en tilbage-knap i formularen. Det skal der heller ikke være i den endelige løsning. Det er meningen at man kun skal kunne bladre posterne igennem fra en ende af, og når man er nået til enden, skal man kun kunne forlade formularen.
Niels-> Ja, det er rigtigt. Det havde jeg lige glemt at tage højde for ;o)
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.