[ sdds @ 05.03.2008. 13:48 ] @
Kako pomocu koda potvrditi klik OK za ovu poruku


If Err.Description = "No current record." Then

Hvala
[ domaci_a_nas @ 05.03.2008. 17:18 ] @
Problemu možeš pristupiti na više načina. Mislim da ne možeš da klikneš na message box jer se kod u trenutku pojavljivanja poruke blokira. Možeš koritstiti API (application program interface) funkciju messagebox koju možeš uključiti u kod.

Code:
Option Compare Database
Option Explicit
Private Declare Function MessageBox Lib "user32" _
   Alias "MessageBoxA" _
  (ByVal hwnd As Long, _
   ByVal lpText As String, _
   ByVal lpCaption As String, _
   ByVal wType As Long) As Long
Private Const MB_ICONINFORMATION As Long = &H40&

Private Sub Form_Load()
Me.TimerInterval = 500
MessageBox Me.hwnd, "Podatak ne postoji", "Moja poruka", MB_ICONINFORMATION
End Sub

Private Sub Form_Timer()
SendKeys "{ESC}"
Me.TimerInterval = 0
End Sub 


Druga varijanta bi bila da ne izbaciš nikakvu poruku već jednostavno postaviš Response = 0, ili da koristiš on Error Resume Next.
[ Zidar @ 06.03.2008. 14:06 ] @
U teoriji, svaka procedura u Accesu bi trebalo da ima Error Handling. To se postize ovako:

Code:

Sub MojaProcedure
ON ERROR GOTO ERROR_CODE

'ovde ide kod procedure koji nesto radi

EXIT_HERE:
 ON error resume NExt
'pre Exit sub dodaju se rs.close, set db=nothing i slicno
'ON Error Resume Next sluzi da ignorise greske koje mogu uneti rs.close i slicne komande
  Exit sub

ERROR_CODE:
Slect Case err.number
  case 123456
         ne radi nista u slucaju greske 123456
  case else 
         MsgBox Prompt:="Gresk " & err.number & vbcrlf & err.description
End select
Resume EXIT_HERE

end sub


Sve greske koje zelis da ignorises ili da uvedes posebnu poruku, stavis u Case komandu u ERROR_CODE sekciji.

Greske koje se ne mogu uhvatiti na ovaj nacin (unos duplikata, narusavanje referencijalnog integriteta i s cino) se love kodom u forminom On_Error eventu. U helpu imas veoma lepo objasnjenje za formin On_Error event, pa ga necu opisivati, a i bilo je na forumu.

[ ilekicika @ 25.05.2011. 13:19 ] @
Moj problem se može svrstati u ovu temu pa ne bih otvarao drugu, o čemu se zapravo radi:
Imam glavnu formu i dve podforme. Izvor podataka za formu je tabela a za obadve podforme query. Relacija tabele u glavnoj formi i tabela u podvormi je jedan prema vise. Problem je taj što kada izvršim prvi unos podataka u glavnu formu pri prelasku u podformu javlja mi se poruka "No current record" ako nastavim sa pritiskom na taster "Enter" ili klikom na "Ok" kursor prelazi na prvo polje podforme normalno i normalno prihvata podatke pri unosu. Kada otvorim tabele prikaz podataka je ispravan. Pri nastavku unosa ova poruka se ne javlja. Pitanje glasi kako da izbegnem poruku "No curent record" jednostavno da se ne pojavljuje pri prvom unosu (programski kod ili nesto drugo) i zasto se pojavljuje kad je u unosu i relacijama sve ok ili ima neke greške. Molim za pomoc. Srdačan Pozdrav.

[Ovu poruku je menjao ilekicika dana 25.05.2011. u 15:27 GMT+1]
[ ilekicika @ 25.05.2011. 15:09 ] @
Nisam dobro procitao temu sad vidim da je dat odgovor. Odgovor je Response = 0.
Ali bi ipak pitao zašto se javlja poruka o grešci i da li upotrebom u on Error Response = 0 ignorisu sve poruke o greskama u toj formi.
Pozdrav
[ duledixi @ 09.04.2014. 08:53 ] @
Da ne otvaram novu temu ovdje ću postaviti problem koji me muči.
Naime, imam jednu formu na kojoj se nalazi listbox sa koga biram štampanje računa i na event AfterUpdate imam sledeći kod:
Code:
Private Sub ListRacPrint_AfterUpdate()
Dim rst1 As Recordset
Dim varX As Variant
Dim strsql As String
Dim strsql1 As String
Dim SQL As String

DoCmd.SetWarnings False
strsql = "DELETE * FROM tmpFiskal;"
DoCmd.RunSQL strsql
DoCmd.SetWarnings True

Set baza = OpenDatabase("C:\Starsoft\Farma_Grabovac_dat.mdb")
Set rst1 = baza.OpenRecordset("tmpFiskal", dbOpenDynaset)

If Me.Opcija = 1 Then
Me.txtFisk = Me.ListRacPrint.Column(0)
Me.txtUplata = Me.ListRacPrint.Column(3)
Me.txtBrFakture = Me.ListRacPrint.Column(5)
Me.txtProvjera = Me.ListRacPrint.Column(6)
Me.Refresh

DoCmd.SetWarnings False
strsql1 = "INSERT INTO tmpFiskal ( FBROJ, Model, kol, MPC, Sifra, Popust )" & _
          "SELECT qryFiskal1.FBROJ, qryFiskal1.Model, qryFiskal1.kol, qryFiskal1.MPC, qryFiskal1.Sif, qryFiskal1.popust " & _
          "FROM qryFiskal1; "
DoCmd.RunSQL strsql1
'DoCmd.OpenQuery "UpisFiskal", acViewNormal
DoCmd.SetWarnings True

    If IsNull(Me.txtProvjera) = True Or Me.txtProvjera = "" Then
    'aa
    Else
        MsgBox "Fiskalni račun sa ovim brojem je već otštampan ! ", vbCritical, "Upozorenje"
    Exit Sub
    End If
    

    If Me.txtUplata > 0 Then
        Open "C:\Temp\Prodaja.inp" For Output As #1
        rst1.MoveFirst
        Do Until rst1.EOF
        Print #1, "S,1,______,_,__;"; rst1!Model; ";"; Format(rst1!MPC, "##0.00"); ";"; Format(rst1!kol, "##0.00"); ";1;1;2;0;"; Format(rst1![Sifra], "0"); ";"; Format(rst1![popust], "Percent")
        rst1.MoveNext
        Loop
        Print #1, "T,1,______,_,__;3;"
        rst1.Close
        Close #1
        Close #1
        DoCmd.OpenForm "FormFiskal", acNormal, , , acFormEdit
    Else
        DoCmd.OpenForm "FormReklam", acNormal, , , acFormEdit
    End If
ElseIf Me.Opcija = 4 Then
    DoCmd.OpenReport "RacunPrint", acViewPreview
    DoCmd.Close acForm, "FormIzborRac"
End If

Set rst1 = Nothing
Set baza = Nothing
End Sub


na mjestu "rst1.MoveFirst" dobijem poruku "no current record" a kad otvorim tabelu tmpFiskal postoje zapisi u njoj.
Molim ljude dobre volje da mi pomognu oko otklanjaja greške.
Pozdrav.
[ duledixi @ 29.04.2014. 07:44 ] @
Riješio problem tako što sam izbjegao upisivanje u Temp tabelu i sad sve radi ok.
Pozdrav.