Private Sub SeuraavaTietue_Click() On Error GoTo Err_SeuraavaTietue_Click DoCmd.GoToRecord , , acNext Exit_SeuraavaTietue_Click: Exit Sub Err_SeuraavaTietue_Click: MsgBox Err.Description Resume Exit_SeuraavaTietue_Click End Sub
Eli, kysymys kuuluu:
Miten saisin kyseisen lomakkeen toimimaan niin, että käyttäjä EI VOI siirtyä seuraavaan tietueeseen, ennen kuin on painanut "Päivitä" -painiketta:
Private Sub PaivitaTiedot_Click() On Error GoTo Err_PaivitaTiedot_Click DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 Exit_PaivitaTiedot_Click: Exit Sub Err_PaivitaTiedot_Click: MsgBox Err.Description Resume Exit_PaivitaTiedot_Click End Sub
Ei varmaan ole liian vaikea? Ilmeisemmin helpoin tapa on tehdä MsgBox, kun käyttäjä klikkaa seuraava tietue painiketta.
Kiitos paljon avusta
P.S. Linkkejä vastaaviin ongelmiin jne..olisi jees
mod: kooditagit lisätty
Määrittele vaikka ohjelman alussa muuttuja:
Dim lupa As Boolean
Aseta PaivitaTiedot-aliohjelmassa muuttujan arvoksi True. Jos SeuraavaTietue-aliohjelmassa muuttuja ei ole True, ei tapahdu mitään. Jos kuitenkin on, seuraava tietue tulee esille ja muuttujan arvo muuttuu jälleen Falseksi odottelemaan seuraavaa päivitystä.
Tosin käyttäjälle voisi olla mukavaa, jos päivitys tietueen lukemisessa tapahtuisi itsestään tarpeen tullen.
Kiitos paljon neuvosta.Olen melkoisen vasta-alkaja koodauksessa.Voisitko heittää esim. tuohon paivitatiedot_Click-aliohjelmaan(ja SeuraavatietueClick) tuon mainitsemasi Dim as boolean jutun.
Sori,aloittelijaa joudut neuvomaan.:)
Eli kirjoita muuttujan määrittely (Dim) ihan koodin alkuun, (General)-osioon. Silloin lupa-muuttuja on käytössä kaikissa aliohjelmissa.
Tietojen päivityksen loppuun tulee:
lupa = True
Seuraavan tietueen näytön alkuun tulee:
If Not lupa Then Exit Sub
Ja saman aliohjelman loppuun vielä:
lupa = False
Kiitos neuvoista.Homma lähti futaamaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.