max.riservo ha scritto:
Se si procedi, se no è sbagliata la select (o non esistono dei dati).
Se la query di selezione produce dei risultati, ti consiglio di rispettare l'ordine dei campi della select e quelli della insert to (parti dall'ordine della select e adegui la insert to).
Altra considerazione importante : tra i vari campi che estrai dalla select c'è per caso un campo con ID automatico (autoincrement) ?
Se sì c'è anche autoincrement nella tabella di destinazione ?
Se sì NON si può fare (l'estrazione SI, l'inserimento NO, è il motore del Db che assegna il valore i campi autoincrement).
Ciao Max,
ho modificato la query di insert into in questa maniera in QBE:
INSERT INTO tblAssGasolio
( ID_FASCICOLO_AZIENDALE,
Campagna,
OPERATORE,
ID_DOMANDA,
CUAA )
SELECT
Q_InadempientiUMAAGG.ID AS ID_FASCICOLO_AZIENDALE,
Date() AS CAMPAGNA,
[MASCHERE]![FRMSCHEDAAZIENDALE]![UTENTE] AS OPERATORE,
[MASCHERE]![FRMAGGUMA]![TIPO] AS ID_DOMANDA,
Q_InadempientiUMAAGG.CUAA
FROM Q_InadempientiUMAAGG
WHERE (((Q_InadempientiUMAAGG.ID) In (5,17)));
Qui, la query funziona.
Da VBA, invece continua a non funzionare ... mi riporta sempre errore di sintassi. Riposto la stringa SQL:
a = "INSERT tblAssGasolio " _
& "(ID_FASCICOLO_AZIENDALE, CAMPAGNA, OPERATORE, ID_DOMANDA, CUAA) " _
& "SELECT " & E_INA.ItemData(varItm) & " AS ID_FASCICOLO_AZIENDALE, ID_REC, " _
& Date & " AS CAMPAGNA, " & Forms("frmSchedaAziendale")!utente & " as OPERATORE, " & Me.tipo.Value & " _
& "AS ID_DOMANDA, CUAA " & "FROM Q_InadempientiUMAAGG WHERE ID in (" & (strSQL) & ")"
Il debug.print mi riporta questo:
INSERT tblAssGasolio
(ID_FASCICOLO_AZIENDALE,
CAMPAGNA,
OPERATORE,
ID_DOMANDA,
CUAA)
SELECT
ID AS ID_FASCICOLO_AZIENDALE,
ID_REC,
18/04/2020 AS CAMPAGNA,
xxxxxx yyyyyy as OPERATORE,
1 AS ID_DOMANDA,
CUAA
FROM Q_InadempientiUMAAGG WHERE ID in (5,17)
Ho provato a fare un replace della strSQL in modo da avere il punto e virgola e non la semplice in virgola, ma mi da sempre errore (e quindi non credo sia quello il problema)