Dlookup alternativa per una query crea tabella

Anonimo
2017-09-07T10:57:50+00:00

Buongiorno a tutti

La domanda è se esiste un'alternativa a dlookup che è molto lento su una tabella con circa 100000 record e una seconda tabella con meno di 1000 record

La situazione è questa

Ho due tabelle Articoli e Categorie collegate in rete (si aggiornano tutti i giorni... in media la tabella articoli per circa il 20% e la seconda 1%)

Questi dati vanno ripuliti da caratteri spazi e altre cose (mi serve normalizzare questi dati per fare delle statistiche con altri listini...) per questo motivo ho creato due query che fanno questo, chiamandole qryArticoli e qryCategorie. Le due query vengono elaborate molto velocemente... la visualizzazione e la ricerca è praticamente istantanea

Queste due tabelle le unisco in una query qryListino (che vista la mole di dati, crea una tabella per fare ulteriori elaborazioni) dove metto in relazione due campi (IDCategoria e IDSottocategoria) presenti su entrambe le tabelle che aggiungono due campi descrizione (Categoria e Sottocategoria)

la query qryCategoria è così composta

Descrizione - IdCatagoria - IDSottocategoria

Auto - 0 - 0

Auto SW 0 - 1

Auto Berlina - 0 - 2

Auto Cabrio - 0 - 3

Furgone - 1 - 0

Furgone Cabinato - 1 - 1

Furgone Cassonato - 1 - 2

Nella query qryListino oltre ad altri campi usando la funzione dlookup creo i due campi Categoria e Sottocategoria

Categoria: DLookUp("Descrizione";"qryCategoria";"idCategoria='" & [qryArticoli].[idCategoria] & "'")

Sottocategoria: DLookUp("Descrizione";"qryCategoria";"idSottocategoria='" & [qryArticoli].[idSottocategoria] & "'")

IDAuto/Moto -  Descrizione - Prezzo - Categoria - Sottocategoria... eccc

1 - Panda - 1000€ - Auto - Berlina

2 - Punto - 1200€ - Auto - Berlina

3 - A5 - 25000€ - Auto - Cabrio

4 - A4 - 17000€ - Auto - Sw

Cosi funziona... ma pur filtrando per fare i test a soli 1000 record access praticamente si blocca mentre con 200 è sempre molto molto lento ma restituisce i record... creare una tabella con 100.000 record tutti i giorni non è possibile

Chiedo agli esperti se esiste una soluzione alternativa a dlookup e se la posso utilizzare su una query per creare la tabella Listino

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

18 risposte

Ordina per: Più utili
  1. Anonimo
    2017-09-07T11:54:22+00:00

    Se nella query listino conosci IdCategoria e IdSottoCategoria che utilizzi nelle DLookUp, perché non metti in Join direttamente la query qryCategoria ?

    Riesci a fare un esempio?

    Ho letto di tutto in rete come le sottoquery ma non riesco a capire come fare

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-09-07T11:49:09+00:00

    ciao Franco,

    le funzioni di aggregazione sui domini sono lente e a non andrebbero utilizzate nelle queries in quanto richiamate per ogni riga della query.

    Se ho intuito correttamente lo scenario mi verrebbe da consigliare una query con subQuery correlata....

    Prova a mostrare uno spaccato dei dati di partenza e di quelli che ti aspetteresti come result set con l'applicazione della dlookup, che vediamo se sono sulla strada giusta.

    Mostra uno screenshot dei dati o ancora meglio se puoi una demo con la tabella, ( ovviamente uno spaccato ) senza dati sensibili, che è la scelta migliore per sperimentare un po'...

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-09-07T11:41:55+00:00

    Provo a spiegare meglio

    Sia la tabella articoli che la tabella Categoria hanno due campi che si chiamano IdCategoria e IdSottocategoria più un terzo campo che si chiama descrizione

    I dati da prelevare vengono scelti dalla tabella/query Categoria

    che ha Descrizione - IdCategoria - IdSottocategoria

    Auto - 0 - 0

    Sw - 0 - 1

    Berlina - 0 - 2

    Cabrio - 0 - 3

    ecc...

    Che prima pensando di far comprendere meglio avevo riportato così

    Auto - 0 - 0

    Auto SW 0 - 1

    Auto Berlina - 0 - 2

    Auto Cabrio - 0 - 3

    Furgone - 1 - 0

    Furgone Cabinato - 1 - 1

    Furgone Cassonato - 1 - 2

    In risposta alla tua domanda in pratica restituisce questo

    Auto - 0 - 0 non restituisce nulla

    Auto SW 0 - 1 <== Quale descrizione dovrebbe restituire? restituisce Categoria Auto Sottocategoria SW

    Auto Berlina - 0 - 2  restituisce Categoria Auto Sottocategoria Berlina

    Auto Cabrio - 0 - 3 restituisce Categoria Auto Sottocategoria Cabrio

    Furgone - 1 - 0 non restituisce nulla

    Furgone Cabinato - 1 - 1 <== Quale descrizione dovrebbe restituire? restituisce Categoria Furgone Sottocategoria Cabinato

    Furgone Cassonato - 1 - 2  restituisce Categoria Furgone Sottocategoria

    In realtà è così

    Auto - 0 - 0 non restituisce nulla

    Sw - 0 - 1 restituisce Categoria Auto Sottocategoria SW

    Berlina - 0 - 2  restituisce Categoria Auto Sottocategoria Berlina

    Cabrio - 0 - 3  restituisce Categoria Auto Sottocategoria Cabrio

    ecc...

    Spero di aver spiegato correttamente

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2017-09-07T11:26:58+00:00

    Ho letto e riletto il tutto.

    Se nella query listino conosci IdCategoria e IdSottoCategoria che utilizzi nelle DLookUp, perché non metti in Join direttamente la query qryCategoria ?

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2017-09-07T11:14:57+00:00

    Ciao Franco,

    non penso di aver capito il tutto ma immagino che potresti utilizzare un funzione.

    Non capisco ad es. la  dlookup cosa ti restituisce :

    Sottocategoria: DLookUp("Descrizione";"qryCategoria";"idSottocategoria='" & [qryArticoli].[idSottocategoria] & "'")

    Auto - 0 - 0

    Auto SW 0 - 1 <== Quale descrizione dovrebbe restituire?

    Auto Berlina - 0 - 2

    Auto Cabrio - 0 - 3

    Furgone - 1 - 0

    Furgone Cabinato - 1 - 1 <== Quale descrizione dovrebbe restituire?

    Furgone Cassonato - 1 - 2

    forse dovresti combinare Categoria e SottoCategoria per ottenere una descrizione.

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento