[ Pobierz całość w formacie PDF ]
.Response = acDataErrContinueTworzenie automatycznie rozwijaj¹cej siê listy rozwijanejIle razy chcia³eœ po prostu przejœæ do pola listy tak, by rozwinê³a siêautomatycznie bez u¿ycia polecenia SendKeys? W Accessie 97, jedyne co musiszzrobiæ to wpisaæ poni¿sz¹ linijkê kodu do zdarzenia Enter:ActiveControl.DropDownTo wszystko!Tworzenie w³asnych list rozwijanychZazwyczaj wartoœci w rozwijanych polach pochodz¹ z tabeli lub kwerendy.Ale tonie jest jedyna mo¿liwoœæ.Ustawiaj¹c w³aœciwoœæ Typ Ÿród³a wierszy na Listapól, mo¿esz wybraæ przegl¹danie pól w bazowej tabeli lub kwerendzie.Mo¿eszrównie¿ wybraæ w tej w³aœciwoœci nazwê dowolnej funkcji, która bêdziewyœwietlaæ dowoln¹ listê.Nawet, jeœli nie zauwa¿ysz od razu korzyœcip³yn¹cych z takiego rozwi¹zania, przydaje siê ono, gdy chcesz dodaæ do listyspecjaln¹ wartoœæ jak na przyk³ad Wszystkie.Opcja ta przyda siê równie¿, gdybêdziesz chcia³ wyœwietliæ przydatn¹ dla ksiêgowych, wyrównan¹ do prawejlistê wartoœci walutowych.To ostatnie rozwi¹zanie mo¿liwe jest poprzezumieszczenie spacji po lewej stronie wartoœci i wyœwietlenie za pomoc¹ czcionkio sta³ej szerokoœci (np.Courier).Oto fragment kodu, znajduj¹cy siê w bazie danych Solutions.mdb, któryprzedstawia sposób, jak dodaæ u góry listy rozwijanej wartoœæ specjaln¹Wszystkie.Function AddAllToList(ctl As Control, lngID As Long, _lngRow As Long, lngCol As Long, intCode As Integer) As Variant' Dodaje u góry listy wartoœæ specjaln¹ "Wszystkie"' Mo¿na dodaæ "Wszystkie" do ró¿nych kolumn listyStatic dbs As Database, rst As RecordsetStatic lngDisplayID As LongStatic intDisplayCol As IntegerStatic strDisplayText As StringDim intSemiColon As IntegerOn Error GoTo Err_AddAllToListSelect Case intCodeCase acLBInitialize' See if function is already in use.If lngDisplayID 0 ThenMsgBox "AddAllToList Jest ju¿ u¿ywane przez inny formant !"AddAllToList = FalseExit FunctionEnd If' Wy³uskanie kolumny do wyœwietlenia i wyœwietlenie tekstu z' w³asnoœci TagintDisplayCol = 1.strDisplayText = "(Wszystkie)"If Not IsNull(ctl.Tag) ThenintSemiColon = InStr(ctl.Tag, ";")If intSemiColon = 0 ThenintDisplayCol = Val(ctl.Tag)ElseintDisplayCol = Val(Left(ctl.Tag, intSemiColon - 1))strDisplayText = Mid(ctl.Tag, intSemiColon + 1)End IfEnd If' Otwórz recordset zdefiniowany przez w³asnoœæ RowSourceSet dbs = CurrentDbSet rst = dbs.OpenRecordset(ctl.RowSource, dbOpenSnapshot)' Zapamiêtaj i zwróæ lngIdlngDisplayID = TimerAddAllToList = lngDisplayIDCase acLBOpenAddAllToList = lngDisplayIDCase acLBGetRowCount' Zwróæ iloœæ wierszy w wynikuOn Error Resume Nextrst.MoveLastAddAllToList = rst.RecordCount + 1.Case acLBGetColumnCount' Zwróæ iloœæ kolumn w wynikuAddAllToList = rst.Fields.CountCase acLBGetColumnWidthAddAllToList = -1.Case acLBGetValueIf lngRow = 0 ThenIf lngCol = int0isplayCol - 1 ThenAddAllToList = strDisplayTextElseAddAllToList = NullEnd IfElserst.MoveFirstrst.Move lngRow - 1AddAllToList = rst(lngCol)End IfCase acLBEndlngDisplayID = 0rst.CloseEnd SelectBye_AddAllToList:Exit FunctionErr_AddAllToList:MsgBox Err.Description, vbOKOnly + vbCritical, "AddAllToList"AddAllToList = FalseResume Bye_AddAllToListEnd FunctionPobieranie wiêcej ni¿ jednej wartoœci z pola listy i listy rozwijanejKorzystaj¹c z w³aœciwoœci Column, mo¿esz pobraæ wartoœæ z dowolnej kolumny wpolu listy lub listy rozwijanej.W w³aœciwoœci Column pierwsza kolumna manumer 0, druga 1, i tak dalej.Przyk³adowo, aby odczytaæ wartoœæ z czwartej kolumny listy rozwijanej,wpisa³byœ:MyVariantValue = Me!MyComboBox.Column(3)Pole listyPole listy przypomina opisan¹ powy¿ej listê rozwijan¹.Ró¿nica tkwi wmo¿liwoœci przegl¹dania wszystkich mo¿liwych wartoœci bez koniecznoœcirozwijania listy.Równie¿ w przeciwieñstwie do listy rozwijanej, pole listyumo¿liwia wybranie kilku wartoœci jednoczeœnie.Opcja ta przydaje siê wsytuacji, gdy chcesz umo¿liwiæ u¿ytkownikowi w tworzonym przez Ciebie systemieprzegl¹danie informacji o 5 ze 100 wpisów (faktury, ludzie, p³yty CD czyciê¿arówki).Poniewa¿ wiêkszoœæ w³aœciwoœci pola listy zosta³a ju¿ opisana,skoncentrujemy siê na ró¿nicach.Pole listy wielokrotnego wyboruW Accessie 2 istnia³y sztuczki pozwalaj¹ce na umo¿liwienie u¿ytkownikomwybieranie kilku wartoœci z listy.Pocz¹wszy od Accessa 2000, wybieranie kilkuwartoœci naraz sta³o siê ³atwe dziêki polu listy wielokrotnego wyboru.Jednak¿e pobieranie wybranych wartoœci nie zawsze jest tak intuicyjne.Ustawienia w³aœciwoœciAby u¿ywaæ pola listy wielokrotnego wyboru, musisz najpierw utworzyæ zwyk³epole listy i póŸniej przekszta³ciæ je w pole wielokrotnego wyboru.Mo¿esz tegodokonaæ, zmieniaj¹c znajduj¹c¹ siê na arkuszu w³aœciwoœci obiektu w³aœciwoœæWybór wielokrotny.W tabeli 8
[ Pobierz całość w formacie PDF ]