🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych.msaccess
Article #137668

Re: Ograniczenie rekordów w polu kombi

#137668
From: K.P.
Date: Mon, 10 Feb 2025 23:34
50 lines
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-mail
References: <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