Article View: pl.comp.bazy-danych.msaccess
Article #137668Re: Ograniczenie rekordów w polu kombi
From: K.P.
Date: Mon, 10 Feb 2025 23:34
Date: Mon, 10 Feb 2025 23:34
50 lines
3152 bytes
3152 bytes
W dniu 12.02.2024 o 19:27, LX 'yrs pisze:
> niedziela, 11 lutego 2024 o 22:32:28 UTC+1 dzag...@wp.pl napisał(a):
>> Czy jest ograniczenie na ilość rekordów wyświetlanych w polu kombi?
>>
>> Mam pole kombi oparte na tabeli i zauważyłem, że nie mogę z listy wybrać wszystkich wartości. Nadmienię ze tabela źródłowa jest duża i wycina mi wszystko powyżej 65535 rekordu.
>>
>> Aby być precyzyjnym, rekordy powyżej tych 65k mogę wybrać, ale musze je wpisać z palucha, nie mam tylko możliwości rozwinięcia ich w kombi i wybrania przez wskazanie (trochę to upierdliwe jak nie znam dokładnej wartości).
>>
>> Można to jakoś obejść, czy to taki niezamierzony feature.
>> A może to ja jestem dziwny wybierając wartość z tak dużej tabeli.
> 'Użytkownik musi wpisać pierwszą literę. Sprawdź, czy zadziała dla tak dużej tabeli
>
>
> ' właściwość Autorozwijanie formantu Me.Kombi0 ustaw na FALSE
> Private Sub Form_Load()
> If Me.Kombi0.AutoExpand Then Me.Kombi0.AutoExpand = False
> End Sub
>
> Private Sub Kombi0_Change()
> ' Oryginalnie:
> ' Me.Kombi0.RowSource=SELECT tblTabela.TwojePole FROM tblTabela;
>
> Me.Kombi0.RowSource = "SELECT tblTabela.TwojePole FROM tblTabela WHERE (tblTabela.TwojePole Like ('" & Me.Kombi0.Text & "*'))"
> Me.Kombi0.Dropdown
>
Dla dużych tabel, zwłaszcza dużych zapytań, a już na pewno w przypadku
korzystania z zewnętrznego źródła danych dobrze jest załadować zestaw
rekordów raz przy starcie formularza. Chodzi o to, żeby nie odpytywać
bazy przy każdej zmianie wartości w polu kombi.
Można to zrobić np. zapamiętując na starcie pełen zestaw rekordów i
tylko filtrować potem wynik dynamicznie, co jest znacznie szybsze w
przytoczonych sytuacjach. Jako źródło rekordów w kontrolce Kombi0
wpisujemy po prostu tblTabela. Natomiast mechanizm działania jest taki,
jak napisałeś:
Option Compare Database
Dim rs As Recordset
Private Sub Form_Load()
Set rs = Me!Kombi0.Recordset.Clone
End Sub
Private Sub Kombi0_Change()
rs.Filter = "tblTabela.TwojePole Like '" & [Kombi0].Text & "*'"
Set Me!Kombi0.Recordset = rs.OpenRecordset
Me!Kombi0.Dropdown
End Sub
Technical Details
Message-ID:
<voe2do$22v3o$1@portraits.wsisiz.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!.POSTED.94-240-0-18.lukman.pl!not-for-mailReferences:
<bb4f063a-f61e-44d7-8aa5-eb3f4449aeb5n@googlegroups.com> <945fcace-9f30-4238-901e-af72d8792691n@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!.POSTED.94-240-0-18.lukman.pl!not-for-mail From: "K.P." <kris.pozorek@gmail.com> Newsgroups: pl.comp.bazy-danych.msaccess Subject: Re: Ograniczenie rekordów w polu kombi Date: Tue, 11 Feb 2025 00:34:15 +0100 Organization: http://www.wit.edu.pl Message-ID: <voe2do$22v3o$1@portraits.wsisiz.edu.pl> References: <bb4f063a-f61e-44d7-8aa5-eb3f4449aeb5n@googlegroups.com> <945fcace-9f30-4238-901e-af72d8792691n@googlegroups.com> MIME-Version: 1.0 Injection-Date: Mon, 10 Feb 2025 23:34:16 -0000 (UTC) Injection-Info: portraits.wsisiz.edu.pl; posting-host="94-240-0-18.lukman.pl:94.240.0.18"; logging-data="2194552"; mail-complaints-to="abuse@wsisiz.edu.pl" User-Agent: Mozilla Thunderbird In-Reply-To: <945fcace-9f30-4238-901e-af72d8792691n@googlegroups.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit