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 Sub
Timer 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 Loop
kojamo 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.