Eli tilanne tämä:
Accessin lomakkeella on tekstikenttiä n.20 kappaletta (nimetty txt1, txt2, txt3 ... ), joiden visible arvo = 0.
Pitäisi saada nappia painamalla kaikki kentät näkyviksi. Tälläistä koodia yritin mutta kun en oo koodari niin ei onnistu:
------------------------
Dim i as Integer
i=0
//tarkastetaan onko tekstikenttä 1 piilossa
if txt1.Visible = False Then
While 1 < 20
form.txt(i).Visible = True
i=i + 1
Wend
Else
Exit Sub
End If
Elikkä apuja tarttis! Se herjaa tosta form.txt() :stä
Jos ne on nimetty txt1 txt2 jne, ei tuo oikein taulukolla onnistu. Tee tekstikentistä taulukko (tee ensin yksi nimellä teksti, sitten paina oikea nappi -> copy. Tämän jälkeen ctrl+v ja kysyttäessä yes). Tämän jälkeen pastee niitä niin monta kun tarvitset. Nimet tulevat olemaan txt(0) txt(1) jne.
Tämän jälkeen tarkistus hoituisi koodilla:
dim i as integer 'jokanen kohta katotaa... for i=0 to 20 formi.txt(i).visible = True next
Accessissa ei kysy... Visual Basicissa kyllä...
Ainakaan Excelin VBA:ssa ei kontrolleilla ole lainkaan Index-ominaisuutta. Kumma juttu, mutta voit ratkaista ongelman seuraavalla tavalla.
Dim tkentta As Control 'käydään läpi kaikki formin kontrollit For Each tkentta In Me.Controls 'jos kontrollin nimi alkaa "txt"... If Left(tkentta.Name, 3) = "txt" Then '...tehdään siitä näkyvä tkentta.Visible = True End If Next
Aihe on jo aika vanha, joten et voi enää vastata siihen.