Newsgroup: it.comp.appl.access
Titolo: INSERT INTO non funzionante

Ciao a tutti,
Vorrei inserire alcuni dati da una tabella all'altra tramite una queri
di inserimento INSERT INTO pero' mi da' errore di "syntax error" ma
non riesco a capire dove sbaglio.
Vi posto il codice sperando che qualcuno mi possa aiutare
Dim rst, rst2 As Variant
Dim NextFiscalMonthEnd As Date
    NextFiscalMonthEnd = DMin("MonthEnd", "tbl_MonthEnd", "MonthEnd>#"
& Format(Date, "mm/dd/yy") & "#")
    Set rst = CurrentDb.OpenRecordset("SELECT
Tbl_Historical_Statements.Update_date FROM Tbl_Historical_Statements
GROUP BY Tbl_Historical_Statements.Update_date HAVING
(((Tbl_Historical_Statements.Update_date)>#" & Format
(NextFiscalMonthEnd, "mm/dd/yy") & "#));")
    If rst.RecordCount < 2 Then
-----------------------------------------------------------------------------------
QUESTA E' LA PARTE CHE MI DA' ERRORE
        Set rst = CurrentDb.OpenRecordset("INSERT INTO
Tbl_Historical_Statements ( Customer_ID, Update_date, #" & Format
(Date, "mm/dd/yy") & "#, Document_Number, Customer_reference, Type,
Amount, Overdue_Date, [Currency] ) SELECT Tbl_Invoices.Customer_ID,
Tbl_Invoices.Update_date, Tbl_Invoices.Date,
Tbl_Invoices.Document_Number, Tbl_Invoices.Customer_reference,
Tbl_Invoices.Type, Tbl_Invoices.Amount, Tbl_Invoices.Overdue_Date,
Tbl_Invoices.Currency FROM Tbl_Invoices WHERE
(((Tbl_Invoices.Update_date)=#" & Format(Date, "mm/dd/yy") & "#));")
-----------------------------------------------------------------------------------
non riesco a capire cosa ci sia che non va, mi sembra tutto ok
ho anche provato a sostituire la query precedente con questa:
Set rst = CurrentDb.OpenRecordset("INSERT INTO
Tbl_Historical_Statements ( Customer_ID ) SELECT
Tbl_Invoices.Customer_ID FROM Tbl_Invoices;")
e se poi avesse funzionato avrei aggiunto i campi ad uno ad uno ma
questa volta mi da' errore di "invalid operation"
Sapete dirmi cosa c'e' che non va ?
grazie 1000 per l'aiuto in anticipo
Stay alive
Pio Pio

 Ciao a tutti,






INSERT INTO � una query di inserimento, non puoi usarla per aprire un
recordset.
Eseguila cos�: currentdb.execute "INSERT INTO ..."
Ciao.
-Marco-
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 - Mostra testo citato -
Ciao Marco e grazie per l'informazione. Ci deve essere anche un'altro
errore. Ho sostituito la query con la seguente:
CurrentDb.Execute "INSERT INTO Tbl_Historical_Statements
( Customer_ID, Update_date= #" & Format(Date, "mm/dd/yy") & "#,
Document_Number, Customer_reference, Type, Amount, Overdue_Date,
Currency ) SELECT Tbl_Invoices.Customer_ID, Tbl_Invoices.Update_date,
Tbl_Invoices.Date, Tbl_Invoices.Document_Number,
Tbl_Invoices.Customer_reference, Tbl_Invoices.Type,
Tbl_Invoices.Amount, Tbl_Invoices.Overdue_Date, Tbl_Invoices.Currency
FROM Tbl_Invoices WHERE (((Tbl_Invoices.Update_date)=#" & Format(Date,
"mm/dd/yy") & "#));"
pero' mi dice che c'e' ancora un errore di sintassi. Cosa puo' essere
ancora ?
Stay alive !
Pio Pio

 Pio Pio
Mi rispondo da solo: la seguente query:
CurrentDb.Execute "INSERT INTO Tbl_Historical_Statements
( Customer_ID, Update_date= #" & Format(Date, "mm/dd/yy") & "#,
Document_Number, Customer_reference, Type, Amount, Overdue_Date,
Currency ) SELECT Tbl_Invoices.Customer_ID, Tbl_Invoices.Update_date,
Tbl_Invoices.Date, Tbl_Invoices.Document_Number,
Tbl_Invoices.Customer_reference, Tbl_Invoices.Type,
Tbl_Invoices.Amount, Tbl_Invoices.Overdue_Date, Tbl_Invoices.Currency
FROM Tbl_Invoices WHERE (((Tbl_Invoices.Update_date)=#" & Format
(Date,
"mm/dd/yy") & "#));"
deve essere cambiata in:
CurrentDb.Execute "Insert INTO Tbl_Historical_Statements
( Customer_ID ,Update_date, Document_Number, Customer_reference, Type,
Amount, Overdue_Date, [Currency]) SELECT Tbl_Invoices.Customer_ID,
Tbl_Invoices.Update_date, Tbl_Invoices.Date,
Tbl_Invoices.Document_Number , Tbl_Invoices.Type, Tbl_Invoices.Amount,
Tbl_Invoices.Overdue_Date, Tbl_Invoices.Currency  FROM Tbl_Invoices
WHERE ((Tbl_Invoices.Update_date)=#" & Format(Date, "mm/dd/yy") &
"#);"
c'era un format di troppo.
