Newsgroup: it.comp.appl.access
Titolo: [dummy] Problemino VBA

Salve a tutti....
Credo che il mio sia un problema da niente.... perň io non ho capito come
risolverlo e per di piů non ho trovato sulla guida di Access2000 nessun
aiuto in merito.
Allora, io mi sono creato una maschera che ha un bottone che esegue alcuni
calcoli e che poi dovrebbe scrivere i risultati su alcuni campi della
maschera sia su un altra tabella per poterli riutilizzare in seguito.
Il problema č che, se mi riesce di mettere i dati nella maschera ( e quindi
nella tabella) corrente, non conosco la sintassi per poterli scrivere anche
sull'altra tabella.
Cioč... se nella maschera (tabella) corrente io uso la sintassi
me!nomecampo.value=myval
non riesco a scrivere il valore myval sul campo "pippo" della tabella
"pluto"
Spero di essere stato sufficientemente chiaro.... e di avere un aiutino
grazie mirko

 ha scritto nel messaggio
news:%Oxm5.76877$dF5.1...@news.infostrada.it...

Per avere un aiutino bisogna che ci racconti come sono fra di loro in
relazione la prima tabella con la tabella "pluto".
Roberto
Roberto

 ha scritto nel messaggio
news:oXAm5.78191$dF5.1...@news.infostrada.it...

A fronte dell'evento "Su clic" del Pulsante di comando genera il seguente
codice VBA:
Dim dbMirko3d As Database
Dim rcdMirko3d As Recordset
Set dbMirko3d = CurrentDb()
Set rcdMirko3d = dbMirko3d.OpenRecordset("pluto")
rcdMirko3d.Edit
rcdMirko3d![pippo] = Me![NomeCampo]
rcdMirko3d.Update
rcdMirko3d.Close
Sono sicuro che funzionerebbe in Access 97; in A2000 mi sembra che devi
lavorare in DAO.
Roberto

Nell'attesa di una risposta dal newsgroup ho smanettato un pochettino....in
vba.
Alla fine ci sono riuscito, però attraverso un artificio.
Praticamente questo è il codice:
Private Sub Comando58_Click()
DoCmd.OpenForm "GN_generale", , , , , acHidden    'apro finestra dove è il
record che voglio modificare'
Dim cur_year As String
Dim fat_year As String
Dim fat_num As String
cur_year = Year(Date)
fat_year = DLookup("[GN_ft_anno]", "GN_generale")
fat_num = DLookup("[GN_ft_num]", "GN_generale")
If cur_year = fat_year Then
fat_num = fat_num + 1
Forms![GN_generale]![GN_ft_num].Value = fat_num
Me.FT_num.Value = fat_num
Me.FT_anno.Value = cur_year
Else
Forms![GN_generale]![GN_ft_anno] = cur_year
Me.FT_anno.Value = cur_year
fat_num = 1
Forms![GN_generale]![GN_ft_num].Value = fat_num
Me.FT_num.Value = fat_num
End If
DoCmd.Close acForm, "GN_generale"     'richiudo la finestra'
End Sub
Ora, tutto funziona bene, però mi chiedo.... è giusto che io debba aprire
una nuova maschera (anche se nascosta) per modificare un record.
Per la cronaca, se non faccio così, il database non riesce a trovare il
campo specificato
PS. Se pensate che il mio codice sia da inesperto..... avete ragione, è
proprio così :-)
Ciao a tutti


 ha scritto nel messaggio
news:FCSm5.82633$dF5.1...@news.infostrada.it...

Come hai visto, con la soluzione che ti ho postato alle 12:21, non è
necessario aprire una maschera; però se hai trovato una soluzione che
funziona ed è efficace, che problema c'è?
Roberto





Ciao, perdona il mio intervento, il tuo problema è 
egregiamente risolto da Roberto (con singolare modestia, ma mostra di conoscere 
bene le pecularetà della programmazione).


A mio modesto parere, però non hai motivo di 
appesantire così una semplice operazione che puoi standardizzare molto 
semplicemente.


Secondo me Roberto, come detto prima, ha risolto il 
problema che tu lamentavi, ma non il problema .


Non si gestisce così un database, a prescindere 
dall'interfaccia che utilizzi (VBA o altro per farmi capire).


Stai sprecando routine quando non ne hai 
bisogno. Appesantisci la struttura.


Ora non mi dilungo oltre, se vuoi delucidazioni 
fammelo sapere e sarò lieto di proporti una struttura più consona.


Ciao e grazie a Roberto per l'aiuto 
offerto.