Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Impossibile trovare il metodo o il membro dei dati .SetFocus

438 views
Skip to first unread message

..:: GiGhEn ::..

unread,
Feb 18, 2013, 5:18:39 AM2/18/13
to
Salve a tutti,
ho un problema su questo codice:
ho creato una maschera con origine dati da una query interna,
sulla maschera ho creato 2 caselle combinate e si chiamano combo1 e combo2.
Sulla combo1 come origine dati ho creato una query interna solo con il campo Cognome con la formula di raggruppamento, e su evento dopo aggiornamento ho iserito questo codice:

Private Sub combo1_AfterUpdate()
If Not IsNull(Me.combo1) Then
Me.combo2.Requery
DoCmd.GoToControl "Combo2"
Me.combo2.Dropdown
End If
End Sub

sulla combo2 ho creato una query interna con tutti i campi della tabella e sul cambo cognome in "criteri:" ho inserito questo codice:

[Forms]![Dettaglio Scheda]![Combo1]

su evento dopo aggiornamento ho inserito quest'altro codice:

Private Sub combo2_AfterUpdate()
If IsNull(Me.combo2.Column(2)) Then
If MsgBox("Il nominativo ricercato non" & _
"è in elenco,vuoi aggiungere la sua scheda" & _
" Anagrafica ?", vbYesNo) = vbYes Then
DoCmd.GoToRecord , , acNewRec
Me.Cognome = Me.combo1
Me.Nome = Me.combo2
Me.combo1 = Null
Me.combo2 = Null
Me.CompCri.SetFocus
Else
Me.combo2 = Null
End If
Else
DoCmd.ApplyFilter , "ID =" & Me.combo2.Column(2)
DoCmd.GoToControl "cognome"
End If
End Sub

quando faccio la prova scrivendo sulla combo1 il cognome, sulla combo2 mi escono tutti i nomi che portano quel cognome, ma quando poi clicco su uno dei nomi che mi ha trovato mi viene fuori l'editor di visual basic sul codice: Private Sub combo2_AfterUpdate() evidenziato in giallo e mi compare una finestra con la scritta:

"Impossibile trovare il metodo o il membro dei dati .SetFocus"

con evidenziato in blu la parola .SetFocus
ho provato a cambiare "me.CompCri.SetFocus" con gli altri campi della query ma non risco a capire dov'e' l'errore.

Vi sdarei grato se potreste aiutarmi a risolverlo sono giorni che ci sto perdendo la testa.

Grazie

Karl Donaubauer

unread,
Feb 18, 2013, 9:37:08 AM2/18/13
to
..:: GiGhEn ::.. wrote:
> ...
> Private Sub combo2_AfterUpdate()
> ...
> Me.CompCri.SetFocus
> ...
> ma quando poi
> clicco su uno dei nomi che mi ha trovato mi viene fuori l'editor di
> visual basic sul codice: Private Sub combo2_AfterUpdate() evidenziato
> in giallo e mi compare una finestra con la scritta:
>
> "Impossibile trovare il metodo o il membro dei dati .SetFocus"
>
> con evidenziato in blu la parola .SetFocus
> ho provato a cambiare "me.CompCri.SetFocus" con gli altri campi della
> query ma non risco a capire dov'e' l'errore.

Cosa esattamente � "CompCri"? Non � chiaro perch� scrivi
> gli altri campi della query

Se (anche) si tratta di un controllo sulla stessa maschera prova con:

Me!CompCri.SetFocus

--
Ciao
Karl
*********
Access FAQ: http://www.donkarl.com/it


..:: GiGhEn ::..

unread,
Feb 19, 2013, 4:40:55 AM2/19/13
to
Faccio così ti inserisco la tabella intera:

Nome Tabella: Schede
Campo: ID (chiave primaria contatore)
Campo: DataRegScheda (data/Ora)
Campo: Cognome (testo)
Campo: Nome (testo)
Campo: CompCri (testo)
Campo: GruppoDi (testo)
Campo: Ufficio (testo)
Campo: Note (memo)

Nome Maschera: Dettaglio scheda

Nella Maschera oltre ad esserci tutti i campi della tabella ci sono anche due caselle combinate chiamate combo1 e combo2 senza origine controllo, con origine riga ad una query interna tutte e due le combo.

Nella combo1 ho questa query:

SELECT Schede.COGNOME
FROM Schede
GROUP BY Schede.COGNOME

Nella combo2 questa query:

SELECT Schede.Nome, Schede.CompCri, Schede.DataRegScheda, Schede.Cognome, Schede.ID, Schede.Ufficio, Schede.GruppoDi, Schede.Note, *
FROM Schede
WHERE (((Schede.Cognome)=[Forms]![Dettaglio Scheda]![Combo1]))
ORDER BY Schede.Nome, Schede.Cognome;
ORDER BY Schede.COGNOME;

Sulla combo1 in evento dopo aggiornamento
codice VB:

Private Sub combo1_AfterUpdate()
If Not IsNull(Me.combo1) Then
Me.combo2.Requery
DoCmd.GoToControl "Combo2"
Me.combo2.Dropdown
End If
End Sub


Sulla combo2 in evento dopo aggiornamento
codice VB:

Private Sub combo2_AfterUpdate()
If IsNull(Me.combo2.Column(2)) Then
If MsgBox("Il nominativo ricercato non" & _
"è in elenco,vuoi aggiungere la sua scheda" & _
" Anagrafica ?", vbYesNo) = vbYes Then
DoCmd.GoToRecord , , acNewRec
Me.Cognome = Me.combo1
Me.Nome = Me.combo2
Me.combo1 = Null
Me.combo2 = Null
Me.CompCri.SetFocus
Else
Me.combo2 = Null
End If
Else
DoCmd.ApplyFilter , "ID =" & Me.combo2.Column(2)
DoCmd.GoToControl "cognome"
End If
End Sub

Nele formato in coleonne ci sono 8 colonne da visualizzare.

Il tutto mi funziona benissimo solo che quando vado a scrivere il cognome sulla combo1 dopo l'invio si apre la combo2 (nome) mi visualizza tutti i nomi con ed altri dati di quel cognome, quando pero' clicco su un nome qualsiasi che e' in elenco oltre a riportarmi tutti i dati nei rispettivi campi ed è quello che voglio in effetti, dopo aver eseguito il comando egregiamente mi esce l'errore:

"Impossibile trovare il metodo o il membro dei dati .SetFocus"

Ho cambiato anche come mi hai consigliato tu ma non mi riporta i dati nei campi mi porta solo il cursore sul primo campo (cognome) come nuovo record cosa che a me non interessa.
Grazie del tuo aiuto e della tua pazienza nel seguirmi.

..:: GiGhEn ::..

unread,
Feb 19, 2013, 5:27:26 AM2/19/13
to
Il giorno lunedì 18 febbraio 2013 11:18:39 UTC+1, ..:: GiGhEn ::.. ha scritto:

..:: GiGhEn ::..

unread,
Feb 19, 2013, 5:27:46 AM2/19/13
to

..:: GiGhEn ::..

unread,
Feb 19, 2013, 5:28:35 AM2/19/13
to
0 new messages