PDA

Zobacz pełną wersję : Blokowanie okienek komunikatów w Accessie 2003



lavro
15-01-08, 21:30
Czy mógłby mi ktoś wyjaśnić jak wyłączyć/zablokować pojawiające się okienka komunikatów w Accessie 2003?

Stworzyłem formularz pokazujący rekordy pewnej tabeli. Pozbyłem się przycisków nawigacyjnych (poprzedni rekord, następny rekord itd.) i stworzyłem własne. Jednak kiedy jestem na pierwszym rekordzie i klikam na przycisk "poprzedni rekord" wyświetla mi się komunikat: "Przejście do podanego rekordu nie jest możliwe". Wiem, że można to jakoś usunąć, kiedyś ktoś mi pokazywał ale nie potrafię tego odtworzyć. Pamiętam, że to był jakiś kod (myślalem że chodzi o DoCmd.SetWarnings False, ale nie znam się na tym dobrze i nie wiem w którym miejscu go wkleić). Bardzo proszę o rady.
Z góry dziękuję za odpowiedź.
Pozdrawiam:)

doderic
15-01-08, 22:16
Widz, e mniej wicej wiesz, w jakim kierunku szuka rozwizania.
Przeanalizujmy: oto jak wyglda procedura dla przycisku przechodzenia do rekordu stworzona automatycznie przez Access'a. Na niebiesko zaznaczyem sta mwic jakie to jest przejcie (do nastpnego rekordu), a na czerwono linijk odpowiadajc za wywietlanie informacji o bdach.


Private Sub Polecenie0_Click()
On Error GoTo Err_Polecenie0_Click

DoCmd.GoToRecord , , acNext

Exit_Polecenie0_Click:
Exit Sub

Err_Polecenie0_Click:
MsgBox Err.Description
Resume Exit_Polecenie0_Click

End Sub


S dwa rozwizania problemu:
1. usun czerwon linijk i egnajcie komunikaty.
2. sprawdza jaki jest numer bdu i w zalenoci od niego wywietla, lub nie, opisy bdw.
W drugim przypadku czerwon linijk naley zmieni na co w rodzaju:


If Err.Number<>1 And Err.Number<>2 Then
MsgBox Err.Description
End If

Czyli: wywietlaj komunikaty tylko dla bdw o numerach innych ni 1 i 2. Konkretne komunikaty bdw musisz niestety znale ju sam, bo ja wanie popsuem Access'a.

Jeszcze may komentarz - osobicie zawsze uywam w tak prostym przypadku rozwizania 1.

8-)

lavro
16-01-08, 02:33
Rozwiązanie, o którym pisałem to właśnie to drugie jakie przedstawiłeś. Pamiętam właśnie, że numery błędów 3ba było wpisać:) Ale myślę, że pierwsze rozwiązanie w zupełności wystarczy:) a powiedz mi jeszcze gdzie można znaleźć nr błędów?
Wielkie dzięki:)

doderic
16-01-08, 21:25
myślę, że pierwsze rozwiązanie w zupełności wystarczy:)

W przypadku stosunkowo prostej operacji, jaką jest przejście do innego rekordu na pewno wystarczy. :-)


a powiedz mi jeszcze gdzie można znaleźć nr błędów?
1. możesz podmienić "MsgBox Err.Description" na "MsgBox Err.Number & vbTab & Err.Description" i wywołać błąd ręcznie, np. próbując przejść do następnego rekordu będąc w ostatnim, czy do poprzedniego będąc w pierwszym.
2. możesz też wpisać sobie taką oto procedurę i ją uruchomić:


Sub Test()
Dim i As Integer
For i = 1 To 100
Debug.Print i & vbTab & Error(i)
Next i
End Sub

Wyniki otrzymasz w oknie "Immediate" -- wciśnij ctrl+g żeby wyświetlić okienko, gdy jesteś w edytorze VB.
Oczywiście musisz zmieniać pętlę For dla kolejnych zakresów numerów i nieraz zgadywać co dany komunikat tak na prawdę oznacza. Jak trochę pokombinujesz, to możesz też zrobić sobie zapis listy do pliku. ;-)
No i zawsze zostaje Google...
8-)

lavro
16-01-08, 22:12
Dzięki za pomoc:)