Aprire record specifico di una maschera cliccando sul valore corrispondente da una casella di riepilogouna casella combinatao /Access xp

Anonimo
2012-08-17T10:27:30+00:00

Ho letto le risposte ad analoga domanda, ma non riesco a completare l'operazione.

Ho una maschera (MInizio) con una casella di riepilogo (casellaRiepilogo) che prende i valori ( IDVolontari, Cognome,Nome, DataNascita,Sesso) da una tabella (TVolontari). Ho messo del codice per l'evento afterUpdate per aprire la maschera(MVolontari) in corrispondenza del record selezionato nella casella di riepilogo. Dal momento che ci sono Cognomi uguali (ma nomi diversi) ho scelto per l'apertura della maschera l'IDVolontari che è univoco.

Non funziona.

Ho provato con una casella combinata(casella combinata11) che attiva una macro(Macro1) per aprire la maschera che si apre, ma su un nuovo record e non su quello con l'ID corrispondente al record selezionato.

Codice per aprire la maschera in corrispondenza del record selezionato nella casella di riepilogo:

Private Sub CasellaRiepilogo_Click()

Dim DB As Database

Dim myrst As Recordset

Dim tab1 As Recordset

Dim NN As Integer, i As Integer

Dim param As Variant

param = Casellariepilogo

 Set DB = CurrentDb

Set tab1 = DB.OpenRecordset("TVolontari")

Set myrst = tab1.OpenRecordset

myrst.MoveFirst

NN = tab1.RecordCount

For i = 1 To NN

If InStr(1, myrst.Fields(0), param) > 0 Then

DoCmd.OpenForm "MVolontari", , , " [IDVolontari] = '" & Casellariepilogo & "'", acFormEdit

End If

myrst.MoveNext

Next i

End Sub


Codice per aprire la maschera MVolontari dopo selezione di un record su casella combinata

Private Sub CasellaCombinata11_AfterUpdate()

Dim param As Variant

param = CasellaCombinata11

DoCmd.RunMacro "Macro1"

End Sub

 ---------------------------------------------------------------

Condizione WHERE di Macro1

[Maschere]![MVolontari]![IDVolontari]=[Maschere]![MInizio]![Casellacombinata11]

 Posso anche inviare il file mdb completo?

Grazie per una risposta

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2012-08-17T16:57:57+00:00

Ciao Guidogug,

cambierei questa così:

Private Sub CasellaCombinata11_AfterUpdate()

 DoCmd.OpenForm "MVolontari", , , " [IDVolontari] = " & CasellaCombinata11 , acFormEdit

End Sub

che deve funzionare a patto che la colonna associata di casellacombinata11 sia quella corrispondente ad IDVolontari

La risposta è stata utile?

0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2012-08-18T08:09:50+00:00

    OK. Funziona.

    Come al solito le soluzioni semplici sono le più efficaci. Forse era un problema di sintassi della WHERE ? adesso, per curiosità, proverò la mia sub (complicata) con la nuova sintassi. In ogni caso credo che avrei dovuto tener conto che il focus era già sul record selezionato e non è quindi necessario fare la ricerca di corrispondenza (con If  instr(.......).

    Grazie mille anche per la rapidità.

    guido

    La risposta è stata utile?

    0 commenti Nessun commento