Avatar billede Jan Vittrup Nybegynder
15. februar 2005 - 15:26 Der er 15 kommentarer og
1 løsning

Hak i check boks viser en skjult knap….

Jeg har en checkboks ”chkKontinuer” som skal bruges hvis jeg har en post hvor nogle af felterne skal gentages i en ny post.
Når denne checkboks er mærket af, skal der vise sig en knap som er den jeg kopierer med,
Og når den ikke er mærket af, skal knappen ikke være der.
Det er noget med .visible men kan ikke lige finde løsningen.

På forhånd tak

Jan
Avatar billede kabbak Professor
15. februar 2005 - 15:30 #1
Private SubchkKontinuer_Click()
    If Me.chkKontinuer = True Then
        Me.Hylde.Visible = False
     
    Else
        Me.Hylde.Visible = True
        End If
End Sub

her er en jeg bruger til at skjule tekstbikse med, det er på samme måde.
Avatar billede jensen363 Forsker
15. februar 2005 - 15:30 #2
Private Sub Afkrydsningsfelt_AfterUpdate()

    If Afkrydsningsfelt.Value = -1 Then
        knap.visible = True
    Else
      knap.visible = False

    End If
     
End Sub
Avatar billede kabbak Professor
15. februar 2005 - 15:31 #3
Private Sub chkKontinuer_Click()
    If Me.chkKontinuer = True Then
        Me.Hylde.Visible = False
    Else
        Me.Hylde.Visible = True
    End If
End Sub
15. februar 2005 - 17:27 #4
Koden er I nogenlunde enige om, men I er jo nødt til også at lægge den på Form_Current (VedAktuelt) således at knappen skjules og vises, når man bladre i posterne.

Jeg mener derfor, at det optimale er at lave en lille sub:

Public funtion VisSkjul
    If Me!chkKontinuer Then
        Me!knap.visible = True
    Else
        Me!knap.visible = False
    End If
End function

Og på både Form_Current og på chkKontinuer_AfterUpdate lægges så denne linie:

call VisSkjul
Avatar billede Jan Vittrup Nybegynder
15. februar 2005 - 17:57 #5
Hej thomasjepsen, det lyder,.. vist nok fornuftigt (ud fra min ringe viden udi VBA) :-)
Hvor lægger jeg den public kode? I et modul for sig eller? i formularen hedder det jo Private... hvis jeg lægger den ind i et nyt modul så bliver linien Public mærket op med rød skrift...
15. februar 2005 - 18:01 #6
Du copy/paster bare hele funktionen ind i formularens modul. VBA-editoren kunne så se således ud for din formular:

Option Compare Database
Option Explicit

Private Sub Form_Current()
    VisSkjul
End sub

Private Sub chkKontinuer_AfterUpdate()
    VisSkjul
End sub

Public funtion VisSkjul
    If Me!chkKontinuer Then
        Me!knap.visible = True
    Else
        Me!knap.visible = False
    End If
End function
Avatar billede Jan Vittrup Nybegynder
15. februar 2005 - 18:44 #7
Hmm, det skal ikke være nemt...
Nu tog jeg og pastede din kode ind, uden bemærkningerne
koden ser sådan ud:
Option Compare Database
Option Explicit

Private Sub Form_Current()
    VisSkjul
End Sub

Private Sub chkKontinuer_AfterUpdate()
    VisSkjul
End Sub

Public funtion VisSkjul()*
    If Me!chkKontinuer Then
        Me!knap.Visible = True
    Else
        Me!knap.Visible = False
    End If
End Function
-------
Første del med VisSjkul vises rigtigt,
Men det med
Public funtion VisSkjul()(som jeg har mærket med *)
er stadig mærket op med rød skrift
Hvad gør jeg galt?
15. februar 2005 - 18:54 #8
Ja, der er selvfølgelig en tastefejl. Der skal stå:

Public funCtion VisSkjul()

Sorry ;)
Avatar billede Jan Vittrup Nybegynder
15. februar 2005 - 19:41 #9
Ja, det er jo mig som bare kan læse det igennem.. :-)Sorry
MEN den kom op med fejl og den macro jeg har kaldt VisSkjul?
Jeg prøvede så at lave det sådan =VisSkjul()og det virker tilsyneladende..
Men nu kan jeg ikke tilføje ny poster uanset om der er krydset af i
"chkKontinuer" eller ej.

"Udtrykket VedAktuel gav en fejl invalid use off null"

Hvis jeg efterfølgende trykker på kopierknappen får jeg en errror 94, også med "invalid use off null" og den går til koden for kopierknappen og mærker " ID = Me![IssueID]" op med gult
Nu er det vist lidt for langhåret for mig, er det fordi den ingen ID har? det får den jo først når man skriver en ny post, eller?
15. februar 2005 - 19:46 #10
nå ja, det er en dum, ubetydelig fejl, som kan fjernes på flere måder. Dette burde være én af dem:

Public function VisSkjul()
    If Me!chkKontinuer and not Me.Newrecord Then
        Me!knap.Visible = True
    Else
        Me!knap.Visible = False
    End If
End Function
Avatar billede Jan Vittrup Nybegynder
15. februar 2005 - 20:08 #11
Ja,ja ja :-) Det nærmer sig,
Nu kan jeg lave en ny post, som udfyldes bla bla, men når jeg så sætter hak i "chkKontinuert" så kommer knappen ikke frem, er det en Me.refresh jeg skal bruge?
kun når jeg går en post tilbage eller frem. Jeg har prøvet på formularens VedÆndret og "chkKontinuert" vedKlik...
16. februar 2005 - 08:19 #12
havde du ikke også kommandoen VisSkjul på chkKontinuert_AfterUpdate?

Den skulle sørge for, at knappen også blev vist/skjult når man klikker på checkboksen
Avatar billede Jan Vittrup Nybegynder
16. februar 2005 - 08:38 #13
Godmorgen Thomas
Jo, jeg har sat VisSkjul på chkKontinuert_AfterUpdate og det virker også, men først efter man går en post tilbage eller laver en ny, og så virker det.Jeg prøvede at lave en opdaterknap, også spiller det fint,men jeg ville gerne have at der ikke skulle huskes at trykke på opdater...
16. februar 2005 - 08:44 #14
Godmorgen :o)

okay, hvis det virker, så kan du bare tage koden fra knappen og lægge under VisSkjul-linien på chkKontinuert_AfterUpdate
Avatar billede Jan Vittrup Nybegynder
16. februar 2005 - 14:22 #15
Hej Jensen363 dit indput blev hjørnestenen i løsningen, tak for det
Thomas jeg vender lige tilbage til dig :-D
Avatar billede jensen363 Forsker
16. februar 2005 - 14:24 #16
Ok ... takker :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