Miten voin tehdä sillain, että kun on tehnyt jonkin jutun, niin ohjelma ei anna tehdä sitä samaa hommaa vaikka 15 minuuttiin?
Ehkä järkevintä olisi toteuttaa se Time() funktiolla vaikka näin:
Dim viimeks As Integer Private Sub Command1_Click() 'laitetaan taulukkoon taulukko aika erottimella : taulukko = Split(Time, ":") 'Time=kellonaika 'jos Time on 17:52:43 niin 'taulukko(0)=17 'taulukko(1)=52 'taulukko(2)=43 If taulukko(1) - viimeks < 1 Then MsgBox "viime suorituskerrasta on liian vähän aikaa" Else MsgBox "koodia..." viimeks = taulukko(1) End If End Sub
Eli tuo koodi tarkistaa aina kun commandbuttonia painetaan onko viime suorituskerrasta kulunut alle minuutti.
Jos tekeminen liittyy yksittäiseen aliohjelmaan, tee Static-tyyppinen muuttuja aika, jonka arvo säilyy aliohjelman eri kutsukerroilla. Jos aika on 0 (aliohjelmaa ei ole kutsuttu vielä kertaakaan) tai nykyhetken ja sen erotus minuutteina on suurempi kuin 15, haluttu asia tehdään. DateDiff-funktiosta: http://vb.ohjelmointiputka.net/?DateDiff
Private Sub Command1_Click() Static aika As Date If aika = 0 Or DateDiff("n", aika, Now) > 15 Then MsgBox "Nyt tehtiin." aika = Now Else MsgBox "Ei vielä!" End If End Sub
Aihe on jo aika vanha, joten et voi enää vastata siihen.