Toon posts:

[VB] naam toekennen aan variabele

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb 7 frames genaamd fra met de indexen 0 t/m 6.
Daarbij heb ik op ieder frame 3 datePickers genaamd corresponderend aan het frameNummer bijvoorbeeld:

fra(1) heeft dtp1(0), dtp1(1), dtp1(2)

fra(2) heeft dtp2(0), dtp2(1), dtp2(2)

Ook heeft ieder frame een checkbox corresponderend aan het framenummer.

Nu wil ik, als de checkbox TRUE is, de waarde van de betreffende datePickers ophalen echter krijg dat niet voor elkaar.

Nu dacht ik het volgende te doen maar dat werkt niet

code:
1
2
3
4
5
Dim objDTP As Variant
objDTP = dtp(chkIndex)  <---- chkIndex is de waarde van de checkbox die TRUE is
Set objDTP = DatePicker

objParam(3) = objDTP(0).Value


Iemand enig idee? ik kan toch aan een variant elk object koppelen?

Verwijderd

Hoe werkt het niet?

  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 22-05 23:32
Als jou DatePicker dtp1 heet zal dtp(chkIndex) niet gaan werken, dan zou dtp1(chkIndex) de oplossing moeten zijn. :) Lijkt me een typo.

Verder zou jou construstie wel moeten werken, heb het zelf vaak genoeg gebruikt op deze manier, al moet je wel zorgen dat de inhoud van die variable chkIndex 1 is en niet "True" als string ofzo, maar dat zal wel duidelijk wezen :P
edit:
Verder zou de foutmelding die VB zelf geeft ook wel fijn zijn. Je omschrijving is ietwat vaag op deze manier, je zegt namelijk niet WAT er mis gaat. Zoals hierboven ook al werd opgemerkt.

[ Voor 36% gewijzigd door Mac_Cain13 op 15-01-2004 17:38 . Reden: Typo en Edit ]


Verwijderd

Topicstarter
wel goed lezen mannen ;)

Ik heb dus meerdere frames met daarop elke keer 3 datePickers en 1 checkBox!

Frame1 heeft de volgende objecten

datePicker1(0), datePicker1(1) en datePicker1(2)
chkBlaat1

nu weet ik natuurlijk niet welke checkbox op TRUE gezet wordt

dus bij het opslaan loop ik door de colllectie checkboxen heen en controleer op TRUE

code:
1
2
3
4
5
6
7
8
Private Sub controleerCHKBlaat()
    Dim i As Integer
    For i = checkBlaat.LBound To checkBlaat.UBound
        If checkBlaat(i).Value = True Then
            Call saveDeRest(i)
        End If
    Next i
End Sub


Nu heb ik de waarde van de checkbox dus als Frame5 de checkbox op true heeft
wil ik die waarde overnemen in mijn datePickers die dan heten resp. datePicker5(0), datePicker5(1) en datePicker5(2)

die 5 is dus ook een variabel getal!

Hoe bind ik die nu aan dat object.? :?

Verwijderd

chkBlaat is toch geen control array, dus hoe kan checkBlaat(i) ooit werken :?

Verwijderd

code:
1
2
3
Dim ctl As Control
  
  Set ctl = Me.Controls("datepicker5")(0)

[ Voor 31% gewijzigd door Verwijderd op 15-01-2004 17:58 . Reden: code tagjes ]


  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 22-05 23:32
Bij datePicker5(2), kun je die 2 vervangen door een variable, maar die 5 zul je echt met de hand moeten doen. Verder is (zoals KtK al zegt) chkBlaat geen control array dus iets als chkBlaat(i) zal daar niet gaan werken. Je moet gewoon checkBlaat1.value enz omstebeurt checken, dat kan je niet in een loop proppen.
De zooi in een object proppen kan zoals TheChkU hierboven beschrijft, maar eigenlijk begrijp ik niet exact wat het probleem is, of ligt dat aan mij :?

[ Voor 20% gewijzigd door Mac_Cain13 op 15-01-2004 18:02 ]


Verwijderd

Topicstarter
Verwijderd schreef op 15 januari 2004 @ 17:46:
chkBlaat is toch geen control array, dus hoe kan checkBlaat(i) ooit werken :?
waarom is chkBlaat geen control array?
Ik heb toch 6 frames met op elk frame een chkBlaat
(misschien verkeerd uitgelegd :? )

dus ik heb wel degelijk 6 x chkBlaat ---> chkBlaat(0) t/m chkBlaat(5)
Dan check ik welke van die 6 true is en daarmee ga ik die saveDeRest(i) doen alleen moet die i meegenomen worden naar de datePickers omdat die datePickers een naam hebben met een corresponderend nummer en ook een index hebben van 0 tot 2!

BTW ik heb dus 12 van die datepickers echter per 3 op een frame. Het moet toch mogelijk zijn anders moet ik dus die 12 datepickers in een zelfstandige control array zetten dtp(0) t/m dtp(11) maar dan typ ik me helemaal suf!

[ Voor 20% gewijzigd door Verwijderd op 15-01-2004 19:47 ]


  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 22-05 23:32
