Newsgroup: it.comp.appl.access
Titolo: Query a tabelle multiple

Buonasera.
Sono un principiante, abbiate pazienza.
Devo realizzare un piccolo programma di fatturazione; Ho quindi le tabelle
anaclie, prodotti, ordini, dettaglioordini, prezzi, (dove lo stesso prodotto
può avere più prezzi a seconda del cliente, quindi la chiave della tabella è
sui due campi IDProdotto e IDCliente).
Ho creato un Form Ordini con sottomaschera DettaglioOrdini. Tutto bene se
nel dettaglio ordini non considero la tabella prezzi, mentre se voglio fare
apparire anche i prezzi, mi scompare la possibilità di inserire nuove righe
dettaglio. Ho provato di tutto, creando query in vari modi, una dentro
l'altra, ma niente.
Grazie a chi vorrà aiutarmi
Gianluigi Agostini

 dettaglio. Ho provato di tutto, creando query in vari modi, una dentro
su uscita dal prodotto fai riempire il Prezzo unitario con DLookup
 Me![PrezzoUnitario] = DLookup("[Prezzo]", "ClientiArticCosto", "[IdCliente]
= Forms![Ordini]![IDCliente] And [IdArticolo]=[Articolo]")
ciao


pro di tale metodo:
1 hai la possibilità di forzare il prezzo
2 quando varierai il listino del cliente (in futuro) i vecchi ordini non
varieranno
contro ?:
devi memorizzare i prezzi dei singoli ordini
(ma credo sia un preggio)
ciao

 > = Forms![Ordini]![IDCliente] And [IdArticolo]=[Articolo]")
Ti ringrazio per la risposta. Avevo provato anche con DLookup, seguendo
l'esempio della frmOrdini del Northwind.mdb, senza riuscire.
Il mio obiettivo era di creare una query che mi desse un recorset
aggiornabile, ma dovendo mettere in gioco più tabelle ho dovuto fare tre
livelli di query per ottenere il recordset come mi serviva, ovvero:
IDRigheOrdini (ChiavePrimaria)
IDOrdini(Chiave esterna per relazione con Ordini)
IDProdotto
DescrizioneProdotto (Dalla tabella prodotti)
IDCliente (Dalla tabella ordini)
Prezzo (dalla tabella prezzi, tramite relazione con 2 chiavi)
Questa query non è però aggiornabile, nè si possono inserire record (lo era
fino al secondo livello di query, senza cioè il campo prezzo della tabella
prezzi).
Ho provato anche a costruire una form su questa query, impostando la
proprietà dynaset ad aggiornamento non coerente; così posso inserire nuovi
record, ma il risultato non va bene. Comunque ecco il codice con DLookUp,
che non mi funziona perchè in entrambi i casi mi viene restituito il primo
valore della tabella TblPrezzi. Nota come l'argomento della funzione DLookup
(la terza parte, dopo la seconda virgola)  lo devo scrivere senza apici,
altrimenti mi genera un errore che mi dice che ivalore non esiste
nell'oggetto di automazione.
Dim ivalore As Integer
Dim ivalore1 As Integer
    '
    'strvalore = "IDProdotto = " & Me!IDProdotto
    'strvalore1 = "IDCliente = " & Me!IDCliente
    '
    'Me!Prezzo = DLookup("[PrezzoCalcolato]", "TblPrezzi", strvalore And
strvalore1)
    '
    With CodeContextObject
    ivalore = .IDProdotto
    ivalore1 = .IDCliente
        .Prezzo = DLookup("[PrezzoCalcolato]", "TblPrezzi", [IDProdotto] =
ivalore And [IDCliente] = ivalore1)
    End With
Gianluigi Agostini

 wrote in message
_mO67.1580$Rs2....@news2.tin.it...

prova
Prezzo = DLookup("[PrezzoCalcolato]", "TblPrezzi", " [IDProdotto]  =  " &
ivalore & " And [IDCliente] = " & ivalore1)
la stringa di ricerca deve essere tra apici " " le variabili no la & unsice
le due
ciao

 ciao
Funziona! Grazie 1000.
Nel file Ordini e RigheOrdini intendo memorizzare i vari dati anagrafici, di
prodotti e di prezzi, visto che nei relativi file questi possono cambiare,
mentre nei documenti fiscali no. Usare DLookup č la scelta migliore anche se
č da fare su molti campi?
Grazie ancora
Gianluigi Agostini

 wrote in message
Uf_67.7326$hO3....@news2.tin.it...

credo che devi memorizzare tutto ciň che nel tempo puň cambiare e di
conseguenza falsarti eventuali ristampe o visualizzazioni di documenti
memorizzati.
quello che mi lascia un pň perplesso e che associ ad ogni cliente un listino
se hai listini molto grandi e anche molti clienti viene una cosa enorme
io assocerei ad ogni cliente un percentuale di incremento o decremento ho al
massimo avrei 2 o 3 listini da associare
a te l'ardua risposta
ciao