Condividi tramite

L'istruzione SQL inserita nel codice VBA permette di ricercare una stringa anche all'interno di una parola (es. "olli" ricerca tutte le parole che contengono "olli" es. Polli, Pollivendolo etc.).

Anonimo
2010-11-30T16:31:46+00:00

La combobox con il codice sottoriportato in Access 2003 funziona perfettamente in Access 2007 / 2010 si comporta in maniera non corretta (non effettua la corretta selezione):

Me!IdArticolo.RowSource = "select idArticolo, Articolo, UM from qryArticoli where Articolo like '" & "*" & stCD & "*' order by Articolo"

Codice VBA:

Dim iTastoP As Integer

Private Sub IdArticolo_Change()

Dim stCD As String

    stCD = Me!IdArticolo.Text

    Me.IdArticolo.Dropdown

    If iTastoP = 38 Or iTastoP = 40 Then

        Exit Sub

        Else

            Me.IdArticolo.Dropdown

            Me!IdArticolo.RowSource = "select idArticolo, Articolo, UM from qryArticoli where Articolo like '" & "*" & stCD & "*' order by Articolo"

            Me.IdArticolo.Dropdown

        End If

End Sub

Private Sub IdArticolo_Enter()

stCD = ""

End Sub

Private Sub IdArticolo_GotFocus()

    DoCmd.Requery "idarticolo"

    Me!IdArticolo.RowSource = "select idArticolo, Articolo, UM from qryArticoli where Articolo like '" & "*" & stCD & "*' order by Articolo"

End Sub

Private Sub idarticolo_KeyDown(KeyCode As Integer, Shift As Integer)

    iTastoP = KeyCode

End Sub

Microsoft 365 e Office | Accesso | 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

  1. Anonimo
    2010-12-02T13:15:05+00:00

    Ciao Alessandro,

    il problema che si verifica è dovuto al mancato refresh della lista del dropdown della combo.

    Se ci fai caso, seguendo le indicazioni che ci hai dato, quando inserisci il secondo record e digiti "olla", mentre ti fa vedere anche gli articoli che non fanno match, se ci sposti il mouse sopra questi "scompaiono".

    Ho modificato il tuo evento "su modifica" della combo in questo modo

    Private Sub IdArticolo_Change()

    Dim stCD As String

        stCD = Me!IdArticolo.Text

        Me.IdArticolo.Dropdown

        If iTastoP = 38 Or iTastoP = 40 Then

            Exit Sub

        Else

                Me.Repaint

                Me.IdArticolo.Dropdown

                Me!IdArticolo.RowSource = "select idArticolo, Articolo, UM from qryArticoli where Articolo like '" & "*" & stCD & "*' order by Articolo"

                Me.IdArticolo.CanGrow = True          'Riga inserita

                Me.IdArticolo.CanShrink = True        'Riga inserita

                Me.IdArticolo.Dropdown

        End If

    End Sub

    Mi sembra funzionare.

    David

    La risposta è stata utile?

    0 commenti Nessun commento

18 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-12-01T10:47:52+00:00

    Scusa Cinzia la domanda estremamente imbarazzante, ma come posso fare a inoltrarti il file?

    Grazie

    Ciao

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-12-01T10:46:08+00:00

    Ciao David,

    ti dovrei allegare un file di Word con il risultato della prova.

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-12-01T09:05:17+00:00

    Ciao Alessandro,

    ho cercato di riprodurre il tuo problema usando Access 2010, ho utilizzato il db di Esenpio Eventi ho creato una maschera con una combobox chiamata Elenco0 ed ho inserito questo codice adattando leggermente il tuo, cambiando sostanzialmente solo i nomi dei campi

    Option Compare Database

    Dim iTastoP As Integer

    Private Sub Elenco0_Change()

    Dim stCD As String

        stCD = Me!Elenco0.Text

        Me.Elenco0.Dropdown

        If iTastoP = 38 Or iTastoP = 40 Then

            Exit Sub

            Else

                Me.Elenco0.Dropdown

                Me!Elenco0.RowSource = "select id, Descrizione from Eventi where Descrizione like '" & "*" & stCD & "*' order by Descrizione"

                Me.Elenco0.Dropdown

            End If

    End Sub

    Private Sub Elenco0_Enter()

    stCD = ""

    End Sub

    Private Sub Elenco0_GotFocus()

        DoCmd.Requery

        Me!Elenco0.RowSource = "select id, Descrizione from Eventi where Descrizione like '" & "*" & stCD & "*' order by Descrizione"

    End Sub

    Private Sub elenco0_KeyDown(KeyCode As Integer, Shift As Integer)

        iTastoP = KeyCode

    End Sub

    A me funziona tutto regolarmente, puoi produrre un piccolo db di esempio che riproduca l'errore?

    Grazie


    Cinzia


    Sito RIO

    Il mio Blog

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2010-11-30T17:10:33+00:00

    Ciao Alessandro,

    prova a modificare l'istruzione relativa alla tua origine dati della combo da

    "select idArticolo, Articolo, UM from qryArticoli where Articolo like '" & "*" & stCD & "*' order by Articolo"

    a

    "select idArticolo, Articolo, UM from qryArticoli where Articolo like '*' & " & stCD & " & '*' order by Articolo"

    David

    La risposta è stata utile?

    0 commenti Nessun commento