Newsgroup: it.comp.appl.access
Titolo: ciclare su maschera a singolo record da VBA

ho fatto una modifica un maschera a singolo record che all'apertura effettua alcuni calcoli e poi in chiusura aggiorna dei campi.
 
come posso aggiornare i singoli record?
 
pensavo di creare un programma che cicli sui record e apra la maschera singolo record e poi che si chiudesse in automatico
 
... come posso far chiudere in automatico la maschera ed essere sicuro che il calcolo sia fatto?
 
GRAZIE

Non ti basta una Query di Aggiornamento...?
a cosa serve aprire una Maschera...?
 
@Alex
 


hai ragione ma i calcoli sono stati fatti tempo fa sul contenuto di textbox
 
era per evitare di rifare i riferimenti.


Non capisco... solitamente si strutturano funzioni parametriche per non legarsi ad Oggetti di maschere, quindi fatico a comprendere la problematica.
 
In ogni caso di fatto la Chiamata ad una Routine è Sincrona rispetto alla chiusura, quindi in modo sequenziale... chiudi dopo la chiamata.
 
@Alex

 In ogni caso di fatto la Chiamata ad una Routine è Sincrona rispetto alla chiusura, quindi in modo sequenziale... chiudi dopo la chiamata.
 
da una mascehra ho creato una procedura che cicla
 
Sub ciclaSingolaMAschera()
   Dim db As DAO.Database
   Dim rs As DAO.Recordset
   Dim stDocName As String
   Dim stLinkCriteria As String
 
   stDocName = "mSingola"
 
   Set db = CurrentDb
   Set rs = db.OpenRecordset("SELECT * FROM TEST")
   rs.MoveFirst
   Do While Not rs.EOF
      Debug.Print rs!id
 
      stLinkCriteria = "ID = " & rs!id
      DoCmd.OpenForm stDocName, , , stLinkCriteria
 
      rs.MoveNext
   Loop
 
 
End Sub
 
 
 
nella maschera a record singolo ho creato un pulsante Salva e chiudi
 
che richiama
 
Private Sub cmdSalvaChiudi_Click()
On Error GoTo Err_cmdSalvaChiudi_Click
 
 
    DoCmd.RunCommand acCmdSaveRecord
    myCalcola ' 
    mioSalva  ' i dati non associati ai controlli
 
    DoCmd.Close
Exit_cmdSalvaChiudi_Click:
    Exit Sub
 
Err_cmdSalvaChiudi_Click:
    MsgBox Err.Description
    Resume Exit_cmdSalvaChiudi_Click
 
End Sub
 
come faccio una volta aperta la mascehra singola far scatenare l'evento
cmdSalvaChiudi_Click()?
 
ho messo un timer in form_load 
 
 
Private Sub Form_Open(Cancel As Integer)
  Me.TimerInterval = 500
  Call cmdSalvaChiudi_Click
End Sub
 

 End Sub
 
un rilievo SOLO per questa ULTIMISSIMA parte
E pensando che Call cmdSalvaChiudi_Click NON faccia niente
 
invece di
Private Sub cmdSalvaChiudi_Click() 
 
metti
Public Sub cmdSalvaChiudi_Click() 


Ma la Funzione MyCalcola... non puoi scriverla in un Modulo e chiamarla dalla Prima... evitando di aprire INUNTILMENTE quella maschera...?
 
Sub ciclaSingolaMAschera()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim stDocName As String
    Dim stLinkCriteria As String
 
    stDocName = "mSingola"
 
    Set db = CurrentDb
    Set rs = db.OpenRecordset("SELECT * FROM TEST")
    rs.MoveFirst
    Do While Not rs.EOF
       Debug.Print rs!id
 
       myCalcola (passi i parametri)
 
       rs.MoveNext
    Loop   
 
End Sub
 
@Alex


grazie delle dritte
il problema e' che inzialmente avevo creato delle caselle di testo "calcolate" con origine dei dati = a calcoli di altre caselle di testo. col tempo hanno voluto che anche questi venissero salvati perche' il numero dei calcoli con i record rallentavamo moltissimo la query