Avatar billede jkrons Professor
15. marts 2002 - 16:04 Der 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".
Avatar billede mugs Novice
15. marts 2002 - 16:29 #1
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.
Avatar billede terry Ekspert
15. marts 2002 - 17:14 #2
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
   
End Sub
15. marts 2002 - 20:22 #3
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
Avatar billede jkrons Professor
15. marts 2002 - 22:54 #4
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,
15. marts 2002 - 22:55 #5
...kan se hvad?
Avatar billede jkrons Professor
15. marts 2002 - 22:58 #6
ja, jeg fik trykket lidt hurtigt på knappen.

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.
15. marts 2002 - 23:11 #7
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
Avatar billede jkrons Professor
15. marts 2002 - 23:26 #8
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.

Er der noget jeg har overset?
Avatar billede jkrons Professor
15. marts 2002 - 23:29 #9
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.
15. marts 2002 - 23:29 #10
Når du åbner formularen, skal din cmdForrige være disabled (da du jo står på første post!)

Har du haft formularen helt lukket?
15. marts 2002 - 23:30 #11
vent!
15. marts 2002 - 23:31 #12
never mind
Avatar billede jkrons Professor
15. marts 2002 - 23:32 #13
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.
Avatar billede jkrons Professor
15. marts 2002 - 23:33 #14
Jeg tror det er ved at være sengetid, så måske ser jeg klarere i morgen.

Tak for hjælpen.
Avatar billede nih Novice
17. marts 2002 - 10:07 #15
Thomas ->

I nogle tilfælde er værdien af .RecordCount = 1 indtil du bladre i recordsettet.

Niels
17. marts 2002 - 11:03 #16
Niels-> Ja, det er rigtigt. Det havde jeg lige glemt at tage højde for ;o)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester