Newsgroup: it.comp.appl.access
Titolo: Listino Prezzi (relazionare tabelle)

salve,
(sto cercando di imparare ad utilizzare access e x esercitarmi sto
creando
un database x gestire i listini prezzi al fine di emettere delle
fatture)
ho creato le tabelle:
AziendeT
CodiceFiscale ChievePromaria Testo
Azienda Testo
ecc.
ArchiviofattureT
Progressivo Contatore
IdFattura   ChiavePrimaria  Testo
Azienda    testo
ecc
DettaglioFatureT
IDfatture testo
TipoCosto  Numerico
ListinoT
IdCosto ChiavePrimaria contatore
Azienda  testo
TipoCosto testo
Dal      data
Al        data
Stabilite le relazioni ho creato una maschera basata sulla query :
SELECT ArchivioFattureT.Progressivo, ArchivioFattureT.Sospesa,
ArchivioFattureT.IDFattura, AziendeT.[E-Mail],
ArchivioFattureT.Azienda,
AziendeT.indirizzo, AziendeT.Cap, AziendeT.Città, AziendeT.Provincia,
AziendeT.Telefono, AziendeT.Cellulare, ArchivioFattureT.Motivazione,
[Liquidata]*12 AS Liq, ArchivioFattureT.Liquidata
FROM AziendeT INNER JOIN ArchivioFattureT ON AziendeT.Azienda =
ArchivioFattureT.Azienda;
Ed una sottomaschera :
SELECT DettaglioFattureT.DataValidazione,
DettaglioFattureT.IDFattura,
DettaglioFattureT.TipoCosto, DettaglioFattureT.Descrizione,
DettaglioFattureT.NrElaborazioni AS nr, ListinoT.CostoUnitario,
DettaglioFattureT.Sconto,
([NR]*[CostoUnitario])-(([NR]*[CostoUnitario])*[Sconto]) AS Lordo,
([Lordo]*[Iva]/100) AS cIVa, CCur(NZ([Lordo],0)+NZ([CIva],0)) AS
TotCosto,
ListinoT.Dal, ListinoT.Al
FROM ListinoT INNER JOIN DettaglioFattureT ON ListinoT.IdCosto =
DettaglioFattureT.TipoCosto
WHERE (((DettaglioFattureT.DataValidazione) Between [Dal] And [Al]))
ORDER BY DettaglioFattureT.IDFattura;
collegandole fra loro sull'IdFattura;
Nella sottomaschera ho una casella di controllo , che dovrebbe
pescarmi il
costoUnitario nella tabella listino della Azienda X ad una certa
data :
SELECT ListinoT.TipoCosto
FROM ListinoT
WHERE (((ListinoT.Azienda)=[Forms]![FattureM]![Azienda]) AND
((ListinoT.Dal)>=[Forms]![FattureM]![DataV]) AND
((ListinoT.Al)<=[forms]![fattureM]![datav]));
I miei problemi :
nella maschera dopo aver selezionato un'azienda, quando clicco nella
casella
combinata della sottomaschera per scegliere il tipo di articolo mi
esce
questa finestra :
"L'apporto modifiche non è riuscito perchè si è cercato di duplicare
i
valori nell'indice, nella chiave primaria o nella relazione.
Modificare i
dati nel campo o nei campi che contengono dati duplicati ecc ecc"
Immagino che sia un problema di una corretta impostazione del database
e di
relazione fra le tabelle.
Potete darmi una mano ?
Per avere una corretta elaborazione delle query su un listino che
conservi
uno storico, ho inserito nella tabella ListinoT il campo Dal e Al ad
indicare il periodo di validità, mi chiedevo in quale tabella debbo
conservare il valore : nella tabella ArchivioFatturet o in quella
dettaglioFattureT ??
si lo so ho le idee molto confuse spero tanto in un aiuto rivelatore.
mille grazie!!!
qui ho messo in rete se qualcuno si vuole divertire alle mie spalle :
http://scacchi64.altervista.org/Copia_di_AziendaD.zip
grazie !

grazie !
=======================
Ho messo un ordinamento crescente alla query FattureQ per averle sempre in
ordine, ma forse ti piacerebbe di più decrescente per avere sempre l'ultima
sottomano ....

[....]
sfuggito un INVIO !
Non sono ancora riuscito a capire perchè i dettagli vadano sempre in errore!
Ci riguardo a mente fresca
IvanDaBologna 

 ha scritto nel messaggio 
news:b430c94e-1b6c-4938...@i3g2000hsf.googlegroups.com...












http://scacchi64.altervista.org/Copia_di_AziendaD.zip
[risposta]
Per prima cosa io non utilizzerei, per le relazioni, campi di testo che 
possono essere modificati dall'utente. E neanche come progressivo un campo 
contatore.
Provo a rimodificartila struttura:
[AziendeT]
id, contatore, indicizzato (duplicati non ammessi)
CodiceFiscale Testo
Azienda Testo
ecc.
[ArchiviofattureT]
id, contatore, indicizzato (duplicati non ammessi)
Progressivo, (vedi esempi su sito comune se vuoi calcolartelo 
automaticamente)
Azienda    testo
ecc...
[DettaglioFatureT]
id, contatore, indicizzato (duplicati non ammessi)
idArchiviofattureT, numerico, intero lungo
idListinoT, numerico, intero lungo
...
[ListinoT]
id, contatore, indicizzato (duplicati non ammessi)
idAzienda, numerico, intero lungo
TipoCosto testo
Dal      data
Al        data
Relazioni:
[AziendeT].id 1 a molti con [ListinoT].idAzienda
[ArchiviofattureT].id 1 a molti con [DettaglioFatureT].idArchiviofattureT
[ListinoT].id 1 a molti con [DettaglioFatureT].idListinoT
Ciao.
-- 
Sergio MAZZA 

 Ci riguardo a mente fresca
    nella sottomaschera manca il campo idFattura !!!!!
SCUSA !!!!
CIAO E GRAZIE !|

 Provo a rimodificartila struttura:
OK...ci lavoro stasera e ti faccio sapere.
mille  grazie !