Newsgroup: it.comp.appl.access
Titolo: usare in VBA codice scritto in una Query

ACCESS 2000
Ho una query di un campo che mi restituisce una serie di record.
Ogni campo di questi record contiene del codice VBA
ad esempio in record può esserci:
1 "docmd.openreport ..."
2 "text1 = unvalorequalsiasi"
e cosi via
 
praticamente ogni record della query corrisponde a una riga di codice
 
al click di un pulsante in una form vorrei che il codice inserito nei record della query venisse eseguito 
 
non so se è piu opportuno esportare i risultati dlela query in un file esterno e poi in qualche modo richiamare il file esterno contenente questo codice da vba per la sua esecuzione
 
o se da vba richiamare il contenuto della query record per record ed eseguire il relativo codice contenuto nel campo
 
ho cercato molto su internet ma non ho trovato nulla che funzionasse
 
se in vba eseguo una funzione del tipo
comando = dlookup("campo1", "query")
 
"comando" assume la stringa col codice
ma non so poi come fare ad eseguire ... "comando"


eval
 
Questa e' una cosa da /pazzi/
ma........
"Ognuno ha il diritto di scegliere tempo e modo della sua distruzione" 
(R.H. Heinlein)
 
-- 
 
ac (x=y-1) e non uso il KillFile.
La violenza e' l'ultimo rifugio degli incapaci (Salvor Hardin)

avevo già provato a usare la funziona Eval ma senza successo, probabilmente l'ho scritta male
 
qua il mio codice:
 
Dim codice As String
codice = DLookup("comando", "comandi_query")
Eval (codice)
 
________________________
a questo punto dovrebbe aprirmi il report, atteso che il risultato del lookup è appunto una stringa di codice, ovvero il campo "comando" della query "comandi_query", contiene:
docmd.openreport "report1", acpreview
 
E invece restituisce questo errore:
Errore di runtime 2434 - Errore di sintassi nell'espressione
 
Dove sbaglio?

 ha scritto:

sbagli proprio sistema...
 
EVAL: È possibile utilizzare la funzione Eval per restituire
un'espressione risultante in una stringa di testo o in un valore numerico.
 
niente di piu' niente di meno...
 
credo che la questione non la sbrogli cosi' facilmente...
 
-- 
------------
Pablitomf
Napoli sempre nel "Q"uore!
"mammasantissima" si nasce, non si diventa.
 
TheSpaceCowboy : 
Britos deve recuperare per arrivare in forma al prossimo
infortunio - 24/10/12
 


Tanto per cominciare, DLookUp restituisce un variant /non/ una stringa 
ed, immagino, l'eventuale risultato sia un valore unico e non un 
recordset (almeno nella tua testa) ma per come hai descritto la cosa su 
tabella/query "comandi_query" dovrebbe esserci piu' di un record. Dov'e' 
la, sempre eventuale, condizione di estrazione?
E tra l'altro non aprirebbe comunque il report ma si limiterebbe a 
mettere  nella variabile codice "docmd.openreport "report1", acpreview" 
che "e'" il risultato della funzione chiamata. Tale risultato dovrebbe 
essere poi eseguito, eventualmente,  da un'altra eval
 
 
Ripeto, quello che stai tentando di fare ti potrebbe avviare presto 
verso qualche struttura psichiatrica. Fatto come lo hai pensato e' una 
/vera follia/


 ha scritto:

follia? diciamo che follia e' ancora uno status relativamente "sensato" ed
"accettabile" in questo caso... ma io credo che vada molto ma molto piu' in
la' ;)


 la' ;)
 
anche perche' va a parsarli tutti gli apici/virgolette eventuali e a dire al
sistema di funzionare bene... praticamente una assurdita'.


 sistema di funzionare bene... praticamente una assurdita'.
 
inoltre, la questione MDE andrebbe a putt*** in un batter d'occhi (visto che il
codice sarebbe in tabella), e, cosa tutt'altro da sottovalutare, perdere i dati,
vorrebbe dire perdere le funzionalita' attribuite a destra e a manca...
ANATEMA!!!! :D



 
P.S. Ho letto male, non usi "codice" come variabile di ritorno, e' 
comunque valido quello che ho scritto, compresa la /vera follia/



 
A suo tempo un marchingegno di questo tipo lo ho fatto, ma non in questo 
modo. Usavo delle funzioni pubbliche  "wrapper" che , tra l'altro, 
lanciavo con la "Run" e questo mi salvava anche la questione dell'MDE.


 lanciavo con la "Run" e questo mi salvava anche la questione dell'MDE.
 
si ma poi i dati in tabella li devi trattare in altro modo... non piu' un
"docmd.openreport...." 
imho non ne vale la pena...


 imho non ne vale la pena...
 
non ho capito, come facevi a salvare la questione mde?... se le funzioni
prendevano da tabella, per quanto pubbliche, crashati i dati, dell'mde non te ne
facevi cmq nulla no?
 
per quanto in tabella avevi
OPERAZIONE: ApriReport
NOME: TuoReport
FUNZIONE: TuaFunzione
 
