Newsgroup: it.comp.appl.access
Titolo: [VBA] Esecuzione query da codice

Dopo un sacco di modifiche...la mia ultima idea per
l'inserimento è stata quella di fare tutto da codice
ma come si fa ad eseguire una query di accodamento da
codice?
ps. ho già creato la query..devo solo eseguirla
--
Lawrence Oluyede
rhy...@myself.com

 wrote:
[..cut..]
mi sono dimenticato di aggiungere che la query è creata
interamente via codice...in base a dei parametri ricavati da
una maschera
--
Lawrence Oluyede
rhy...@myself.com

 wrote in message
psr5cu429g4noa9ap...@4ax.com...

docmd.openquery "nomedellaquery"
o c'è qualcosa ke nn ho capito..?
Ciao Max

o c'è qualcosa ke nn ho capito..?
cosi apre una query creata in Access
io creo una query nel codice nel seguente modo:
    Dim today As Date
    Dim money As Currency
    Dim materiale As String
    Dim nazione As String
    Dim query As String
    Dim dbs As Database
    Dim qdf As QueryDef
    Dim rst As Recordset
    Set dbs = CurrentDb
 
    today = Date
    money = txtMoney.Text
    materiale = ccMateriale.Text
    nazione = ccNazione.Text
 
    query = ""
    query = query + "INSERT INTO Vendita ( Data, Importo,
CodiceMateriale, CodiceNazione ) "
    query = query + "VALUES (" + Date + ", [inserisci
importo in €], ("
    query = query + "SELECT Materiale.ID FROM materiale "
    query = query + "WHERE Materiale.Descrizione = " +
materiale + " ), "
    query = query + "SELECT Nazione.ID FROM nazione "
    query = query + "WHERE Nazione.Nome = " + nazione + " )"
    query = query + " ) "
 
--
Lawrence Oluyede
rhy...@myself.com

 io creo una query nel codice nel seguente modo:
DoCmd.RunSql (QuerySql)
QuerySql corrisponde alla tua variabile "query" ...
Marco

QuerySql corrisponde alla tua variabile "query" ...
grazie mille...
ora però quando clicco mi dà quest errore:
"Impossibile fare riferimento ad una proprietà o ad un
metodo per un controllo a meno che non abbia lo stato
attivo."
Che significa?
--
Lawrence Oluyede
rhy...@myself.com

Che significa?
.
Non so, ma non sembra dipendere
dall'Sql.
Direi che c'è qualcosa che non gli piace su un controllo di
maschera. Dove ti si blocca il codice ?
.
Marco
--------------------------------
Inviato via 
http://usenet.iol.it
 

Dove ti si blocca il codice ?
non si blocca...da quell'errore..
il codice incriminato è questo:
    Dim today As Date	' per la data odierna
    Dim money As Currency ' per l'importo
    Dim materiale As String ' per il materiale
    Dim nazione As String ' per la nazione
    Dim query As String 	'per la query
 
    today = Date	' leggo la data odierna
    money = txtMoney.Text  ' ricavo da una textbox
    materiale = ccMateriale.Text  ' ricavo da una listbox
    nazione = ccNazione.Text ' ricavo da una listbox
 
    query = ""
    query = query + "INSERT INTO Vendita ( Data, Importo,
CodiceMateriale, CodiceNazione ) "
    query = query + "VALUES (" + today + ", money, ("
    query = query + "SELECT Materiale.ID FROM materiale "
    query = query + "WHERE Materiale.Descrizione = " +
materiale + " ), "
    query = query + "SELECT Nazione.ID FROM nazione "
    query = query + "WHERE Nazione.Nome = " + nazione + " )"
    query = query + " ) "
' la query soprastante inserisce i dati calcolati nella
tabella Vendita
 
    DoCmd.RunSQL query 'eseguo la query
grazie mille in anticipo....
--
Lawrence Oluyede
rhy...@myself.com

     nazione = ccNazione.Text ' ricavo da una listbox
Ho paura che la proprietà Text ti stia creando dei problemi, dato che
funziona solo se il controllo è attivo (ho anche dei dubbi che sia
applicabile sulle listbox). Fai riferimento direttamente ai valori dei
controlli togliendo il Text; anche sulle listbox dovrebbe essere OK se il
valore Descrizione è quello associato al controllo.
today = Date    ' leggo la data odierna
money = txtMoney    ' ricavo da una textbox
materiale = ccMateriale     ' ricavo da una listbox
nazione = ccNazione     ' ricavo da una listbox
Per semplificare suggerirei addirittura di rinunciare alle variabili di cui
sopra per passare all'Sql direttamente i valori dei controlli di maschera.
Sul codice query Sql non mi pronuncio perchè so troppo poco riguardo alla
tua struttura dati (formati campi tabelle, ID numerico o alfanumerico,
ecc.). Però intravedo già possibili fonti di errore. Ad esempio nella
gestione della data che sarebbe da gestire col format(today, "mm/dd/yy") e
da racchiudere con #. Oppure con alcune variabili stringa in cui mancano gli
apici.
Inoltre trovo un po' complicato l'annidamento di Sql per estrarre gli ID
Materiali e Nazione ... in fondo quell'ID potresti già organizzarlo in
listbox e catturarlo con la proprietà Column [ccMateriale.Column(0)].
Suggerimento ... metti uno Stop prima dell'esecuzione dell'Sql e controlla
dalla finestra immediata la sintassi della query che hai costruito. Con un
po' di pazienza dovresti poterla correggere.
Altrimenti, riposta per chiarimenti  ...
Marco