Sincronizzare una sottomaschera

di il
63 risposte

63 Risposte - Pagina 2

  • Re: Sincronizzare una sottomaschera

    Prima di tutto siccome pare che la tua dimestichezza sia in fase iniziale... secondo me per darci più la sensazione e di aver capito, faresti meglio a concretizzare esempi con i nomi reali... non sarwsti certamente il primo che scrive NomeControllo e NomeMaschera e poi dice che non funziona... quindi fossi in te, nel non ritenermi esperto, mi porrei in modo meno interpretabile...

    Per l'altro discorso è altrettanto ovvio... devi ragionare oltre che sul caricamento anche sul cambio record... il Refresh poi come il Requery sposta il bookmark al primo record, come dice la guida... quindi devi memorizzare la PK prima di eseguirlo e ripristinarlo dopo...
  • Re: Sincronizzare una sottomaschera

    Cavoli! Cos'è la PK? E come faccio a memorizzarla e a ripristinarla?
    Avrei postato anche lo stamp della struttura della maschera, ma non sono stato capace..
  • Re: Sincronizzare una sottomaschera

    Primary Key... contrariamente a "NomeMaschera" questo è un termine tecnico importante che devi approfondire.
    L'immagine non serve.
  • Re: Sincronizzare una sottomaschera

    Immagino che per pk tu intenda l'ID utente scelto nella sottomaschera, giusto? Beh, quello è memorizzato, ce l'ho anche in una TempVars. Ma per dire alla sottomaschera "rendi attivo quel record" come faccio?
  • Re: Sincronizzare una sottomaschera

    Nella sottomaschera ci sono due campi: ID non visibile e CN (Cognome Nome) visibile. Su click di CN ho messo:

    Dim rstClone As DAO.Recordset
    Dim strCustNo As Integer

    strCustNo = Me!ID
    Set rstClone = Me.RecordsetClone
    rstClone.FindFirst "[ID] = " & strCustNo & ""

    ' ...

    Forms![ATTIVITA].Refresh

    If rstClone.NoMatch Then
    MsgBox "Customer not found."
    Else
    Me.Bookmark = rstClone.Bookmark
    End If


    Ma Access mi dice: "Nessun record corrente" : (
  • Re: Sincronizzare una sottomaschera

    Perché fai il refresh dopo il findfirst...?
  • Re: Sincronizzare una sottomaschera

    Cavoli funziona!!! Eh, perché... perché non avevo capito come funzionasse!
    Ora devo fare in modo che anche le note della maschera B si allineino con il nuovo record.
    Si usa lo stesso metodo? Oppure basta dirgli: go to record xy?
  • Re: Sincronizzare una sottomaschera

    Se volessi usare GotoRecord... che valore passeresti...?
    Chiedo per capire che ragionamento hai fatto.
  • Re: Sincronizzare una sottomaschera

    Eh già, bisognerebbe sapere il n° del record, che non è l'ID dell'utente... quindi non si può fare...
    Allora... potrei andare a vedere che note ha quell'utente nella tabella Anagrafica, copiarle e poi ... no, non si tratta solo di leggere le note su un campo non associato, si tratta di leggere e magari cancellare e riscrivere. Quindi bisognerebbe fare una cosa simile a quella fatta nella sottomaschera?
  • Re: Sincronizzare una sottomaschera

    Ho provato con:

    With Form.ATTIVITA.Form.RecordsetClone
    .FindFirst "ID=" & TempVars!IDUTENTE
    If Not .NoMatch Then
    Form.ATTIVITA.Form.Bookmark = .Bookmark
    End If '
    End With

    inserito nel campo CN della sottomaschera, ma mi dà: "Errore definito dall'applicazione o dall'oggetto...
  • Re: Sincronizzare una sottomaschera

    Il metodo da usare è sempre quello... non so cosa siano tutte quelle tempvar che usi, in modo poco chiaro peraltro... ma devi usare lo stesso codice dell'altra form sostituendo la form...
  • Re: Sincronizzare una sottomaschera

    Beh, quando passo dalla maschera A alla B memorizzo nella TempVars!IDUTENTE l'ID che mi interessa, e così la posso utilizzare come criterio nelle query, nella ricerca del segnalibro ecc. Ma se non è affidabile ed è meglio usare il campo ID basta che me lo dici. Il codice che ho postato è quello che mi hai indicato per il load form della maschera B, che serviva a posizionare lo stato attivo nella sottomaschera. Qui, nel campo della sottomaschera ho sostituito il nome della sottomaschera con quello della maschera, ma il risultato non è un granché...
  • Re: Sincronizzare una sottomaschera

    Cioè ho sostituito il codice:

    With Me.Parrocchiano.Form.RecordsetClone
    .FindFirst "ID=" & TempVars!IDUTENTE ' Anche: .FindFirst "ID=" & Me.ID se nella maschera Attivita c'è il campo ID
    If Not .NoMatch Then
    Me.Parrocchiano.Form.Bookmark = .Bookmark
    End If '
    End With

    con il codice:

    With Form.ATTIVITA.Form.RecordsetClone
    .FindFirst "ID=" & TempVars!IDUTENTE
    If Not .NoMatch Then
    Form.ATTIVITA.Form.Bookmark = .Bookmark
    End If
    End With

    dove ATTIVITA è la maschera B. Però già al with mi dà "Errore definito dall'applicazione o dall'oggetto"

    Forse non lo devo mettere al click sul campo della sottomaschera, ma al Corrente della maschera ATTIVITA?
  • Re: Sincronizzare una sottomaschera

    Attività non è sempre subform...?
    Se Attivita è maschrra B a cosa serve quel codice...?
  • Re: Sincronizzare una sottomaschera

    Attivita è la maschera B che contiene le due sottomaschere, che ora sono sincronizzate, e il campo "note" che rimane fermo
Devi accedere o registrarti per scrivere nel forum
63 risposte