e la tua funzione si basava su questi,
basta che in tabella avessi "TuoRPT" al posto di "TuoReport" che il
funzionamento del codice è bello che compromesso...


Devi tenere presente che le VIRGOLETTE deveno diventare parte integrante del codice, quindi vanno tutte raddoppiate...!
 
Suggerisco anche 
Funzione CallByName
 
@Alex

 funzionamento del codice è bello che compromesso...
vedi sopra



Ciao Alex.
Ma c'e' in access?
In VB di sicuro, ma in access non me la ricordo.


dunque probabilmente sto sbagliando all'origine come affrontare il mio problema
 
Provo a spiegare cosa mi serve, magari riuscite a suggerirmi un metodo migliore.
 
Le mie pratiche si basano su una serie di casi diversi tra loro
Ogni caso ha un iter che segue varie fasi
Per ogni fase è prevista l'esecuzione di una serie di azioni
 
Data la diversità delle azioni di eseguire, distinte in base al caso e al punto della fase dell'iter in cui mi trovo per quel specifico caso ho creato le seguenti tabelle:
1) una tabella CASI: contiene il tipo di casi
2) una tabella FASI: contiene il tipo di fasi degli iter di tutti i casi
3) una tabella CASI_FASI: contiene l'associazione delle fasi dell'iter specifiche per ogni tipo di caso
4) una tabella azioni: contiene le azioni da eseguire... le "maledette" stringhe di codice contenute nella tabella che devo far eseguire in VBA
5) una tabella azioni_fasi: contiene l'associazione delle azioni alle fasi che devono essere eseguite.
 
una query mi restituisce una serie di record contenenti le stringhe delle azioni da eseguire, filtrata per caso e per stato attuale dell'iter del caso specifico.
 
ho pensato anche di esportare i risultati della query in un txt esterno
e in un qualche modo richiamare in VBA il txt esterno e leggerne il contenuto (che contiene le stringhe di codice da eseguire) da eseguire come codice
 
Probabilmente pazza anche questa come soluzione..
 
Se qualcuno ha un idea diversa su come gestire questa situazione ben vengano i suggerimenti! :)

 In VB di sicuro, ma in access non me la ricordo.
 
Nel mio c'è... ma sai che io l'ho pagato regolarmente... quelli tarocchi non so... ;-)
 
@Alex

 ha scritto:

ehmmmm... a proposito di... vogliamo parlare del Winsok? ;)
religioso silenzio e'!!!!! religiosissimo!!!! :D


 
 
WS solo chi installa VB lo può usare...
Non mi ricordo nemmeno più cosa sia.... di fatto con W7, ho provato a reinstallare VB6, e si può anche fare... ma non ne ho voglia di fare fatica...
quà in Sicilia fa caldo...
 
@ALex
 

> quà in Sicilia fa caldo...
 
So' so'... Salvix mi ha "upgradato" a riguardo... ;)


Caspita, non si può nascondere nulla... ;-)
 
Beh purtroppo oggi finisce la bellissima esperienza in terra sicula.
 
Peraltro, se mi legge mi insulta, non sono nemmeno riuscito ad andare a trovare CD... in 2 mesi di permanenza.
 
Vabbè..... ma l'ho minacciato che il prossimoa anno, visto che dovrei fare le ferie, lo catturo...
 
@Alex

 ha scritto nel messaggio 
news:32d999aa-cc8b-4853...@googlegroups.com...
Caspita, non si pu� nascondere nulla... ;-)
 
Beh purtroppo oggi finisce la bellissima esperienza in terra sicula.
 
Peraltro, se mi legge mi insulta, non sono nemmeno riuscito ad andare a 
trovare CD... in 2 mesi di permanenza.
 
per forza! lavoravi 18 ore al giorno!!
 
Vabb�..... ma l'ho minacciato che il prossimoa anno, visto che dovrei fare 
le ferie, lo catturo...
 
seeeee.....campa cavallo che l'erba cresce
 
...e dire che avevo previsto un piano "B"...dividere la distanza...
 
vabb�, sono un inguaribile ottimista, voglio sperare ... :D
ciao Alex
 
Daniele 
 
 

Eheheheh.... hai abboccato subito... ;-)
 
Ma tu proprio a 300Km da TP dovevi abitare....??????
 
Ragazzaccio, vedi che Salvino avendo deciso di abitare vicino a TP siamo riusciti a vederci...!!!
 
Scherzi a parte, l'idea delle ferie il prossimo anno ad oggi è abbastanza consolidata, devo trovare solo un modo economico per poi viaggiare il meno possibile perchè sai che altrimenti da Casa alla Sicilia a me serve una settimana di viaggio per l'andata ed una per il ritorno...... e questo è il solito problema...!!!!
 
Ne riparliamo in primavera, anche sperando si sistemino questioni lavorative per la sig.ra...
 
Ti saluata anche B in ogni caso, lei pensa che si è arrabbiata per molto meno... non le ho mai portato un cannolo a casa...(fosse stato inverno magari..)
 
Ciao
un salutone a casa.
 
Alex