Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: vba koodia:yksinkertainen silmukka

bmore [09.02.2004 14:54:39]

#

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ä

Heikki [09.02.2004 15:08:40]

#

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

bmore [09.02.2004 15:37:16]

#

Accessissa ei kysy... Visual Basicissa kyllä...

Antti Laaksonen [09.02.2004 18:21:37]

#

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

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta