Evento Click su un record

di Anonimizzato11182 il
10 risposte
Ciao a tutti,
ho realizzato una maschera con relativa sottomaschera, nella sottomaschera ho un elenco di record, ho la necessità di intercettare l'evento click su un record dell'elenco e aprire una maschera che contiene i dettagli di quel record.

mi spiego meglio: nella mia maschera principale ho dei criteri che mi filtrano la sottomaschera, vorrei dare la possibilità all'utente cliccando su uno dei record della sottomaschera di aprire un altra maschera con i dettagli della bolla quindi una volta fatto il doppio click dovrei passare come parametri alla nuova maschera il record sul quale ha spingo l'utente e aprire la nuova maschera.

grazie mille per l'aiuto

10 Risposte

  • La Maschera o Sottomaschera che immagino sia in visualizzazione Continua, espone l'evento CURRENT che sia attiva proprio quando il Record si attiva.
    Puoi usare quello... altimenti devi attivare il DoppioClick sul Corpo.
  • Ok Alex,
    ho provato a usare il doppio click sul corpo ma non funziona, non mi entra mai neanche dentro all evento ho provato a mettere un break point.

    ho provato a mettere evento doppio click dentro ad ogni casella di testo della mia sottomaschera
    esempio ho 4 campi anno, nomero bolla e cliente e dentro all'evento doppio click di ogni funzione avevo pensato di mettere una riga di codice che mi aprisse una maschera passando i parametri ma riesco a reperire solo il valore della casella nella quale ho cliccato e non anche gli altri due valori corrispondenti al record.

    ti faccio un esempio:

    Anno Numero Cliente
    2012 1 io
    2012 2 te

    se clicco sopra al numero due per prendere il valore di quel record faccio me.Numero.text,
    se voglio usare anche il valore del campo cliente corrispondente al record 2 cosa devo scrivere?

    grazie mille per la disponibilità
  • Non si potrebbe mostrare la colonnina del Foglio dati secondario? Se hai la possibilità di mostrarla, l'utente si avvicina al record interessato, clicca sul + e vede aprirsi i dettagli di quel solo record.
  • Se attivi il Doppio Click sulla TextBox(che contiene il 2) si Attiva il RECORD come CORRENTE, quindi devi passare alla Funzione OpenForm il criterio del FILTRO o CONDIZIONE WHERE contenente il campo CHIAVE.

    In sostanza devi aprire una maschera di dettaglio...
    Hai individuato 3 Campo(Anno,Numero, Cliente) quale di questi è la ChiavePrimaria...?
    Usa quella come criterio da passare come parametro(WhereCondition) alla Funzione OPENFORM.

    La funzione è dettagliata nell'Help.
  • Ok alex, è chiaro.
    quello che non riesco a fare è reperire i dati del record corrente.
    mi spiego meglio se clicco sul 2, che non è chiave primaria e la chiave primaria non è visualizzata nella tabella come faccio a passare il campo chiave primaria al mio form?

    non riesco a trovare la proprietà che contiene il valore della mia chiave primaria.

    grazie mille.
  • Se il campo(PK) è nell'origine Record della Maschera/SottoMaschera è accessibile anche se non associato ad un controllo con il riferimento
    
    [NomeCampo]
    tuttavia solitamente si crea un controllo associato alla PK e lo si rende NON VISIBILE in tal modo è più semplice.
  • Si alex infatti ho fatto proprio cosi, l'ho associato a un controllo e l' ho reso invisibile.

    ora però mi si pone un altro quesito:
    all'interno dell'evento current della mia sottomaschera ho scritto questo codice per far si che in automatico mi compili il campo RigaBolla in maniera incrementale.
    il problema è che IDBolla è nullo fino a quando l'utente non compila i primi dati della bolla quindi quando faccio nuovo record mi da errore "necessario oggetto"
    If Form.NewRecord = -1 Then
    If Format(Nz(Left(DMax("[RigaBolla]", "DettaglioBolla", "IDbolla= Forms!Bolle![IDBolla]"), 4), 0) + 1, "0000") Is Null Then
       Me.RigaBolla.Text = 1
    Else
       Me.RigaBolla.Text = Format(Nz(DMax("[RigaBolla]", "DettaglioBolla", "IDbolla= Forms!Bolle![IDBolla]"))) + 1
    End If
    End If
    
    forse il mio errore è a monte ma non so proprio come risolverlo io vorrei solo che ogni volta che viene aggiunto un record nella sottomaschera il campo rigabolla si incrementasse in automatico.

    grazie a tutti
  • Premesso che il NewRecord sarebbe meglio riferirlo all'Oggetto [Me] se sei nella Maschera da gestire...quindi
    
    If Me.NewRecord=True Then
    L'errore potrebbe, ma non ne sono certo, derivare da questo
    
    IDbolla= Forms!Bolle![IDBolla]
    La Form [Bolle] è aperta...? Ovviamente come Form...!!
    Se fosse una SubForm la sintassi non è corretta.
  • La form Bolle è la form principale mentre dettagliobolla è la sottomaschera.

    il mio problema che all'apertura della form principale anche la sottomaschera passa a newrecord=-1 e quando faccio la dmax usando l'id bolla mi da errore perchè ancora idbolla non è stato creato.
  • Ovviamente... ma gli errori si sfruttano e si gestiscono...!
    Intercetta l'errore in base al Numero e predisponi di conseguenza...
Devi accedere o registrarti per scrivere nel forum
10 risposte