Newsgroup: it.comp.appl.access
Titolo: assegnazione a variabile

ciao LaLo,
ho una tabella "DATI" con un campo chiamato "TAG".
Qual'è l'istruzione VB che devo scrivere per assegnare ad una variabile
STRING il valore del campo TAG della tabella DATI ????
dim contenuto as string
string = ??????

 ha scritto nel messaggio
news:H6i27.17557$eB4.6...@news.infostrada.it...

Ciao pac77,
potresti utilizzare la funzione DLookup nella seguente maniera:
Dim Contenuto As String
Contenuto = DLookup("[TAG]", "DATI", <criterio di selezione>)
Dove <criterio di selezione> rappresenta la WHERE dell'istruzione SQL.
Comunque per una spiegazione completa ti consiglio di vedere l'help in
linea.
HTH
LaLo

ciao LaLo,
nella mia tabella DATI è presente una colonna chiamata OGGETTO la quale puo
contenere i seguenti valori ai quali corrispondono diversi report elencati a
destra:
agitatori            -> R_agitatori
centrifughe        -> R_centrifughe
pistone              -> R_pistone
volumetriche      -> R_volumetriche
ho fatto una query parametrica che chiede in ingresso TIPO OGGETTO.
supponendo di dargli la stringa "pistone", la query trova nella tabella DATI
tutti i record che nel campo OGGETTO hanno la stringa "pistone" e li
memorizza in una tabella temporanea DATI_TMP che ha la stessa struttura
della tabella DATI. (e fin qui ci sono !!!)
ora, come faccio a fare in modo che subito dopo la ricerca venga aperto
automaticamente il report corrispondente all'input dato alla query
parametrica (in questo caso l'input è "pistone", quindi devo aprire  il
report R_pistone)
ho provato a fare la seguente macro:
cancella il contenuto della tabella DATI_TMP
chiama la query parametrica ed accoda i dati trovati alla tabella DATI_TMP
apri il report R_agitatori WHERE input = "agitatori"
apri il report R_centrifughe WHERE input ="centrifughe"
....
pero' da l'inconveniente che vengono aperti tutti i report elencati nella
macro di cui sono vuoti tutti tranne quello in cui vengono trovati record !
io voglio che non vengano aperti report vuoti !
spero di essermi spiegato bene !
Mi puoi aiutare per l'ennesima volta !?!?!? :-)
ciao, grazie

 ha scritto nel messaggio
news:Y0l27.378$1u2....@news.infostrada.it...

Invece di utilizzare la macro, scrivi il seguente codice :
    Dim stDocName As String
    stDocName = "R_" & [input]
    DoCmd.OpenReport stDocName, acPreview
Comunque, utilizza un nome diverso da 'input', essendo una parola riservata
potresti avere degli inconvenienti
HTH
LaLo

 > parametrica (in questo caso l'input č "pistone", quindi devo aprire  il

non mi posso vincolare al nome dato in ingresso come parametro della query !
infatti, un secondo tipo di ricerca sara quella del TAG. In questo caso
quindi dovro come al solito accodare i risultati della ricerca nella tabella
DATI_TMP, leggere il contenuto del campo OGGETTO di tale tabella ed aprire
il report corrispondente.
A me servirebbe un codice VB del genere, se si puo fare:
Private Sub cerca_oggetto()
Dim parametro As String
DoCmd.OpenQuery CANC_DATI_TMP, acViewNormal
            'cancella il contenuto della tabella DATI_TMP
DoCmd.OpenQuery ACC_GLOBALE_OGGETTO, acViewNormal
            'richiama la query parametrica con parametro [parametro] che
cerca le corrispondenze
            'nella tabella DATI e le accoda nella tabella DATI_TMP
string= al contenuto del campo OGGETTO della tabella DATI_TMP
if string = "agitatori" then DoCmd.OpenReport R_agitatori, ....
else
if string = "centrifughe" then ........
else
if ....................
End Sub
purtroppo io conosco solo il linguaggio C e non il VB
ciao

 > >
[CUT]

Torno a ripetere che non puoi dichiarare la variabile 'string'; l'istruzione
 string= al contenuto del campo OGGETTO della tabella DATI_TMP
dovresti averla risolta con l'istruzione DLookup, mentre le istruzioni
seguenti dovresti scrivere così:
Select Case <NomeVariabile>
    Case "Agitatori"
        DoCmd.OpenReport "R_agitatori", ...
    Case "Centrifughe"
        DoCmd.OpenReport ...
    ...
    Case Else
        MsgBox "Errore nell'apertura del report"
End Select
Spero di aver centrato il tuo problema.
Bye
LaLo

 ha scritto nel messaggio
news:9iejio$54n$1...@pluto.news.dsi.unimi.it...

la linea VB
parametro = DLookup("[Oggetto]", "T_GLOBALE")
ferma l'esecuzione della funzione se trova NULL.
come si fa ad evitare che si blocchi ?


Come hai letto nell'help, se la funzione DLookup non può ritornare alcun
valore (o perchè la tabella è vuota o perchè il criterio non ammette nessun
record) allora ritorna il valore Null. Per testare questo valore ti occorre
una variabile di tipo variant:
Dim varItem As Variant
varItem = DLookup("[Oggetto]", "T_GLOBALE")
If IsNull(varItem) Then
    <esegui le istruzioni per DLookup con valore Null>
Else
    <esegui le istruzioni per DLookup con un valore di ritorno>
End If
Bye
LaLo

ciao LaLo
Se ho una tabella TMP e da una maschera ho attenuto una stringa memorizzata
in TAG, come faccio a memorizzare la stringa contenuta in TAG nel campo TAG
della tabella TMP ?
io ho provato cosi:
[TMP]![TAG].Value = TAG
ma dice: nome esterno non definito !

 wrote in message
ntU27.5012$2v6.1...@news.infostrada.it...

Tag è una parola riservata, cambia nome al campo!
Antonio