Thread View: pl.comp.bazy-danych.msaccess
3 messages
3 total messages
Started by dzagorski
Sun, 11 Feb 2024 21:32
Ograniczenie rekordów w polu kombi
Author: dzagorski
Date: Sun, 11 Feb 2024 21:32
Date: Sun, 11 Feb 2024 21:32
8 lines
2367 bytes
2367 bytes
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.
Re: Ograniczenie rekordów w polu kombi
Author: LX 'yrs
Date: Mon, 12 Feb 2024 18:27
Date: Mon, 12 Feb 2024 18:27
27 lines
3101 bytes
3101 bytes
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
--
LX'yrs
End Sub
Re: Ograniczenie rekordów w polu kombi
Author: 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
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads