Toimiiko tuo timer niin kuin sen ajattelen toimivan..et jos Buffer ei oo 2, niin kaksi sekuntia loopissa ja ulos. Kieli siis VBA
Dim Buffer As String
Dim timer As Single
Buffer = MSComm1.CommEvent
Do Until Buffer = 2
If timer > TimeSerial(0, 0, 2) Then Exit Sub
Loop
Call Record
End SubTimer nollautuu vuorokauden vaihtuessa. Tallenna timerin arvo ennen luuppia muuttujaan ja vertaa luupissa Timeriä tähän muuttujaan. Kun erotus on 2 tullaan ulos luupista.
Dim timer As Single
timer = Timeserial(0,0,2)
...
Do Until ...
If timer > (0,0,2) Then Exit sub
Näinkö?
Dim t1 As Single t1 = Timer Do Until ... If Timer - t1 > 2 Then Exit Do ... Loop
oke, kiitän...käytän tuota exit sub:ia, kun seuraava vaihe on turha jos buffer ei oo 2.
Vielä kysymys tuosta timerista, Pitääkö tuo olla isolla Timer vai timer? Miksi mulla vaihtaa ison T:n pieneksi?
siis tuo rullaa sekunneissa kaksi sekuntia? Aika syötetään aina sekunneissako
Dim Buffer As String
Dim t1 As Single
Buffer = MSComm1.CommEvent
t1 = timer
Do Until Buffer = 2
If timer - t1 > 2 Then Exit Sub
Loopkojamo kirjoitti:
Pitääkö tuo olla isolla Timer vai timer?
Ei merkitystä, VB on case insensitive.
kojamo kirjoitti:
Miksi mulla vaihtaa ison T:n pieneksi?
Dim-lauseessa oleva kirjotusmuoto ratkasee, mitä VB-IDE pitää oikeana. Korjaa se sinne, niin VB-IDE maagisesti vaihtaa kaikki isoiksi.
Se on VBA:ssa näköjään pienellä t:llä. Timer-funktio laskee sekunteja sadasosineen Keskiyöstä alkaen eli siis nollautuu aina kun vuorokausi vaihtuu. keskipäivällä klo. 12 sen arvo on siis 12*60*60 = 43200 ja puolisekuntia tämän jälkeen arvo on 43200,5.
Aihe on jo aika vanha, joten et voi enää vastata siihen.