Newsgroup: it.comp.appl.access
Titolo: VBA elementare: restituzione valore

Scusate la banalità della domanda ma io non ci riesco e non trovo nella
guida in linea la soluzione. Come faccio a farmi restituire il valore
della query "SELECT Max(ID) From Famiglia;" in modo da poterlo usare
come parametro per la openform?
Ho riportato il codice che ho scritto, me lo correggete x favore? 
Mi dice che i tipi non sono corrispondenti ma ID Famiglia è un intero
lungo e temp l'ho dichiarato come tale... Va oltre le mie conoscenze!
Grazie mille
   Dim stDocName As String
   Dim stLinkCriteria As String
   Dim temp As Long   
   temp="SELECT Max(ID) From Famiglia;" 
   stLinkCriteria = "[ID Famiglia]=" & [temp]
   DoCmd.OpenForm stDocName, , , stLinkCriteria
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha
scritto:

perchè prima lo chiami id e dopo id famiglia?
se è l'ultimo apri la maschera visualizzando direttamente l'ulimo id
(aclast)
ciao MAssimiliano
--------------------------------
Inviato via 
http://usenet.libero.it

 ciao MAssimiliano
...a tutto c'è un motivo :-)))
1 )Hanno nomi diversi perchè fanno riferimento a tabelle diverse.
Ho due tabelle in relazione N a N quindi ho una terza tabella di
appoggio.
In questa tabella ho [ID famiglia] e [ID prodotto], ecco perchè i nomi
sono diversi.
2) Non è l'ultimo perchè non sto aprendo la maschera famiglia ma la
maschera della tabella d'appoggio e la voglio filtrare con i soli campi
dell'ultima famiglia inserita.
Sai dirmi dove sbagliavo in quelle cinque righe? Grazie, ciao!


    stLinkCriteria = "[ID Famiglia]=" & [temp]
    Occhio alle quadre!
        stLinkCriteria = "[ID Famiglia]=" & temp
    (Facci sapere se ed eventualmente come hai risolto. Grazie.)
--
Ciao :o)
Maurizio
--------
?SPQR(C)
 X
--------

     (Facci sapere se ed eventualmente come hai risolto. Grazie.)
Purtroppo non ho risolto, mi continua a chiedere di inserire il valore
di temp come se fosse una variabile che non ho dichiarato.
Adesso ho scritto:
"Public Temp As Long"
al di fuori della Private Sub e, all'interno temp=="SELECT Max(ID) From
Famiglia;" ma nulla è cambiato.
Ho trovato altri modi per risolvere il problema (ho messo direttamente
il riferimento ad un altra query ma vorrei capire come si fa a
dichiarare una variabile globale (cioè non Private). Sono certo che mi
servirà in futuro.
Please, datemi una dritta!
Grazie ancora


 Purtroppo non ho risolto,
[...]


 > >         stLinkCriteria = "[ID Famiglia]=" & temp
[...]
    Scusa, continuo ad essere distratto. C'e' qualcosa che non va anche
nel valore che assegni alla variabile stringa di nome "temp".
L'operazione che vuoi fare tu e' usare una sottoquery nella clausola
WHERE. Come se tu scrivessi una query del tipo:
        SELECT ...
        FROM ...
        WHERE [nomecampo] = (SELECT Max([nomecampo] FROM ...)
ed usassi solo la parte WHERE senza la parola WHERE. Ok? Ora, come forse
saprai, le sottoquery devono essere scritte nel testo della query, fra
parentesi tonde e senza il puntevvirgola.
    Quindi:
        temp="(SELECT Max(ID) From Famiglia)"
    (Facci sapere se ed eventualmente come hai risolto. Grazie.)
--


     (Facci sapere se ed eventualmente come hai risolto. Grazie.)
Grande, così ce l'ho (hai) fatta!
Ti posso chiedere ancora una cosa?
Ho una query che uso in due forms diverse per pescare dei valori.
Io ho sempre messo nel campo "Criteri" del generatore la solita riga 
forms!pippo!pluto. In questo caso, volendo evitare di creare due query 
diverse per ogni maschera e, soprattutto, x impare ad usare decentemente
VB, vorrei mettere in quel campo il nome di una variabile (ciccio) che,
nel modulo della maschera, nella private sub Tasto_Click() avrà la sua 
bella assegnazione:   ciccio=Me.tasto
Il problema è che così facendo mi continua a chiedere di inserire il 
valore come se io non l'avessi dichiarata. Mi è venuto il dubbio che,
essendo ciccio dichiarata in una Private Sub, non sia visibile dal di 
fuori e ho provato a mettere Public ciccio as String fuori dalla Public,
il risultato non cambia. A cosa può essere dovuto? Dove sbaglio?


 il risultato non cambia. A cosa può essere dovuto? Dove sbaglio?
[...]
    La tua descrizione, invece che a una query parametrica, somiglia
tanto a cio' che e' possibile ottenere usando la funzione di
aggregazione DLookup: crei la query, senza parametri, poi quando vuoi
il valore di un campo di un certo record:
        ciccio = DLookup( ...
    O no?...
