Newsgroup: it.comp.appl.access
Titolo: Selezione Record

Ciao a tutti
In un db ho tabDitte e tabListino. La IDListino ha la seguente
maschera AAA-00-CCCCCCCCCCCCCCCC, dove:
  AAA corrisponde alle prime tre lettere di NomeDitta,
  00 alle ultime due cifre dell'anno in vigore del listino,
  CCCCCCCCCCCCCCCC al codice articolo assegnato dalle ditte sul listino.
Nella tabListino ovviamente vanno a finire tutti i record degli articoli in
listino di tutte le ditte di tabDitte.
Come faccio a selezionare con una query solo i record che hanno le
prime tre lettere dell'IDListino corrispondenti alle prime tre lettere del
NomeDitta?

 wrote in message 8or9hg$ipb$1...@news.mclink.it...

IDListino like "XXX*"
Dove XXX sono le prime tre lettere.
Se vuoi inserire un parametro puoi scrivere:
IDListino Like [PrimeTreLettere] & "*"
Ciao, Sib
--
------------------------------------------------------
il sito comune di it.comp.database.access:
http://members.xoom.it/it_db_access
------------------------------------------------------
4000 anni fa', il saggio egizio Ptahhotep scrisse:
"... perche' non esistono saggi per nascita."
------------------------------------------------------
Saturiamo ECHELON:
bomba saddam attentato medio oriente

NomeDitta?


Devi fare una join non fra le 2 tabelle ma tra 2 query, 
ognuna delle quali aggiunge un campo calcolato ad ognuna delle tabelle. 



Questo campo conterra'


Left(IDListino;3) nella query su TabListino


Left(NomeDitta;3) nella query su TabDitte


 


Ciao 


Marco


 



 ha scritto nel messaggio
news:8or9hg$ipb$1...@news.mclink.it...

Se NomeDitta è il nome di un controllo contenuto in una maschera chiamata
Maschera1 che ha come origine record tabDitte, crea una query (Query1)
basata su tabListino; a Query1 aggiungi una colonna e nella sua riga
"Campo:" scrivi:
    aa: Left([IdListino],3)
Nella riga "Criteri:" di questa nuova colonna scrivi:
    Left([Forms]![Maschera1]![NomeDitta],3)
--
Roberto
---------------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------


Per darti una risposta occorre che tu ci dica quale è la struttura delle 4
tabelle ed in base a quali campi sono in relazione fra di loro.
Roberto

 Marco e Roberto (che ringrazio tutti), ma non si seleziona nulla lo
stesso.
Ora e' un po' piu' chiaro.
L'unico modo per essere sicuri e' che tu posti l'SQL che ci diamo
un'occhiata.
Ad ogni modo, a parer mio, stai sbagliando tecnica. La tabella tblDitte deve
essere collegata con la tabella tblListino (che poi forse e' piu' una
tabella prodotti) con una relazione uno a molti attraverso l'id ditta.
Ciao, Sib

Qui sotto c'è la SQL della query del Report. Manca la tabDitte perchè,
come Vi ho detto, altrimenti non funziona. Comunque la IDDitta è collegata
unoamolti con la IDDitta di tabProdotti (sugli esempi precedenti la chiamavo
tabListino ma effettevamente è come dice Sib tabProdotti).
Le quattro tabelle reali della query sono TabClienti, TabOrdiniC,
TabDettaglio Ordini e TabProdotti.
Vi ricordo che le IDProdotto hanno le prime tre lettere corrispondenti
alle prime tre lettere del NomeDitta, ed a me necessita che nel Report
compaia anche il NomeDitta (che produce i prodotti) inserendo solo
il parametro di IDOrdine.
SELECT DISTINCTROW Clienti.[ID Cliente], Clienti.[Nome Cliente],
Clienti.Indirizzo, Clienti.Città, Clienti.Prv, Clienti.Cap, Clienti.[Partita
Iva], Clienti.Telefono, Clienti.Banca, Clienti.[Codice abi-cab],
Clienti.Scadenze, Clienti.[Scarico Merci], Clienti.IDVenditore,
OrdiniC.DataOrdine, OrdiniC.DataConsegna, OrdiniC.ImportoConsegna,
OrdiniC.RiferCliente, OrdiniC.ConsegnaEntro, OrdiniC.Nota,
OrdiniC.PagamentoFornitura, OrdiniC.[Sconto a1], OrdiniC.[Sconto b1],
OrdiniC.[Sconto c1], [Dettagli ordini].[ID Ordine],
[Dettagli ordini].IDProdotto, [Dettagli ordini].Quantità, [Dettagli
ordini].ScontoArticolo, Prodotti.NomeProdotto, Prodotti.PrezzoUnitario,
CCur([Prodotti].[PrezzoUnitario]*[Dettagli
ordini].[Quantità]*(100+[ScontoArticolo])/100) AS TotaleComplessivo
FROM Clienti INNER JOIN (OrdiniC INNER JOIN (Prodotti INNER JOIN [Dettagli
ordini] ON Prodotti.IDProdotto = [Dettagli ordini].IDProdotto) ON
OrdiniC.[ID Ordine] = [Dettagli ordini].[ID Ordine]) ON Clienti.[ID Cliente]
= OrdiniC.[ID Cliente]
WHERE ((([Dettagli ordini].[ID Ordine])=[Digita Numero Ordini:]));
Grazie a tutti della collaborazione
saluti
Franco

Ringrazio chi mi ha risposto
Anche se non mi hanno aiutato direttamente, mi hanno però
stimolato a trovare la soluzione giusta.
Saluti
Franco

 stimolato a trovare la soluzione giusta.
... e l'importante e' quello.
Non ti ho risposto quando hai inviato l'SQL perche' non ho avuto il tempo
materiale di leggerlo, ma se hai risolto meglio cosi'.
Ciao, Sib