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
[..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
>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
> cosi apre una query creata in Access
> 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
>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?
.
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
> 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
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