Newsgroup: it.comp.appl.access
Titolo: cmd.runsql creazione tabella

Non riesco a creare una tabella da un azione DoCmd.RunSQL
la funzione di un modulo è la seguente:
Function Macro7()
On Error GoTo Macro7_Err
DoCmd.RunSQL "SELECT Analisi.codice_rilevamento, Analisi.tipo_osservazione,
Analisi.numero_osservazione, Analisi.[numero orizzonte],
Orizzonti.codice_orizzonte, Orizz_funzionali.Orizz_funzionale," & _
"Orizz_funzionali.CODICE_UNITA, Orizz_funzionali.s_unita,
Analisi.argilla,Siti.grado_corr INTO PROVA" & _
"FROM (siti INNER JOIN (Orizzonti INNER JOIN Orizz_funzionali ON
Orizzonti.[numero orizzonte] = Orizz_funzionali.Orizz_funzionale) ON
(siti.numero_osservazione = Orizzonti.numero_osservazione) AND
(siti.tipo_osservazione = Orizzonti.tipo_osservazione) AND
(siti.codice_rilevamento = Orizzonti.codice_rilevamento) AND (siti.s_unita =
Orizz_funzionali.S_UNITA) AND (siti.unita = Orizz_funzionali.CODICE_UNITA))
INNER JOIN Analisi ON (Orizzonti.[numero orizzonte] =
Analisi.[numeroorizzonte]) AND (Orizzonti.numero_osservazione
=Analisi.numero_osservazione) AND (Orizzonti.tipo_osservazione =
Analisi.tipo_osservazione) AND (Orizzonti.codice_rilevamento
=Analisi.codice_rilevamento)" & _
"WHERE (((Orizz_funzionali.CODICE_UNITA)=[Forms]![sottounita]![UTS])" & _
"AND ((Orizz_funzionali.S_UNITA)=[Forms]![sottounita]![STS]) AND
((Analisi.argilla) Not Between [marg]-[dvarg] And [marg]+[dvarg])" & _"AND
((siti.grado_corr)<>'c'));"
Macro7_Exit:
    Exit Function
Macro7_Err:
    MsgBox Error$
    Resume Macro7_Exit
End Function
...se eseguo questo listato sql in una query funziona:... creando la tabella
di nome "PROVA"...
 se lo eseguo da evento click da una casella di testo di maschera
.........=macro7()
mi dice " L'input per la query deve essere almeno una tabella o una query"..
forse dovrei usare create table... ma non ci riesco...
grazie per eventuali aiuti e buon lavoro

 Non riesco a creare una tabella da un azione DoCmd.RunSQL
[...]
Prova così:
===========================================
DoCmd.RunSQL "SELECT Analisi.codice_rilevamento, Analisi.tipo_osservazione, 
" & _
    "Analisi.numero_osservazione, Analisi.[numero orizzonte], " & _
    "Orizzonti.codice_orizzonte, Orizz_funzionali.Orizz_funzionale, " & _
    "Orizz_funzionali.CODICE_UNITA, Orizz_funzionali.s_unita, 
Analisi.argilla, " & _
    "Siti.grado_corr INTO PROVA FROM (siti INNER JOIN (Orizzonti INNER JOIN 
" & _
    "Orizz_funzionali ON Orizzonti.[numero orizzonte] = " & _
    "Orizz_funzionali.Orizz_funzionale) ON (siti.numero_osservazione = " & _
    "Orizzonti.numero_osservazione) AND (siti.tipo_osservazione = " & _
    "Orizzonti.tipo_osservazione) AND (siti.codice_rilevamento = " & _
    "Orizzonti.codice_rilevamento) AND (siti.s_unita = 
Orizz_funzionali.S_UNITA) " & _
    "AND (siti.unita = Orizz_funzionali.CODICE_UNITA)) INNER JOIN Analisi " 
& _
    "ON (Orizzonti.[numero orizzonte] = Analisi.[numero orizzonte]) AND " & 
_
    "(Orizzonti.numero_osservazione = Analisi.numero_osservazione) " & _
    "AND (Orizzonti.tipo_osservazione = Analisi.tipo_osservazione) AND " & _
    "(Orizzonti.codice_rilevamento = Analisi.codice_rilevamento) " & _
    "WHERE (((Orizz_funzionali.CODICE_UNITA) = [Forms]![sottounita]![UTS]) " 
& _
    "AND ((Orizz_funzionali.S_UNITA) = [Forms]![sottounita]![STS]) " & _
    "AND ((Analisi.argilla) Not Between [marg]-[dvarg] And [marg]+[dvarg]) " 
