Ricerca da elenco da 90000record

di il
9 risposte

Ricerca da elenco da 90000record

Salve a tutti 

utilizzo un db access con una tabella con poco più di 70000 record.

ho una maschera di ricerca nella quale un a casella combinata effettua una ricerca da un elenco dei record in ordine alfabetico.

il mio problema è che gli ultimi record quelli che iniziano con le ultime lettere dell'alfabeto non vengono visualizzate e non possono quindi essere selezionate dall'elenco. (la ricerca funziona regolarmente de si digita il nome corretto.)

nell'immagine vedete che l'elenco finisce von taylori… anche se io ho iniziato a digitare un nome che inizia con la lettera Z (zoro…)

qualcuno mi sa dire dove e se  è possibile aumentare il numero massimo dei record?

spero di essere riuscito a spiegarmi. grazie mille 

9 Risposte

  • Re: Ricerca da elenco da 90000record

    70000 o 90000 ?

    Comunque il limite è 65535

  • Re: Ricerca da elenco da 90000record

    Mi pare una strategia complessa e poco Funzionale fare una ricerca e/o selezione su una mole di dati così rilevante…!

    Si possono adottare logichie di visualkizzazione Selettiva, Filtri che appunto riducono il numero di Record su cui puntare la ricerca.

    Ad esempio se sai che inizia per Z, predisponi le 26 Lettere iniziali per Filtrare con la lettera Iniziale, oppure se ci sono altri criteri…, ma sicuramente oltre il centinaio di dati è da considerare poco utile.

    Ciò detto come ti ha confermato Oregon il limite delle ListBox è un Integer, quindi se proprio ti servissero tutti, devi usare una SubForm ed implementare un sistema di ricerca, cosa che nel tuo caso tuttavia avendo il DataSheetView risulterebbe non fattivile, da fare pertanto con un Popup… o con logiche differenti…

  • Re: Ricerca da elenco da 90000record

    Concordo, naturalmente 

    Che senso ha scegliere tra 70 o 90 mila voci??

  • Re: Ricerca da elenco da 90000record

    25/08/2023 - @Alex ha scritto:


    Ad esempio se sai che inizia per Z, predisponi le 26 Lettere iniziali per Filtrare con la lettera Iniziale, oppure se ci sono altri criteri…, ma sicuramente oltre il centinaio di dati è da considerare poco utile.

    Ringrazio tutti per l'aiuto. Mi scuso per l'incongruenza. Ho scritto il titolo dell'interrogazione e solo dopo sono andato a controllare quanti record effettivamente fossero. Comunque ne inserisco da 3000 a 5000 ogni anno quindi non cambia molto da 70000 a 90000. In 4-6anni sarò a 90000 se continuo cosi.

    Al momento nemmeno riesco ad immaginare come si possa predisporre le 26 lettere iniziali, ma durante il weekend proverò a combinare qualcosa. Ma dovrei creare una casella combinata a parte in cui inserire l'iniziale o una if nella routine evento che mi va a filtrare l'origine dei dati della casella combinata da cui parte la ricerca?

    Scusate ho un db molto incasinato che fa un sacco di roba ma io non è che ne conosco tanto di Visual basic

  • Re: Ricerca da elenco da 90000record

    A questo punto penso pre che dovresti pensare a spostare il db su sql server, magari dopo averlo normalizzato per bene.

  • Re: Ricerca da elenco da 90000record

    26/08/2023 - oregon ha scritto:


    magari dopo averlo normalizzato per bene.

    In effetti sembra più un foglio calcolo excel che un db. Con tanti dati la vedo molto però dura a normalizzare adesso.

  • Re: Ricerca da elenco da 90000record

    25/08/2023 - GLT ha scritto:


    Scusate ho un db molto incasinato che fa un sacco di roba ma io non è che ne conosco tanto di Visual basic

    Mi accodo con gli altri che usare una singola combo per tutti questi valori è un morir di pizzichi.

    Manipolare le stringhe con il vba è abbastanza semplice ed una volta capito il meccanismo, praticamente il procedimento è uguale per tutte.
    Puoi leggere questi due link per maggiori informazioni

    per maggiori informazioni sull'uso delle stringhe immettendole direttamente nelle proprietà

    Per maggiori informazioni usando il vba Questi sono esempi per execel, ma al 99 percento sono validi anche per il vba di access.

    Sitassi ed esempi di stringhe e funzioni

    Comunque per facilitare la ricerca io creerei una form con una casella di testo dove immetti il nome parziale, un pulsante per attivare il codice ed una list box ingrandita il più possibile dove visualizzi i risultati. Poi nella listbox, selezioni il dato che ti interessa e fai aprire un'altra form con le informazioni che ti interessano.

    oppure puoi usare anche una query di questo tipo:

    SELECT Nome_campo1 *
    FROM Tbl_nometabella 
    WHERE (((Tbl_nometabella.Nome_campo1) Like '*'+[Maschere]![nomedellaform]![nomedella casella di testo]+'*'))
    ORDER BY Tbl_nometabella .Nome_campo1;

    E far visualizzare i dati nella listbox.

  • Re: Ricerca da elenco da 90000record

    25/08/2023 - GLT ha scritto:


    Scusate ho un db molto incasinato che fa un sacco di roba ma io non è che ne conosco tanto di Visual basic

    Mi accodo con gli altri che usare una singola combo per tutti questi valori è un morir di pizzichi.

    Manipolare le stringhe con il vba è abbastanza semplice ed una volta capito il meccanismo, praticamente il procedimento è uguale per tutte.
    Puoi leggere questi due link per maggiori informazioni

    per maggiori informazioni sull'uso delle stringhe immettendole direttamente nelle proprietà

    Per maggiori informazioni usando il vba Questi sono esempi per execel, ma al 99 percento sono validi anche per il vba di access.

    Sitassi ed esempi di stringhe e funzioni

    Comunque per facilitare la ricerca io creerei una form con una casella di testo dove immetti il nome parziale, un pulsante per attivare il codice ed una list box ingrandita il più possibile dove visualizzi i risultati. Poi nella listbox, selezioni il dato che ti interessa e fai aprire un'altra form con le informazioni che ti interessano.

    oppure puoi usare anche una query di questo tipo:

    SELECT Nome_campo1 *
    FROM Tbl_nometabella 
    WHERE (((Tbl_nometabella.Nome_campo1) Like '*'+[Maschere]![nomedellaform]![nomedella casella di testo]+'*'))
    ORDER BY Tbl_nometabella .Nome_campo1;

    E far visualizzare i dati nella listbox.

  • Re: Ricerca da elenco da 90000record

    Grazie mille direi che funziona abbastanza bene.

    Magari scrivo una castroneria, ma non si riesce a ridurre il numero dei caratteri presi in considerazione nella [Maschere]![nomedellaform]![nomedella casella di testo]? 

    io avevo provato così 

    Left([[Maschere]![nomedellaform]![nomedella casella di testo];5)

    ma ovviamente ho osato troppo e non funziona 

Devi accedere o registrarti per scrivere nel forum
9 risposte