Newsgroup: it.comp.appl.access
Titolo: ComboRicerca

Ciao, ho un bel problema...
In una form ho due combo, una (ComboCodCliente) con il codice cliente e
l'altra (ComboRicerca) con la Ragione Sociale del cliente.
Tutte e due le combo prendono i dati da 2 query che si basano sul recordset
"Anagrafica Clienti" e l'origine della form è sempre lo stesso recordset.
In pratica l'utente entra in questa form e deve poter ricercare i dati di un
cliente inserendo o direttamente il codice (utilizzando ComboCodCliente)
oppure immettendo la ragione sociale (utilizzando ComboRicerca).
Per fare ciò ho inserito nella form queste due combo e per ognuna ho scritto
del codice, in particolare:
Private Sub ComboCodCliente_AfterUpdate()
    'Trova il record corrispondente a ComboCodCliente
    Dim rs As Object
    Set rs = Me.RecordsetClone
    rs.FindFirst "[CDCLI] = '" & Me![ComboCodCliente] & "'"
    Me.Bookmark = rs.Bookmark
    'All'aggiornamento del Codice Cliente la ComboRicerca si sincronizza
    Me.ComboRicerca = Me.ComboCodCliente
    'Ristabilisce il colore nero per tutti i campi relativi ai clienti in
modo da
    'poterli visualizzare correttamente, tranne se il ComboCodCliente è "" o
Null
    If Me.ComboCodCliente = "" Or IsNull(Me.ComboCodCliente) Then
        Me!ComboRicerca = ""
        Me!RagioneSociale.ForeColor = -
2147483633
        Me!RagioneSociale2.ForeColor = -
2147483633
        Me!Indirizzo.ForeColor = -
2147483633
        Me!Localita.ForeColor = -
2147483633
        Me!cap.ForeColor = -
2147483633
        Me!provincia.ForeColor = -
2147483633
        Me!CodFiscale.ForeColor = -
2147483633
        Me!PartitaIva.ForeColor = -
2147483633
        Me!Listino.ForeColor = -
2147483633
        Me!Rappresentante.ForeColor = -
2147483633
    Else
    Me!RagioneSociale.ForeColor = 0
    Me!RagioneSociale2.ForeColor = 0
    Me!Indirizzo.ForeColor = 0
    Me!Localita.ForeColor = 0
    Me!cap.ForeColor = 0
    Me!provincia.ForeColor = 0
    Me!CodFiscale.ForeColor = 0
    Me!PartitaIva.ForeColor = 0
    Me!Listino.ForeColor = 0
    Me!Rappresentante.ForeColor = 0
    End If
End Sub
Private Sub ComboRicerca_AfterUpdate()
    If Me.[ComboRicerca] <> "" Then
       Me.[ComboCodCliente] = Me.[ComboRicerca]
       Me.ComboCodCliente.Requery
        'Trova il record corrispondente a ComboCodCliente
        Dim rs As Object
        Set rs = Me.RecordsetClone
        rs.FindFirst "[CDCLI] = '" & Me![ComboCodCliente] & "'"
        Me.Bookmark = rs.Bookmark
        'Ristabilisce il colore nero per tutti i campi relativi ai clienti
in modo da
        'poterli visualizzare correttamente
        Me!RagioneSociale.ForeColor = 0
        Me!RagioneSociale2.ForeColor = 0
        Me!Indirizzo.ForeColor = 0
        Me!Localita.ForeColor = 0
        Me!cap.ForeColor = 0
        Me!provincia.ForeColor = 0
        Me!CodFiscale.ForeColor = 0
        Me!PartitaIva.ForeColor = 0
        Me!Listino.ForeColor = 0
        Me!Rappresentante.ForeColor = 0
    Else
    Exit Sub
    End If
End Sub
Come vedete ho utilizzato il recordsetclone su tutte e due le combo...
Comunque, il fatto è che selezionando direttamente il codice, le righe
aggiuntive sulla form relative ai dati del cliente vengono correttamente
riempite.
Se, invece si seleziona una Ragione sociale, udite udite, viene selezionato
il giusto codice cliente (sulla ComboCodCliente), ma i campi aggiuntivi dei
dati cliente vengono riempiti con un cliente diverso!
Praticamente io seleziono il cliente TOPOLINO sulla ComboRicerca e sui campi
dei dati cliente mi esce fuori PLUTO!!!
Poi ricliccando di nuovo sulla ComboRicerca gli stessi campi mi danno
correttamente TOPOLINO.
Cioè, la prima volta che seleziono una Ragione Sociale sulla ComboRicerca mi
esce fuori PLUTO, la seconda TOPOLINO!?!?!
Ma da cosa cavolo dipende!? Può darsi che ho pasticciato mettendo due volte
il codice del recordsetclone?
Vi prego aiutatemi!
ciao
Donato
ark...@tin.it

        Me.ComboCodCliente.Requery  <-----------------------------------

e' scritto li.
cosa pensi che succede quando fai la requery su combocodcliente
(evidenziata)
in ComboRicerca_AfterUpdate().
Si riposiziona sul primo record. Togli la requery.
E poi
 Me!RagioneSociale.ForeColor = -
2147483633
 questo e' bianco?
cosi' non sarebbe piu chiaro Me!RagioneSociale.ForeColor = &HFFFFFF
                                                             R G B
o rgbcolor(255,255,255) 
--
a.cara
togli qualcosa dall'email