& _
    "AND ((siti.grado_corr)<>'c'));"
E se non funziona, mi manderesti un piccolo database con le tabelle e la
query?  È un problema che mi piacerebbe risolvere!
Bruno 

 wrote in message 
news:44460dc6$0$29731$4faf...@reader2.news.tin.it...
Mai una volta che ci prenda con le dimensioni di riga di OutLook Express...!
DoCmd.RunSQL "SELECT Analisi.codice_rilevamento, Analisi.tipo_osservazione, 
" & _
"Analisi.numero_osservazione, Analisi.[numero orizzonte], " & _
"Orizzonti.codice_orizzonte, Orizz_funzionali.Orizz_funzionale, " & _
"Orizz_funzionali.CODICE_UNITA, Orizz_funzionali.s_unita, Analisi.argilla, " 
& _
"Siti.grado_corr INTO PROVA FROM (siti INNER JOIN (Orizzonti INNER JOIN " & 
_
"Orizz_funzionali ON Orizzonti.[numero orizzonte] = " & _
"Orizz_funzionali.Orizz_funzionale) ON (siti.numero_osservazione = " & _
"Orizzonti.numero_osservazione) AND (siti.tipo_osservazione = " & _
"Orizzonti.tipo_osservazione) AND (siti.codice_rilevamento = " & _
"Orizzonti.codice_rilevamento) AND (siti.s_unita = Orizz_funzionali.S_UNITA) 
" & _
"AND (siti.unita = Orizz_funzionali.CODICE_UNITA)) INNER JOIN Analisi " & _
"ON (Orizzonti.[numero orizzonte] = Analisi.[numero orizzonte]) AND " & _
"(Orizzonti.numero_osservazione = Analisi.numero_osservazione) " & _
"AND (Orizzonti.tipo_osservazione = Analisi.tipo_osservazione) AND " & _
"(Orizzonti.codice_rilevamento = Analisi.codice_rilevamento) " & _
"WHERE (((Orizz_funzionali.CODICE_UNITA) = [Forms]![sottounita]![UTS]) " & _
"AND ((Orizz_funzionali.S_UNITA) = [Forms]![sottounita]![STS]) " & _
"AND ((Analisi.argilla) Not Between [marg]-[dvarg] And [marg]+[dvarg]) " & _
"AND ((siti.grado_corr)<>'c'));"
Bruno 

 wrote in message 
news:44460eb6$0$29731$4faf...@reader2.news.tin.it...
Buona la terza?
DoCmd.RunSQL "SELECT Analisi.codice_rilevamento, " & _
"Analisi.tipo_osservazione, Analisi.numero_osservazione, " & _
"Analisi.[numero orizzonte], Orizzonti.codice_orizzonte, " & _
"Orizz_funzionali.Orizz_funzionale, Orizz_funzionali.CODICE_UNITA, " & _
"Orizz_funzionali.s_unita, Analisi.argilla, Siti.grado_corr " & _
"INTO PROVA FROM (siti INNER JOIN (Orizzonti INNER JOIN " & _
"Orizz_funzionali ON Orizzonti.[numero orizzonte] = " & _
"Orizz_funzionali.Orizz_funzionale) ON (siti.numero_osservazione = " & _
"Orizzonti.numero_osservazione) AND (siti.tipo_osservazione = " & _
"Orizzonti.tipo_osservazione) AND (siti.codice_rilevamento = " & _
"Orizzonti.codice_rilevamento) AND " & _
"(siti.s_unita = Orizz_funzionali.S_UNITA) AND (siti.unita = " & _
"Orizz_funzionali.CODICE_UNITA)) INNER JOIN Analisi " & _
"ON (Orizzonti.[numero orizzonte] = Analisi.[numero orizzonte]) " & _
"AND (Orizzonti.numero_osservazione = Analisi.numero_osservazione) " & _
"AND (Orizzonti.tipo_osservazione = Analisi.tipo_osservazione) AND " & _
"(Orizzonti.codice_rilevamento = Analisi.codice_rilevamento) " & _
"WHERE (((Orizz_funzionali.CODICE_UNITA) = " & _
"[Forms]![sottounita]![UTS]) AND ((Orizz_funzionali.S_UNITA) = " & _
"[Forms]![sottounita]![STS]) AND ((Analisi.argilla) Not Between " & _
"[marg]-[dvarg] And [marg]+[dvarg]) AND ((siti.grado_corr)<>'c'));"
Bruno 

 ti ringrazio infinitamente funziona!
comunque se ce qualcosa in particolare che ti interessa/interesserebbe fammi
sapere...