Sequenza di query

venerdì 23 maggio 2008 - 08.59

lallob Profilo | Newbie

salve a tutti,
sto lavorando con access e ho creato un database che, partendo da tabelle estratte settimanalmente da una banca dati di cui non dispongo l'accesso, organizza i dati. Tutto funziona, ma naturalmente ho dovuto creare un sacco di query di comando (accodamento, aggiornamento ecc.). Ho dovuto quindi dare delle istruzioni a chi gestisce il db e quindi questa persona ha la lista delle query da lanciare con l'ordine esatto e, ogni settimana, prima che gli utenti utilizzino il db lancia le query una ad una.
DOMANDA:
è possibile creare un comando unico che provveda poi in automatico a lanciare tutte le qwuery nella giusta sequenza in modo che ogni settimana il gestoire debba lanciare solo quello?
Spero di essermi spiegato con chiarezza e, come al solito, confido nel vostro aiuto e nella vostra pazienza.....
Ciao
Lallob

Brainkiller Profilo | Guru

>è possibile creare un comando unico che provveda poi in automatico
>a lanciare tutte le qwuery nella giusta sequenza in modo che
>ogni settimana il gestoire debba lanciare solo quello?
>Spero di essermi spiegato con chiarezza e, come al solito, confido
>nel vostro aiuto e nella vostra pazienza.....

Certamente sì.
O gli fai una Macro, o gli fai una finestra con un pulsante a cui colleghi un codice VBA di questo tipo:

Dim db As Database Set db = CurrentDb db.Execute ("INSERT INTO ....") db.Execute ("SELECT ....") db.Execute ("UPDATE....")

Ciao


David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

lallob Profilo | Newbie

ciao e prima di tutto grazie della risposta.
Purtroppo sono proprio alle prime armi e non riesco a capirci granchè. Ti allego un db di prova. In esso ci sono le tre query da lanciare (nell'ordine: "crea_pass", "accoda" e "Query1").
Ho fatto come mi hai suggerito con la macro (maschera1 la lancia), ma penso che l'altra soluzione che mi hai suggerito potrebbe essere migliore, anche perchè con la macro mi chiede ogni volta di confermare ogni singolo passaggio). Potresti farmi un esempio pratico sul file che allego? Scusa se approfitto della disponibilità, ma non ne posso fare a meno...
Grazie mille
Lallob

Brainkiller Profilo | Guru

>Ho fatto come mi hai suggerito con la macro (maschera1 la lancia),
>ma penso che l'altra soluzione che mi hai suggerito potrebbe
>essere migliore, anche perchè con la macro mi chiede ogni volta
>di confermare ogni singolo passaggio). Potresti farmi un esempio
>pratico sul file che allego? Scusa se approfitto della disponibilità,
>ma non ne posso fare a meno...

Ok,
allora apri la Maschera che hai creato in modalità "Progettazione". Penso che fino a qui ci arrivi ok ?
Vedo che hai creato un pulsante con uno script. Fai con il tasto destro e tra le voci di menù dovrebbe esserci "Genera Evento" o qualcosa di analogo.
Ciò ti porta dentro Visual Basic for Applications.

Dove troverai un codice di questo tipo:

Private Sub Comando0_Click() On Error GoTo Err_Comando0_Click Dim stDocName As String stDocName = "Macro1" DoCmd.RunMacro stDocName Exit_Comando0_Click: Exit Sub Err_Comando0_Click: MsgBox Err.Description Resume Exit_Comando0_Click End Sub

è sufficiente sostituirlo con:

Private Sub Comando0_Click() Dim db As Database Set db = CurrentDb() db.Execute ("Query1") 'altre query da eseguire End Sub

A questo punto quando mandi la maschera in modalità di esecuzione ossia quando il pulsante diventa cliccabile, se lo clicchi verranno eseguite tutte le query indicate nell'ultimo frammento di codice secondo l'ordine in cui le hai inserite.
Ciao


David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5