[VBA] Access maken van een button in vba

Pagina: 1
Acties:
  • 126 views sinds 30-01-2008
  • Reageer

  • Sonic
  • Registratie: Februari 2000
  • Laatst online: 21-04 16:47
Ik heb een hele simpele vraag. Hoe kan ik een knop maken in VBA? Is dit mogelijk?
Heb gezocht op google en op got maar kon het niet vinden, wel hoe je een button kan verwijderen. Als ik een button in VBA kan maken, kan ik d.m.v. een loopje de knoppen automatisch generenen :)

Bedankt alvast

[edit]
typ fout in de titel moet Access zijn, sorry!

[ Voor 9% gewijzigd door Sonic op 04-10-2005 12:55 ]


  • BertS
  • Registratie: September 2004
  • Laatst online: 13-02 08:33
CreateControl dacht ik.
Maar gaat alleen werken als je form in designmodus staat

  • Sonic
  • Registratie: Februari 2000
  • Laatst online: 21-04 16:47
bee-es schreef op dinsdag 04 oktober 2005 @ 12:55:
CreateControl dacht ik.
Maar gaat alleen werken als je form in designmodus staat
Hmm eigenlijk zoek ik iets als on load van het form dat hij dan die knoppen tekent? Is dat er ook?

[ Voor 3% gewijzigd door Sonic op 04-10-2005 13:01 ]


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Stop AI Slop

Als je al een knop hebt, moet je die een index (0) geven.

Bijvoorbeeld

Knop(0)

Dan kun je hem laden met
Visual Basic:
1
2
3
4
5
6
7
Sub Form_Load()

Knop.Load
Knop(Knop.Ubound).Move 100, 100
Knop(Knop.Ubound).Visible = True

End Sub


En elke keer dat je Knop.Load aanroept wordt een nieuwe knop geladen.

[ Voor 14% gewijzigd door CodeCaster op 04-10-2005 13:29 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • BertS
  • Registratie: September 2004
  • Laatst online: 13-02 08:33
CodeCaster schreef op dinsdag 04 oktober 2005 @ 13:28:
Als je al een knop hebt, moet je die een index (0) geven.

Bijvoorbeeld

Knop(0)

Dan kun je hem laden met
Visual Basic:
1
2
3
4
5
6
7
Sub Form_Load()

Knop.Load
Knop(Knop.Ubound).Move 100, 100
Knop(Knop.Ubound).Visible = True

End Sub


En elke keer dat je Knop.Load aanroept wordt een nieuwe knop geladen.
Dat werkt niet in Access, want die kent geen ControlArray's

@TS: je kunt ze standaard onzichtbaar zetten en dan bij het laden van je form zichtbaar maken en positioneren.

[ Voor 12% gewijzigd door BertS op 04-10-2005 14:52 ]


  • Sonic
  • Registratie: Februari 2000
  • Laatst online: 21-04 16:47
bee-es schreef op dinsdag 04 oktober 2005 @ 14:51:
[...]

Dat werkt niet in Access, want die kent geen ControlArray's

@TS: je kunt ze standaard onzichtbaar zetten en dan bij het laden van je form zichtbaar maken en positioneren.
Indd het is niet anders :'(
Naja doen we het zo, vind het zelf niet echt een mooie oplossing maar goed ;)
Bedankt iig allemaal

  • henkleerssen
  • Registratie: December 2000
  • Niet online

henkleerssen

Your life is as you narrate it

CodeCaster schreef op dinsdag 04 oktober 2005 @ 13:28:
Als je al een knop hebt, moet je die een index (0) geven.

Bijvoorbeeld

Knop(0)

Dan kun je hem laden met
Visual Basic:
1
2
3
4
5
6
7
Sub Form_Load()

Knop.Load
Knop(Knop.Ubound).Move 100, 100
Knop(Knop.Ubound).Visible = True

End Sub


En elke keer dat je Knop.Load aanroept wordt een nieuwe knop geladen.
als je een voorbeeld geeft wel goed doen.. :)
code:
1
2
3
4
5
6
7
8
9
10
Private Sub cmdGenesis_Click()
Dim iAantalknoppen As Integer

iAantalknoppen = knop().Ubound
Load knop(knop().Ubound + 1)

knop(knop().Ubound).Move knop(iAantalknoppen).Left + knop(iAantalknoppen).Width + 100, 100
knop(knop().Ubound).Visible = True

End Sub

wel ff een button array van "knop" maken en nog een button die "cmdGenesis" heet.
Maar dat werkt dus niet met access nee.. maar wat je welt kunt doen is hide van bepaalde controls (op bijvoorbeeld header of footer deel).. of hoeveel buttons wil je maken eigenlijk?

  • Sonic
  • Registratie: Februari 2000
  • Laatst online: 21-04 16:47
Nou het is eigenlijk zo..
Ik wil een stuk of 50 buttons plaatsen op het scherm!
Als je op een button klikt moet hij het nummer (dus de button heet: btnKnop(4) ) op een formulier schrijven en knop 4 disablen.
Nu is dat niet zo moeilijk te maken.. Maar dat zou betekenen dat ik voor 50 knoppen ifjes moet schrijven :( Volgens mij kan dat veel makkelijk.
Ik heb maar besloten dat ik ze er gewoon zelf opzet. Dus alle 50 zet ik er statisch op.

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Aan die 50 knopjes met 50 onclick procedures ontkom je niet, maar 50 ifjes is overdreven. Eén procedure waarin je met screen.activecontrol de ingedrukte knop achterhaald is voldoende, en dan hoef je in de eventhandler van de knop alleen naar de procedure te verwijzen.

Om het helemaal mooi te maken zet je een indexgetal in de extrainfo van de knop, wat je vervolgens uitleest met control.tag.

[ Voor 20% gewijzigd door Lustucru op 11-10-2005 11:59 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1