[ Pobierz całość w formacie PDF ]
.Zdarzenie OnOpen wywo³ujefunkcjê FillForm, która zamieszczona jest na wydruku 17.6.Wydruk 17.6.Wype³nianie formularza danymiFunction FillForm() As BooleanOn Error GoTo FillForm Err[Empno] = rs(0)[ENAME] = rs(1)[Job] = rs(2)[MGR] = rs(3)[HIREDATE] = rs(4)[SAL] = rs(5)[COMM] = rs(6)[DEPTNO] = rs(7)FillForm = TrueFillForm_Exit:Exit FunctionFillForm_Err:FillForm = FalseExit FunctionEnd FunctionProgramowanie przycisków steruj¹cychAby przegl¹daæ ca³y wynik zapytania, nale¿y oprogramowaæ przyciski steruj¹ce,tak jak jest to pokazane na wydrukach od 17.7 do 17.10.Wydruk 17.7.Przejœcie do pierwszego rekorduPrivate Sub btnGotoFirst_Click()On Error Resume Nextrs.MoveFirstIf Not rs.BOF ThenFillFormEnd IfCurrentContext MeEnd SubWydruk 17.8.Przejœcie do poprzedniego rekorduPrivate Sub btnGotoPrevious_Click()On Error Resume Nextrs.MovePreviousIf Not rs.BOF ThenFillFormEnd IfCurrentContext MeEnd SubWydruk 17.9.Przejœcie do nastêpnego rekorduPrivate Sub btnGotoNext_Click()On Error Resume Nextrs.MoveNextIf Not rs.BOF ThenFillFormEnd IfCurrentContext MeEnd SubWydruk 17.10.Przejœcie do ostatniego rekorduPrivate Sub btnGotoLast_Click()On Error Resume Nextrs.MoveLastIf Not rs.BOF ThenFillFormEnd IfOn Error GoTo 0CurrentContext MeEnd SubBie¿¹cy stan przycisków nawigacyjnych zale¿y od pozycji w zestawie rekordówwyniku.Funkcja CurrentContext, która pobiera jako argument obiekt formularza,w³¹cza oraz wy³¹cza przyciski nawigacyjne (wydruk 17.11).Wydruk 17.11.W³¹czanie i wy³¹czanie przycisków nawigacyjnychSub CurrentContext(frm As Form)Dim bFirstRec As BooleanDim bLastRec As BooleanbFirstRec = (rs.AbsolutePosition = 1)bLastRec = (rs.AbsolutePosition = rs.RecordCount)With frmIf Not bFirstRec And Not bLastRec Then!btnGotoFirst.Enabled = True!btnGotoPrevious.Enabled = True!btnGotoLast.Enabled = True!btnGotoNext.Enabled = TrueGoTo CurrentContext_ExitEnd IfIf bFirstRec And bLastRec Then!btnEdit.SetFocus!btnGotoFirst.Enabled = False!btnGotoPrevious.Enabled = False!btnGotoLast.Enabled = False!btnGotoNext.Enabled = FalseGoTo CurrentContext_ExitEnd IfIf bFirstRec Then!btnGotoLast.Enabled = bFirstRec!btnGotoNext.Enabled = bFirstRec!btnGotoLast.SetFocus!btnGotoFirst.Enabled = Not bFirstRec!btnGotoPrevious.Enabled = Not bFirstRecGoTo CurrentContext_ExitEnd IfIf bLastRec Then!btnGotoFirst.Enabled = bLastRec!btnGotoPrevious.Enabled = bLastRec!btnGotoFirst.SetFocus!btnGotoLast.Enabled = Not bLastRec!btnGotoNext.Enabled = Not bLastRecGoTo CurrentContext_ExitEnd IfEnd WithEnd SubZmiana danych Oracle'a przy u¿yciu formularzaDo tej pory mo¿esz tylko ogl¹daæ dane, ale zmiany, jakie wprowadzi³eœ, niezostan¹ zapisane w bazie.Funkcja z wydruku 17.12 wywo³uje metodê Updateobiektu OLEDB Recordset, aby wys³aæ zmiany do Oracle'a zaraz po tym, jakzmieni³eœ dane.Daje to mo¿liwoœci takie same jak mo¿liwoœci formularzazwi¹zanego.Funkcja pokazana na wydruku 17.12 musi byæ wywo³ana jako odpowiedŸna zdarzenie AfterUpdate dla ka¿dego pola tekstowego.Wydruk 17.12.Funkcja UpdateFieldFunction UpdateField(FieldName As Variant, NewValue As Variant)_As BooleanIf EditRec = False Or IsEmpty(EditRec) Then Exit FunctionDim rsOrigSource As StringDim errDesc As StringDim i As IntegerOn Error GoTo UpdateField Err' Zachowaj pocz¹tkowe Ÿród³o recordset-u na wypadek b³êdursOrigSource = rs.Source' Próba zmiany pola przy u¿yciu metody update obiektu Recordsetrs.Update FieldName, NewValue' Uda³o siêUpdateField = TrueUpdateField_Exit:Exit FunctionUpdateField_Err:' B³¹dUpdateField = False' SprawdŸ, jaki wyst¹pi³ b³¹d, przeszukuj¹c tablicê b³êdówWith connFor i = 0 To.Errors
[ Pobierz całość w formacie PDF ]