IALweb Homepage
Forum Home Forum Home > MS Office > Microsoft Office > Microsoft Access
  New Posts New Posts RSS Feed - DLookUp per Ordinare una query
  FAQ FAQ  Forum Search   Events   Register Register  Login Login


REGISTRATEVI su IALWeb forum!

DLookUp per Ordinare una query

 Post Reply Post Reply
Author
Message
maxpoz View Drop Down
Nuovo Utente
Nuovo Utente


Joined: 21/Set/2018
Location: italy
Status: Offline
Points: 10
Post Options Post Options   Thanks (0) Thanks(0)   Quote maxpoz Quote  Post ReplyReply Direct Link To This Post Topic: DLookUp per Ordinare una query
    Posted: 21/Set/2018 at 20:02
Ciao a Tutti
Sono un novizio di Access, Sto imparando piano piano, avrei bisogno di una mano ma non ho mai usato il DLookUp.
Stò creando una Query abbastanza complessa, almeno per me, sono arrivato al risultato desiderato ma ora ho il problema che il risultato, avendo sempre le stesse righe deve avere un ordine particolare.
La mia Query contiene una tabella la quale è collegata ad una query fra due tabelle ed ad un'altra tabella (non so perchè l'ho fatta così ma funziona).
Avevo pensato inizialmente di creare una tabella con la lista di ordinamento dove nel primo campo aveno una numerazione progressiva e nell'altro i codici a cui fare riferimento, il problema è che avendo dei codici doppi o tripli, la query mi risultava anzichè con 69 risultati 96 in sostanza mi duplica due o tre volte la stessa riga.
A questo punto ho pensato al DLookUp ma proprio non saprei da dove cominciare.




Edited by maxpoz - 21/Set/2018 at 20:04
Back to Top
Sponsored Links


Back to Top
willy55 View Drop Down
Moderatore
Moderatore
Avatar
Esperto di Access

Joined: 03/Ago/2011
Location: Italy
Status: Offline
Points: 9882
Post Options Post Options   Thanks (0) Thanks(0)   Quote willy55 Quote  Post ReplyReply Direct Link To This Post Posted: 21/Set/2018 at 23:07
Visto che tu stai implementando una query ove si hanno codici doppi e tripli, credo che il tuo problema risieda nella modalità con cui effettui la relazione fra le tabelle, pertanto non è con il DlookUp che puoi superare l'impasse.
Presenta le tabelle e la query realizzata e, con l'occassione, leggi i seguenti documenti che trattano dei predicati applicabili per ottenere dati univoci
https://support.office.com/it-it/article/predicati-all-distinct-distinctrow-top-24f2a47d-a803-4c7c-8e81-756fe298ce57
https://support.microsoft.com/it-it/help/292634/how-to-use-a-query-to-filter-unique-data-in-access
http://www.fmsinc.com/microsoftaccess/query/distinct_vs_distinctrow/unique_values_records.asp
https://www.techonthenet.com/access/queries/unique_values2007.php
https://support.office.com/it-it/article/impedire-valori-duplicati-in-un-campo-b5eaace7-6161-4edc-bb90-39d1a1bc5576
https://support.office.com/it-it/article/confrontare-due-tabelle-e-trovare-record-senza-corrispondenze-cb20ad48-4eba-402a-b20d-eaf10a5d1cb4


Edited by willy55 - 21/Set/2018 at 23:15
Willy
Back to Top
maxpoz View Drop Down
Nuovo Utente
Nuovo Utente


Joined: 21/Set/2018
Location: italy
Status: Offline
Points: 10
Post Options Post Options   Thanks (0) Thanks(0)   Quote maxpoz Quote  Post ReplyReply Direct Link To This Post Posted: 22/Set/2018 at 13:49
questa è la query


se alla query aggiungo la tabella di ordinamento anzichè estrapolarmi 69 record me ne estrapola 97
in sostanza la tabella di ordinamento contiene alcuni record che si ripetono 2 o 3 volte quindi vengono moltiplicati(con valore duplicato)
Anche se come mi hai linkato tu la guida, metto nelle proprietà della Query Valori univoci SI, mi aumenta i record.