Je moet er wel echt een contolarray van maken, je kan nl op verschillende forms elementen hebben met dezelfde naam zonder dat ze een controlarray vormen!
Die datepickers vormen allemaal wel een apparte control arraytjes.

Enne dat "maar dan typ ik me helemaal suf!" valt ook wel mee. De regels lijken zeer veel op elkaar dus ff copy & paste doen en de regels aanpassen. Ook bij code kloppen zijn der rotklusjes :P

[ Voor 7% gewijzigd door Mac_Cain13 op 15-01-2004 20:12 ]


Verwijderd

Topicstarter
Mac_Cain13 schreef op 15 januari 2004 @ 20:11:
Enne dat "maar dan typ ik me helemaal suf!" valt ook wel mee. De regels lijken zeer veel op elkaar dus ff copy & paste doen en de regels aanpassen. Ook bij code kloppen zijn der rotklusjes :P
Heb je wel gelijk in maar ik denk altijd, als het geautomatiseerd kan worden (en dus zo min mogelijk code gebruik) dan is dat beter ;)

  • Mac_Cain13
  • Registratie: Juni 2003
  • Laatst online: 22-05 23:32
Verwijderd schreef op 15 januari 2004 @ 20:14:
[...]
Heb je wel gelijk in maar ik denk altijd, als het geautomatiseerd kan worden (en dus zo min mogelijk code gebruik) dan is dat beter ;)
Uiteraard, maar ik denk dat dat in dit geval niet anders kan, volgens mij kun je een controlarray namelijk ook niet spreiden over meerdere forms. (Correct me if I'm wrong!)
Dus zul je echt moeten typen! :P Suc6.

Verwijderd

Topicstarter
Mac_Cain13 schreef op 15 januari 2004 @ 20:25:
[...]


Uiteraard, maar ik denk dat dat in dit geval niet anders kan, volgens mij kun je een controlarray namelijk ook niet spreiden over meerdere forms. (Correct me if I'm wrong!)
Dus zul je echt moeten typen! :P Suc6.
Thnxs mensen voor alle replies.... ;)

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 12:56

RayNbow

Kirika <3

Verwijderd schreef op 15 januari 2004 @ 17:09:
...

Nu wil ik, als de checkbox TRUE is, de waarde van de betreffende datePickers ophalen echter krijg dat niet voor elkaar.

...
Lijkt het je niet verstandiger om te controleren of chkBlaat.Value = vbChecked is ipv True?

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Verwijderd

Volgens mij kun je 't best alle datePickers gewoon in één control array proppen. Dus gewoon 21 datePickers, met index 0 t/m 20. Dan 7 chkBlaat's met index 0 t/m 7. Vervolgens checken welke aan staan met 'n for-loopje. Dan weet je dus de index van degene die aan staat, waarmee je i * 3 kan doen, om de datePickers te controleren. Kan met twee geneste for-loopjes. Zo controleer ik ook hoe webformulieren zijn ingevuld. Werkt wel mooi.
waarom is chkBlaat geen control array?
datePicker1(0), datePicker1(1) en datePicker1(2)
chkBlaat1

[ Voor 5% gewijzigd door Verwijderd op 16-01-2004 13:05 ]


Verwijderd

Topicstarter
Geen idee. Ik weet niet beter dan dit:

Syntax

object.CheckBox [= boolean]

The CheckBox property syntax has these parts:

Settings

The settings for boolean are:

Setting Description
True A check box is displayed to the left of the selected date.
False (Default) A check box is not displayed to the left of the selected date.

;)
Verwijderd schreef op 16 januari 2004 @ 13:04:
Volgens mij kun je 't best alle datePickers gewoon in één control array proppen. Dus gewoon 21 datePickers, met index 0 t/m 20. Dan 7 chkBlaat's met index 0 t/m 7. Vervolgens checken welke aan staan met 'n for-loopje. Dan weet je dus de index van degene die aan staat, waarmee je i * 3 kan doen, om de datePickers te controleren. Kan met twee geneste for-loopjes. Zo controleer ik ook hoe webformulieren zijn ingevuld. Werkt wel mooi.


[...]

[...]
Fjiew, dat is een goeie tip THNXS...ik heb het al opgelost door toch alles uit te typen :? (niet echt veel hoor maarjah, als het niet nodig is....dan niet ;) ).
Jouw oplossing is de beste KtK _/-\o_ die ga ik zeker gebruiken!

[ Voor 56% gewijzigd door Verwijderd op 16-01-2004 13:09 ]


Verwijderd

RayNbow schreef op 16 januari 2004 @ 12:30:
Lijkt het je niet verstandiger om te controleren of chkBlaat.Value = vbChecked is ipv True?
Een checkBox heeft inderdaad 3 verschillende stadia; checked, unChecked en grayed.

Verwijderd

Topicstarter
Jeps, ik heb het ineens gevonden:

Setting Value Constant
Unchecked 0 vbUnchecked
Checked 1 vbChecked
Unavailable 2 vbGrayed


Bedankt voor alle tips 'tweakers' ;)
Pagina: 1