Newsgroup: it.comp.appl.access
Titolo: Forzare SAVE...!

E' sicuramente una domanda stupida, ma non mi viene.
Situazione:
Form modalità Singola assciata a Tabella MonoCampo e MonoRecord.
Controllo Associato Non editabile, lo modifico io 
via codice.
Il fatto è che se non ciudo la form nella tabella
il campo non viene aggiornato, non posso fare un Move
poichè sono in Monorecord, a meno di fare un New+Undo
forse funziona.
Ho provato ad inserire il codice dell'Autocomposizione
sul SalvRecord, ma un se move......!!!!!
Sostanzialmente devo salvare il dato poichè è la condizione per
l'aperura di una Form_Dipendente, e se non aggiorno non
va correttamente.
Grazie.
@Alex.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:0f4fb57e4883f6b6a5...@mygate.mailgate.org...

Hai provato con:
'-------------
If Me.Dirty then
    Me.refresh
End if
Ciao.
--
Sergio MAZZA

 Sergio MAZZA
Macchè non gli frega nulla.....!
Per quelle che sapevo le ho provate tutte......................
@Alex.


Docmd.runcommand accmdsaverecord?
MAssimiliano

 MAssimiliano
Già fatto....PIC INDOLOR....!
Il fatto è che eseguo il tutto da una Routine in un Modulo e mi ritorna
un'errore:
Err.Number=2046
Err.Description="Comando o azione 'Salva Record' non disponibile.
Se metto un Button nella Form funziona, sia con il Runcommand che con
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Ho provato pure a forzare il Focus sulla Form, maforse non avendo un
controllo
che può prendere lo stato attivo non gliela fa gliela.....!!!!!!
Se è questo mi AUTOPUNISCO....!
@Alex.


Così per esempio?
(nel modulo)
Sub registra(xForm As String)
Forms(xForm).Refresh
End Sub
(nella form)
Private Sub Form_Close()
If Me.Dirty Then
    registra Me.Name
End If
End Sub
Ciao.
--
Sergio MAZZA


Se la chiudo salva tutto e funziona, il fatto č che
non la posso chiudere quindi non ho Eventi, ma ho fatto cosě:
------ Nel Modulo -----
Public Function(strCode as string)
    Forms!MiaForm!MioControllo=strCode
    Forms!MiaForm.SaveRec
End Function
----- Nella Form -------
Public Function SaveRec()
    Docmd.Runcommand accmdsaverecord
End Function
Sempre il medesimo errore.......!
Tra le altre cose leggendo l'HELP se le modifiche dei
controlli viene eseguita da VBA non genera molti EVENTI
legati come Dirty o altri........!
@Alex.

 ha scritto nel messaggio
news:0f4fb57e4883f6b6a5...@mygate.mailgate.org...

Perchè invece di schiaffare il dato nella maschera non lo scrivi direttamente nella
tabella e dopo fai un requery della maschera? Ad es:
Dim Rs As DAO.Recordset
Set Rs = CurrentDb.OpenRecordset("TuaTabella", dbOpenTable)
With Rs
    .Edit
        !TuoCampo = "NuovoValore"
    .Update
End With
Forms("TuaMaschera").Requery
Set Rs = Nothing
Ciao
Galliano.


Avevo capito male, pensavo che non ti salvava in chiusura.
Ma non puoi passare il nome della form alla funzione?
Non riesco a capire quando (su quale evento) esegui la function...
Ciao.
--
Sergio MAZZA

Alessandro Baraldi ha scritto:

Essendo la tabella così semplice potresti usare una form non associata,
leggere il valore del campo all'apertura con dlookup e salvarlo quando
vuoi con un currentdb.execute "UPDATE ...".
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Galliano.
Verissimo, ma è meno pratico.
In ogni caso per ora visto che non trovo soluzione
sto usando un UPDATE da SQL, solo 1 riga di codice..!


 Namor
Ciao Namor, in effetti ora sono costretto a lavorare cosě,
ma avrei preferito lo standard.
La Form in ogni caso la lascio associata, poichč dopo 
l'UPDATE mi basta il Requery....!
Ciao.


 Sergio MAZZA
Forse mi sono spiegato male io, che è più facile....!
Non ho nessun evento, dalla Main apro una Form in modalità
Dialog ed attendo una selezione, in seguito alla selezione
modifico il Contenuto del Controllo associato, ma se non 
chiudo e riapro la modifica è effettiva solo sul controllo
ma non sulla Tabella.
Anche se passo il Nome della Form non cambia nulla, perchè
non è la sintassi d'esecuzione, ma il metodo, qualunque sia
applicato alla Form.
Il modo, scomodo, che sto usando è un UPDATE(SQL) e REQUERY.
Ciao.



Che era proprio quello che ti stavo proponendo...
Ciao.
--
Sergio MAZZA

 @Alex.
Lo "standard" non fa nient'altro che quel lavoro lě, solo che solitamente
non si fa a mano perchč i campi sono tanti e diventa complesso scrivere
l'SQL delle query e il codice che legge i valori all'apertura della form.
Nel tuo caso, avendo un unico controllo, lo puoi fare tranquillamente. La
form non associata sarŕ piů veloce ad aprirsi e un me.controllo="nuovo
valore" sarŕ piů veloce di un me.requery.
Comunque ho anche fatto una prova con una maschera come la tua, e dopo
aver assegnato da vba il nuovo valore al controllo, con un 
DoCmd.RunCommand acCmdSaveRecord
me lo salva correttamente in tabella, senza bisogno di chiudere la
maschera.
Ciao.


 Namor
Quì invece non capisco perchè da me non vada....!
Nel frattempo che indago lascio stare il tutto, ma devo andarcene fuori.
Grazie.