Per la parte Sql mi sento troppo niubbo e sinceramente non ci capisco molto,
il codice generato attualmente è questo:

SELECT DISTINCT tblSerialNumberAssignementDetails1.strAssemblySerialNumber1, [1 MASSI QUERI UNIONE PER REC12 -----------------------].strAssemblySerialNumber1, [1 MASSI QUERI UNIONE PER REC12 -----------------------].strPartNumber1, [1 MASSI QUERI UNIONE PER REC12 -----------------------].strComponentSerialNumber, [strrevlevel] & DLookUp("strSubAssemblyRevLevel","tblSerialNumberAssignement","strAssemblySerialNumber='" & [strComponentSerialNumber] & "'") AS revisione, [1 MASSI QUERI UNIONE PER REC12 -----------------------].strRevLevel, [1 MASSI QUERI UNIONE PER REC12 -----------------------].strDescription1, DLookUp("strSubAssemblyRevLevel","tblSerialNumberAssignement","strAssemblySerialNumber='" & [strComponentSerialNumber] & "'") AS Expr1, [1 MASSI QUERI UNIONE PER REC12 -----------------------].[SN-USED], [1 MASSI QUERI UNIONE PER REC12 -----------------------].[Final Product], [1 MASSI QUERI UNIONE PER REC12 -----------------------].Sold, [1 MASSI QUERI UNIONE PER REC12 -----------------------].strDDTNumber, [1 MASSI QUERI UNIONE PER REC12 -----------------------].strDDTDate, [1tblOrdinamentoRec12].ID, [1tblOrdinamentoRec12].ListaDiOrdinamentoManipolatore
FROM 1tblOrdinamentoRec12 INNER JOIN ((tblSerialNumberAssignementDetails1 INNER JOIN [1 MASSI QUERI UNIONE PER REC12 -----------------------] ON tblSerialNumberAssignementDetails1.strComponentSerialNumber1 = [1 MASSI QUERI UNIONE PER REC12 -----------------------].strAssemblySerialNumber1) INNER JOIN tblSerialNumberAssignement ON [1 MASSI QUERI UNIONE PER REC12 -----------------------].strAssemblySerialNumber1 = tblSerialNumberAssignement.strAssemblySerialNumber) ON [1tblOrdinamentoRec12].ListaDiOrdinamentoManipolatore = [1 MASSI QUERI UNIONE PER REC12 -----------------------].strPartNumber
WHERE (((tblSerialNumberAssignementDetails1.strAssemblySerialNumber1)=[Digita il S/N:]))
ORDER BY [1tblOrdinamentoRec12].ID;



Edited by maxpoz - 22/Set/2018 at 13:52
Back to Top
willy55 View Drop Down
Moderatore
Moderatore
Avatar
Esperto di Access

Joined: 03/Ago/2011
Location: Italy
Status: Offline
Points: 9882
Post Options Post Options   Thanks (0) Thanks(0)   Quote willy55 Quote  Post ReplyReply Direct Link To This Post Posted: 23/Set/2018 at 00:25

Quando si ottengono valori duplicati si deve valutare l'accoppiamento che avviene fra le varie tabelle.
Nella SELECT (per tutte le relazioni fra le tabelle) hai impiegato la INNER JOIN.
In termini pratici, se il tuo record esiste su entrambe le tabelle in relazione e e se un lato (della relazione) ha più di una voce (a parità di valori correlati) allora sverrà visualizzato due (o più) volte).
La sintassi SELECT DISTINCT viene utilizzata quando si ha la necessità di estrarre, da un campo (dove sono ammessi valori ripetuti)  un elenco univoco (di tali valori) e questo deve essere quello che guida (quindi il primo con cui si devono estrarre i dati univocamente.
Consiglio invece di procedere a realizzare la query definitiva in modo progressivo; ad esempio con coppie di tabelle fra loro correlate, al fine di identificare la tabella interessata ed assegnare il corretto  predicato.



Edited by willy55 - 23/Set/2018 at 00:30
Willy
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 10.17
Copyright ©2001-2013 Web Wiz Ltd.

This page was generated in 0,047 seconds.