Newsgroup: it.comp.appl.access
Titolo: non ne vengo fuori(errore campi dupilcati)

salve a tutti,
sviluppo con 
asp.net
 ho un'applicazione che esegue una transazione e un 
errore che su verifica quando cerco di copiare i record in una tabella con 
relazione molti a molti. vi copio l'analisi del db e la query che non va a 
buon fine spero possiate riuscire ad aiutarmi.
  Relazioni:
            Appuntamenti_ConfermatiAppuntamenti_Dettaglio
                            Appuntamenti_Confer 
Appuntamenti_Dettag
                           APID                              1       n  APID
                         Attributes:                       Imposto
                         RelationshipType:               Uno-a-molti
------------------------------------------------------------------------------
            ServiziAppuntamenti_Dettaglio
                                       Servizi 
Appuntamenti_Dettag
                           IDS                                1       n  Ids
                         Attributes:                       Imposto
                         RelationshipType:               Uno-a-molti
-------------------------------------------------------------------------------
            ServiziAppuntamento
                                       Servizi 
Appuntamento
                           IDS                                1       n  IDS
                         Attributes:                       Imposto, 
Aggiornamenti in cascata
                         RelationshipType:               Uno-a-molti
--------------------------------------------------------------------------------
            UsersAppuntamenti_Confermati
                                       Users 
Appuntamenti_Confer
                           Uid                                1       n  uid
                         Attributes:                       Imposto
                         RelationshipType:               Uno-a-molti
------------------------------------------------------------------------------
Query di accodamento:
PARAMETERS GAID Text ( 255 );
INSERT INTO Appuntamenti_Dettaglio ( APID, Ids, datapp, ora )
SELECT Appuntamenti_Confermati.APID, Servizi.IDS, Appuntamento.Ora, 
Appuntamento.DataApp
FROM Appuntamenti_Confermati, Servizi INNER JOIN Appuntamento ON Servizi.IDS 
= Appuntamento.IDS
WHERE (((Appuntamento.Gaid)=[gaid]));
---------------------------------------------------------
Errore:
[cut].......numero campi non accodati a causa di violazione di chiave 
1....[cut]
spero in qualche suggerimento.
ciao grazie
-- 
---------------------------------------------------------------------------------
Loris Badii MCP
Resp.Dev. Oasiscomputers Udine
www.oasiscomputers.net

 ha scritto nel messaggio 
news:Kmf_d.1075437$35.39...@news4.tin.it...

Mhmm... L'errore probabilmente è dato da un valore già presente in un campo 
indicizzato e univoco...
Ciao.
-- 
Sergio MAZZA 


facendo delle prove e togliendo gli indici e chiavi mi accorgo dell'errore 
ma non ne comprendo il motivo, se lancio la s.query di cui sopra mi 
inserisce tutti i record presenti nella tabella di dettaglio dalla tabella 
conferma che rispettano la condizione, io invece vorrei che fosse estreatta 
solo la chiave "APID" relativa al record appena inserito quella nella 
tabella "temporanea"(appuntamenti)
 ciao


 inserisce tutti i record presenti nella tabella di dettaglio dalla tabella
no sbagliato!
in pratica succede che se ho 1 record nella tabella (A), 1 Record nella 
tabella (B) Devo inserire in (C)  gli dico
INSERT INTO C (a,b,c,d)
SELECT A.a, A.b, A.c, B.d
FROM A,B
WHERE Parametro A.e = Parametro.
la tab (A) Contiene sempre un solo record
la tad (B) Contiene mettiamo 2 record con valore id 1( B.a=1) e 2 (B.a=2)
quuando cerco di accodare a (C) dovrebbe inserire solo B.a=2 ("cioè 
l'ultimo")e i rimanenti campi da A, invece mi va ad inserire B.a=1 + B.a=2 e 
rimanenti campi da (A)
???
Come posso in access tradurre una sp di sqlserver come questa visto che il 
principio che devo ottenere è lo stesso?
BEGIN TRAN AddOrder
/* Inserisce l'ordine */
INSERT INTO Orders
(
CID,
OrderDate,
ShipDate,
PayMode
)
VALUES
(
@CID,
@OrderDate,
@ShipDate,
@mode
)
SELECT
@OID = @@Identity
/* Copia dal carrello inserisce in dettaglio ordini*/
INSERT INTO OrderDetails
(OID, ...[cut]
grazie ciao 

 ha scritto nel messaggio 
news:lGy%d.1091970$35.40...@news4.tin.it...

Mi dispiace ma in questo caso mi chiamo fuori; ti potrei consigliare di 
re-inviare il messaggio "fresco".
Ma (oltre ad altro) non capisco una cosa, se devi avere l'ultimo record di 
una qualsiasi tabella dovrai aver stabilito quale campo indicherà la "linea 
temporale" per riconoscerlo. Se hai un campo dataInserimento prenderai 
quello col valore più alto; così per un campo contatore...
Sempre se ho capito...
Ciao.
-- 
Sergio MAZZA