Newsgroup: it.comp.appl.access
Titolo: Eseguire una query di comando da codice

Ciao a tutti.
Devo eseguire una query di comando da codice.
Sono riuscito a fare la cosa utilizzando DAO, ma onestamente la trovo
pesante (si, lo so, sono 4 righe di codice, però secondo me è pesante
cmq).
Se devo ricorrerci per forza, vorrei usare ADO, ma non riesco in nessuno
modo a connettermi al database corrente (quello in uso). In ADO sono in
grado di lanciare query ma su database lontani anni luce dal mio.
Ma la soluzione ottimale secondo me sarebbe una bella funzioncina (tipo
le varie DLookup, DCount, DSum, ecc.) che faccia per me la cosa.
Es. Funzione inventata DExQuery
DExQuery("INSERT INTO tabella (campo1, campo2) VALUES (value1, value2)"
Mi sto spulciando la guida, ma è possibile che non ci sia nulla di tutto
questo?

 ha scritto nel messaggio
news:anmfsa$fcgcv$1...@ID-71483.news.dfncis.de...

Scusami, ma hai provato con il metodo RunSQL (vedi help) dell'oggetto
DoCmd???
Si insomma:
DoCmd.RunSQL "INSERT INTO tabella (campo1, campo2) VALUES ecc. ecc. ..."
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:anmfsa$fcgcv$1...@ID-71483.news.dfncis.de...

Ciao giaconet, se vuoi usare ADO prova questo codice. Con ADO si può
cambiare la struttura delle Tabelle , creare o cancellare indici, creare
relazioni tra tabelle, il tutto con un comando sql.
Function DExQuery(ByVal strStored As String) As long
    Dim Comm As ADODB.Command
    Dim n As Long          'Numero di record interessati
    Set Comm = New ADODB.Command
    Comm.CommandType = adCmdText
    Comm.CommandText = strStored
    Comm.ActiveConnection = CurrentProject.Connection
    Comm.CommandTimeout = 0  'Infinito
    Comm.Execute n
    Set Comm = Nothing
    DExQuery= n
End Function
Ciao Giorgio.


Incredibile, mi vergogno per quanto era semplice.
Grazie, sei sempre il "più migliore".
Bye
giaconet

 ha scritto nel messaggio
news:anmkg7$1gq$1...@lacerta.tiscalinet.it...

Ok, grazie. Mi spieghi meglio cosa rappresenta un oggetto Command in una
connessione ADO?
La riga che mi mancava era qualcosa come la tua
Comm.ActiveConnection = CurrentProject.Connection
Thanks
giaconet

 ha scritto:

DAO in 1 riga
Currentdb.Execute "INSERT INTO ..."
ADO in 1 riga
CurrentProject.Connection.Execute "INSERT INTO ..."
--
HTH
Karl
*********
Access-FAQ (tedesco): 
http://www.donkarl.com

 ha scritto nel messaggio
news:annedj$fkhff$2...@ID-46617.news.dfncis.de...

WOW. Di bene in meglio.
Scriverò un quaderno (citando ovviamente i veri autori) come memento
della programmazione Access - VBA!
Thanx
giaconet


L'oggetto Command serve per definire  un comando specifico da eseguire su
un'origine dati a differenza del metodo Connection.Execute ha la possibilità
di impostare il time out,  di passare i parametri a una stored procedure o a
una query ,di salvare una stored procedure, di eseguire una stored in
modalità  asincrona quindi con la possibilità di interromperla con il metodo
cancel . (le stored procedure si possono utilizzare con SqlServer). In
genere sono abituato a lavorare con l'oggetto che mi permette la maggior
possibilità di scelte.
Ciao Giorgio.