Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[ACCESS] Esecuzione automatica query

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

[ACCESS] Esecuzione automatica query

Messaggioda bandrew » mer apr 28, 2004 11:12 am

Qualcuno è in grado di dirmi come si fa a far avviare una query in access quando inserisco un valore in un record? In pratica io metto un valore e lui aggiorna automaticamente il database...
Mi hano detto di farlo in visual basic con il comando DO CMD RUN QUERY ma come si fa?
Vi prego è urgente e stiamo sclerando x questa cosa...
Grazie [^]
<font color="red">Edited by Bocca: Attenzione alla sezione in cui si posta!!</font id="red">
Avatar utente
bandrew
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1939
Iscritto il: mar set 16, 2003 4:11 pm
Località: Lombardia

[ACCESS] Esecuzione automatica query

Messaggioda bandrew » mer apr 28, 2004 11:12 am

Qualcuno è in grado di dirmi come si fa a far avviare una query in access quando inserisco un valore in un record? In pratica io metto un valore e lui aggiorna automaticamente il database...
Mi hano detto di farlo in visual basic con il comando DO CMD RUN QUERY ma come si fa?
Vi prego è urgente e stiamo sclerando x questa cosa...
Grazie [^]
<font color="red">Edited by Bocca: Attenzione alla sezione in cui si posta!!</font id="red">
Avatar utente
bandrew
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1939
Iscritto il: mar set 16, 2003 4:11 pm
Località: Lombardia

Messaggioda Robby78 » mer apr 28, 2004 11:34 am

l'oggetto dei database predisposto x questa operazione si kiama trigger; so come farli in Oracle e DB2 ma nn credo si possano fare in Access.

Con VB non conosco i comandi che dici; potresti fare una query di selezione del campo che aggirni all'interno di un oggetto timer; se il campo assume un determinato valore esegui l'altra query di update (o di insert). Forse ho fatto un po di casino, se vuoi un esempio mandami una imeil.

Ciao
Avatar utente
Robby78
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3829
Iscritto il: gio gen 08, 2004 5:25 pm
Località: Emilia Romagna


Messaggioda bandrew » mer apr 28, 2004 2:14 pm

Nn ho molto capito, comunque io ho due relazioni distinte e devo in pratica fare in modo che quando compro un tot di pezzi (relazione contratto), e quindi inserisco una cifra nell'attributo numero pezzi, il db vada ad aggiornare la tabella merce aumentando il numero dei pezzi che io ho.
Forse mi sono spiegato male xò solo con l'esempo in questione posso farmi capire...
Avatar utente
bandrew
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1939
Iscritto il: mar set 16, 2003 4:11 pm
Località: Lombardia

Messaggioda bandrew » mer apr 28, 2004 4:21 pm

anche se la mia richiesta nn era proprio di programmazione, va ben anche qui. comunque nn richiedo solo su vilual basic, anzi...
Avatar utente
bandrew
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1939
Iscritto il: mar set 16, 2003 4:11 pm
Località: Lombardia

Messaggioda Bocca » mer apr 28, 2004 4:27 pm

L'ho spostato perché in software applicativo mi sembrava fuori posto.. Venendo al tuo problema, la query deve essere eseguita dopo un inserimento da maschera vero?
Avatar utente
Bocca
Silver Member
Silver Member
 
Messaggi: 1637
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda Ices_Eyes » mer apr 28, 2004 4:55 pm

Io avrei lo stesso problema, solo che i trigger in access non si possono usare se non ci si collega ad un SQL server, e l'aggiornamento dovrei farlo ogni volta che elimino un campo di una tabella, ma non tramite maschera, ma tramite un programma in VB che è collegato al database mdb...E' odioso e lungo farla "a mano" ogni volta...
Avatar utente
Ices_Eyes
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5543
Iscritto il: ven ott 24, 2003 10:37 am
Località: Prov. di Venezia

Messaggioda bandrew » mer apr 28, 2004 6:06 pm

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da Bocca</i>
<br />L'ho spostato perché in software applicativo mi sembrava fuori posto.. Venendo al tuo problema, la query deve essere eseguita dopo un inserimento da maschera vero?
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">
Sì Bocca, la query di aggiornamento funziona a dovere ma nn sappiamo come farla avviare in automatico...
Grazie mille

