INSERT INTO con clausola WHERE

di il
4 risposte

INSERT INTO con clausola WHERE

Buonasera,
ho creato DB all'interno del quale ci sono tre tabelle in relazione molti-a-molti ovvero Analisi_Campione e Assegnazione lato molti:

Analisi_Campioni:
ID_Analisi_Campioni (PK)
Analisi_Campione

Valore_Analisi:
ID_Valore_Analisi (PK)
ID_Analisi_Campione
ID_Assegnazione
Valore_Analisi

Assegnazione:
ID_Assegnazione (PK)
ID_Valore_Analisi
Numero_Campione
Data_inserimento

ho la necessità di inserire nella tabella Valore_Analisi dei dati derivanti da una maschera (N_ID, Me.txt_visc100) e valori costanti, ad esempio 1, per ID_Assegnazione, utilizzando una stringa SQL.
Ho utilizzato INSERT INTO e la clausola WHERE NOT EXISTS per evitare d' inserire più volte lo stesso valore:
strsql = "INSERT INTO Valore_Analisi (ID_Analisi_Campione,ID_Assegnazione,Valore_Analisi)" & _
                                        " values(1, '" & N_ID & "','" & Me.txt_visc100 & "')" & _
                                        " WHERE NOT EXISTS (SELECT ID_Analisi_Campione,ID_Assegnazione FROM Valore_Analisi WHERE ID_Analisi_Campione=1 and ID_Assegnazione='" & N_ID & "')"
Continua a darmi errore.
Potrei risolvere tutto utilizzando, ad esempio, una semplice INSERT INTO abbinata ad una funzione DCOUNT, ma vorrei capire dove sbaglio con la stringa sql scritta o in che altro modo potrei scriverla.
Grazie.

4 Risposte

  • Re: INSERT INTO con clausola WHERE

    >>>Continua a darmi errore.
    quale?
  • Re: INSERT INTO con clausola WHERE

    Si scusate:
    errore di Run-time '3067. L'input per la query deve contenere almeno una tabella o una query.
  • Re: INSERT INTO con clausola WHERE

    Fai una Dcount con criterio [D_Analisi_Campione=1 and ID_Assegnazione='" & N_ID] e se =0 fai INSERT.

    Con Access le SUBQUERIES hanno una bassissima efficienza.
  • Re: INSERT INTO con clausola WHERE

    Al di là dell'efficienza ma non capisco perché di quell'errore. Forse la INSERT INTO impostata per prelevare valori da una form anziché da altre tabelle non accetta quella subquery? Boh...
Devi accedere o registrarti per scrivere nel forum
4 risposte