Riposizionamento su pagina della maschera precedente

di il
4 risposte

Riposizionamento su pagina della maschera precedente

Buongiorno a tutti, ho un problema di questo tipo. In una maschera di visualizzazione movimenti con più pagine, posso selezionare un movimento , ad esempio , della terza pagina. Selezionando apro una form che mi permette la modifica dei dati. Quando chiudo la form di modifica vorrei poter tornare alla pagina dalla quale avevo selezionato il movimento e non dalla prima pagina. il codice che ho scritto è il seguente:

Private Sub BT_OK_Click()
Dim SQLM As String
Set miodb = DBEngine.Workspaces(0).Databases(0)
SQLM = "select CORRISPETTIVI.* from CORRISPETTIVI where corrispettivi.ID = " & Me.ID & ""
Set fi = miodb.OpenRecordset(SQLM)
fi.Edit
fi.F1 = Mid$(Me.DTMOV, 1, 2) & Mid$(Me.DTMOV, 4, 2) & Mid$(Me.DTMOV, 7, 4)
fi.F3 = Me.IMP
fi.F4 = Me.IVA
fi.F5 = Me.TOT
fi.F6 = Me.ALI
fi.Update
DoCmd.Close acForm, Forms.M_MODIFICA.Name
Form_M_ESTRATTI.Requery

End Sub

Grazie in anticipo a tutti ;) Spero di aver espresso chiaramente il problema. 

4 Risposte

  • Re: Riposizionamento su pagina della maschera precedente

    Ciao,

    la requery, ovviamente aggiornando il recordset, ti riporta al primo record e quindi alla prima pagina  

    dovresti salvare l'ID record per il quale hai eseguito la tua operazione e in fase di requery lo vai a ricercare.

    Potresti provare una cosa di questo tipo:  poniamo di aver salvato il record corrente in IDCurrent ...

    	With Forms!M_ESTRATTI
            .Requery
            .Recordset.FindFirst "ID=" & IDCurrent
        End With
  • Re: Riposizionamento su pagina della maschera precedente

    01/03/2025 - By65Franco ha scritto:

    Ciao,

    la requery, ovviamente aggiornando il recordset, ti riporta al primo record e quindi alla prima pagina  

    dovresti salvare l'ID record per il quale hai eseguito la tua operazione e in fase di requery lo vai a ricercare.

    Potresti provare una cosa di questo tipo:  poniamo di aver salvato il record corrente in IDCurrent ...

    	With Forms!M_ESTRATTI
            .Requery
            .Recordset.FindFirst "ID=" & IDCurrent
        End With
    Ti ringrazio. Ho risolto in questo modo:  nella form di modifica mi riporto l'id record e poi riapro la prima form da quel punto nel seguente modo:
    
    Private Sub BT_OK_Click()
    Dim SQLM As String
    Set miodb = DBEngine.Workspaces(0).Databases(0)
    SQLM = "select CORRISPETTIVI.* from CORRISPETTIVI where corrispettivi.ID = " & Me.ID & ""
    Set fi = miodb.OpenRecordset(SQLM)
    fi.Edit
    fi.F1 = Mid$(Me.DTMOV, 1, 2) & Mid$(Me.DTMOV, 4, 2) & Mid$(Me.DTMOV, 7, 4)
    fi.F3 = Me.IMP
    fi.F4 = Me.IVA
    fi.F5 = Me.TOT
    fi.F6 = Me.ALI
    
    fi.Update
    
    Numrecord = Me.nrec
    DoCmd.Close acForm, Forms.M_MODIFICA.Name
    DoCmd.Close acForm, Forms.M_ESTRATTI.Name
    DoCmd.OpenForm "M_ESTRATTI", acNormal
    DoCmd.GoToRecord acDataForm, "M_ESTRATTI", acGoTo, Numrecord
    
    End Sub
    
  • Re: Riposizionamento su pagina della maschera precedente

    Hmmmm,  fai prima con :

    Private Sub BT_OK_Click()
    	Dim SQLM As String
    	Set miodb = DBEngine.Workspaces(0).Databases(0)
    	SQLM = "select CORRISPETTIVI.* from CORRISPETTIVI where corrispettivi.ID = " & Me.ID & ""
    	Set fi = miodb.OpenRecordset(SQLM)
    	fi.Edit
    	fi.F1 = Mid$(Me.DTMOV, 1, 2) & Mid$(Me.DTMOV, 4, 2) & Mid$(Me.DTMOV, 7, 4)
    	fi.F3 = Me.IMP
    	fi.F4 = Me.IVA
    	fi.F5 = Me.TOT
    	fi.F6 = Me.ALI
    
    	fi.Update
    
    	With Forms!M_ESTRATTI
    		.Requery
        	.Recordset.FindFirst "ID=" & Me.ID
    	End With
    End Sub	

    [Nota]
    ovviamente se la form elimina il record, allora devi solo fare la requery

  • Re: Riposizionamento su pagina della maschera precedente

    È vero ! Grazie !:)

Devi accedere o registrarti per scrivere nel forum
4 risposte