PS Ottimo il titolo, scusa la sezione ecc ma sto progetto mi sta facendo impazzire, ho il cervello fuso... AIUTATEMIII[prego][prego]
Avatar utente
bandrew
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1939
Iscritto il: mar set 16, 2003 4:11 pm
Località: Lombardia

Messaggioda Bocca » gio apr 29, 2004 9:06 am

Per prima cosa devi creare la query, dopodichè ti porti sulla casella di testo dell'inserimento e, cliccando col tasto destro, selezioni le proprietà. Trovi vari tab (Formato, Dati, Evento, Dati, Tutte). Selezioni Evento e inserisci il nome della query nel campo 'Dopo aggiornamento'. La tua query dovrebbe già essere presente nel menù a tendina. L'ho scritto di frettissima, se ci sono dei problemi fammi sapere! [eat]
Avatar utente
Bocca
Silver Member
Silver Member
 
Messaggi: 1637
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda Robby78 » gio apr 29, 2004 9:08 am

Modifica (nn avevo letto la risposta di Bocca) se vuoi farlo in VB qui c'è un esempio; ma visto che si può fare da Access è sicuramente meglio farlo da li,

ti scrivo una traccia x un progetto vb ovviamente devi adattarla al tuo database ed inserire le varie clausole where.
Inserisci nel progetto le referencies al DAO e nella form un timer.
poi incolla dentro questo esempio e modificalo come vuoi:

Dim dbDAO As Database
Option Explicit

Private Sub Form_Load()

'Apertura Database Access (DAO)
Set dbDAO = Workspaces(0).OpenDatabase("C:Database.mdb")
Timer1.Interval = 10000 'Imposto il timer a 10 secondi
Timer1.Enabled = True 'Abilito il timer

End Sub

Private Sub Timer1_Timer()
Dim sSQL As String
Dim rsTMP As Recordset

'Seleziono il campo da monitorare
sSQL = "Select numeropezzi from contratto where numeropezzi > 0"
Set rsTMP = dbDAO.OpenRecordset(sSQL, dbOpenDynaset)
If Not rsTMP.EOF Then
'se il valore del campo è maggiore di 0 eseguo la query di update
If rsTMP!numeropezzi > 0 Then
sSQL = "update merce set pezzi = pezzi + " & rsTMP!numeropezzi
dbDAO.Execute sSQL
'riazzero il numeropezzi x nn aggiungerli al prossimo giro (timer)
sSQL = "update contratto set numeropezzi = 0"
dbDAO.Execute sSQL
End If
End If
rsTMP.Close

End Sub

spero di averti aiutato... ciao
Avatar utente
Robby78
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3829
Iscritto il: gio gen 08, 2004 5:25 pm
Località: Emilia Romagna

Messaggioda bandrew » gio apr 29, 2004 10:11 am

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da Bocca</i>
<br />Per prima cosa devi creare la query, dopodichè ti porti sulla casella di testo dell'inserimento e, cliccando col tasto destro, selezioni le proprietà. Trovi vari tab (Formato, Dati, Evento, Dati, Tutte). Selezioni Evento e inserisci il nome della query nel campo 'Dopo aggiornamento'. La tua query dovrebbe già essere presente nel menù a tendina. L'ho scritto di frettissima, se ci sono dei problemi fammi sapere! [eat]
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">
Ma così modifica la stessa tabella oppure un'altra collegata?
Avatar utente
bandrew
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1939
Iscritto il: mar set 16, 2003 4:11 pm
Località: Lombardia

Messaggioda Bocca » gio apr 29, 2004 11:59 am

Dipende dalla query! Lui dopo l'inserimento esegue la query che inserisci nell'evento 'Dopo aggiornamento'. In parole povere: viene inserito nella tabella il nuovo record o il campo di un record e poi viene eseguita la query (che potrebbe modificare la stessa tabella o un'altra tabella).
Avatar utente
Bocca
Silver Member
Silver Member
 
Messaggi: 1637
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda bandrew » gio apr 29, 2004 1:52 pm

Grazie ma nn abbiamo + tempo, tra due ore presentiamo il progetto, comunque grazie [^]
Avatar utente
bandrew
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 1939
Iscritto il: mar set 16, 2003 4:11 pm
Località: Lombardia


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising