@danielrtovar
ID is not delegable except when using the equal operator. So, since you are using greater than and less than, you will not get anything more than 2000 records.
You will need to either filter by another column that is delegable, or reconsider your need to load every record into your app. Most delegation issues can be worked around by using a narrowing filter which is delegable and then filter the results of that with non-delegable operations.
As a quick example of a narrowing filter - let's say the list contains invoices for clients. Narrowing filters can be things like a date range, a client ID/name, invoice types, invoice status, etc.
So, doing this:
With({_items: Filter(invoices, InvoiceDate >= DateValue("1/1/2021") && InvoiceDate <= DateValue("12/31/2021"))}, //Delegable
Search(_items, "customerName", CustomerName, CompanyName) // non-delegable by itself
)
The first part of the With statement would contain the results of the delegable filter on the dates. The Search function (which is not delegable to a datasource) uses the _items (the results of the narrowing filter) for its table source.
So, in the above, if the narrowing filter returns less than 2000 records, all works fine. If there would be more than 2000, then consider another criteria for narrowing.
I hope this is helpful for you.