COMBOBOX SCORREVOLE

di
Anonimizzato15263
il
9 risposte

COMBOBOX SCORREVOLE

Salve, ho una combox che mi filtra nome e cognome dei clienti che tramite un requery mi aggiorna i dati relativi in maschera.
Ho creato due pulsanti di fianco questa casella per poter scorrere i nomi all'interno della combobox.
Fin quì tutto bene.
Cerco di spiegare meglio.
Per poter far funzionare i pulsanti tramite il ciclo FOR NEXT, ho dovuto creare una casella di testo numerica che contiente il numero (x) che al clic del pulsante si incrementa o decrementa prgoressivamente, il quale comanda l'opzione me.casellacombinata.itemdata(x), in questa maniera tutti i records della combox scorrono tranquillamente e con un requery visualizzo tutti i vari dati nella maschera.
Il problema sussite quando, si apre la combobox e si sceglie un nominativo nella lista, poichè il numero (x) non si aggiorna al numero della riga selezionata, quindi non si può poi procedere da quella riga con i pulsanti, ma ricomincia dal primo.
Ora, su ggiornamento della combobox ho provato a dare il valore alla casella di testo che gestisce itemdata(x) della stessa combobox, ma non so proprio come prenderlo!
Le ho provate un pò tutte, ma mi escon fuori numeri che non c'entrano nulla, tra cui l'ID...
In poche parole se apro la combobox e dal menù a tendina scelgo il cliente 10, il valore di(x) deve diventare 10 così se poi voglio procedere con i pulsantini, posso proseguire con 11,12,13 ecc... oppure 9,8,7 ecc...
Non so se ho reso bene il problema, se avete bisogno di altri dettagli ditemelo!

Grazie a quanti mi daranno, gentilmente, una mano

9 Risposte

  • Re: COMBOBOX SCORREVOLE

    joseph76_2004 ha scritto:


    Ho creato due pulsanti di fianco questa casella per poter scorrere i nomi all'interno della combobox
    Che io sappia una combobox crea automaticamente due piccole freccette in alto e basso e un cursore per scorrere quando la lista è più lunga di circa 8 record (valore predefinito).

    joseph76_2004 ha scritto:


    Per poter far funzionare i pulsanti tramite il ciclo FOR NEXT, ho dovuto creare una casella di testo numerica che contiente il numero (x) che al clic del pulsante si incrementa o decrementa prgoressivamente, il quale comanda l'opzione me.casellacombinata.itemdata(x), in questa maniera tutti i records della combox scorrono tranquillamente e con un requery visualizzo tutti i vari dati nella maschera.
    Il problema sussite quando, si apre la combobox e si sceglie un nominativo nella lista, poichè il numero (x) non si aggiorna al numero della riga selezionata, quindi non si può poi procedere da quella riga con i pulsanti, ma ricomincia dal primo.
    Ora, su ggiornamento della combobox ho provato a dare il valore alla casella di testo che gestisce itemdata(x) della stessa combobox, ma non so proprio come prenderlo!
    Arabo per me. Perchè tutto ciò per una semplice casella combinata?

    joseph76_2004 ha scritto:


    In poche parole se apro la combobox e dal menù a tendina scelgo il cliente 10, il valore di(x) deve diventare 10 così se poi voglio procedere con i pulsantini, posso proseguire con 11,12,13 ecc... oppure 9,8,7 ecc...
    Spiega tutto con esempi pratici su tutti i campi coinvolti nella casella combinata. Indica anche i nomi delle maschere se necessario.
  • Re: COMBOBOX SCORREVOLE

    Ciao Osvaldo

    Allora, la comodità delle freccette sta nel fatto che al clic nella combobox compare il cliente successivo e nella maschera i relativi dati, è più funzionale a livello visivo e più immediata.
    Le freccette di cui tu parli giustamente la combobx le crea superato il limite di contenimento che io ho a 16, ma puoi solo vedere i nomi e poi cliccandoci sopra ti si aggiorna la maschera...
  • Re: COMBOBOX SCORREVOLE

    Se non ho capito male, dove appare 7 è una "casella di testo" non associata a un campo specifico, ma deve avere qualcosa a che fare con un valore di colonna che sta all'interno della casella combinata. Suppongo che la tua casella combinata sia formata dai seguenti campi:
    [IDCliente]
    [Cognome] & "-" & [Nome] (forse proveniente da una query)
    Numero colonne: 2
    Larghezza colonne: 0 cm; 5 cm (insomma la prima colonna sicuramente 0 cm)

    Nella casella di testo dove compare 7, in visualizzazione struttura, alla proprietà Origine controllo, devi scrivere:
    =[NomeCombobox].[Column](0)
  • Re: COMBOBOX SCORREVOLE

    Si, tutto ciò che hai detto sulla casella combinata è corretto, le colonne sono 4 poichè filtro i valori null e l'anno... la prima è 0cm (ID) e la seconda precisamente 5cm ([Cognome] & " - " & [Nome])

    Ho provato ad inserire l'espressione [nomecombobox].[column](0) ma mi da dei numeri che non corrispondono, tutti superiori al 100...
    Bisognrebbe capire come estrarre il numero di riga dalla combobx per andarlo a piazzare nella casella di testo, magari dopo l'aggiornamento della combobx oppure su click...
  • Re: COMBOBOX SCORREVOLE

    Quando dico "nomecombobox" mi riferisco a quello che vedi scritto dentro la proprietà della combobox "Nome elemento" (che potrebbe essere diverso dal nome campo di origine). Poi è importante mettere = davanti.
  • Re: COMBOBOX SCORREVOLE

    Si si Oasvaldo, scusami, l'avevo fatto il nome è CBOSCHEDACLIENTE scritto così:
    =[CBOSCHEDACLIENTE].[COLUMN](0) ma mi pare mi dia gli ID... forse perchè nella colonna 0 che dovrebbe essere la 1 ci sono gli ID anche se impostata a 0cm... provo a metterci (1) su column e vediamo che succede... sicuramente errore....

    Infatti mi da i "Cognome - Nome" come nella combobx...
  • Re: COMBOBOX SCORREVOLE

    Mah, ragà, non è la prima volta che chiedo un aiuto e, se non fosse per Osvaldo, che ringrazio davvero, non riceverei alcuna risposta.

    Mi domando se le cose che chiedo siano troppo stupide o troppo complesse, boh?
    Rimarrò con questo dubbio.

    Intanto, vi ringrazio lo stesso e auguro a tutti una buona permanenza nel "forum dei programmatori".
  • Re: COMBOBOX SCORREVOLE

    joseph76_2004 ha scritto:


    Si si Oasvaldo, scusami, l'avevo fatto il nome è CBOSCHEDACLIENTE scritto così:
    =[CBOSCHEDACLIENTE].[COLUMN](0) ma mi pare mi dia gli ID... forse perchè nella colonna 0 che dovrebbe essere la 1 ci sono gli ID anche se impostata a 0cm...
    Pensavo che avessi risolto.
    Per scrupolo potresti descrivere tuttte le proprietà della tua casella combinata, almeno:
    Origine riga
    Larghezza colonne
    Numero colonne
    Colonna associata

    Ribadisco il mio dubbio sul perchè c'è tutto quel mucchio di azioni che ruotano intorno alla tua casella combinata. Io non la progetterei mai così e può darsi che, nel groviglio di azioni che hai organizzato, ti sia inceppato qualcosa.
    Prova a scaricare questo documento
    http://www.divshare.com/download/24930879-58
    per capire cosa c'è sotto una casella combinata. Poi si tratta di catturare la corrispettiva Column che Access conta così:
    Column(0)=1a colonna
    Column(1)=2a colonna
    ecc...
  • Re: COMBOBOX SCORREVOLE

    Alla fine dopo tante prove ce l'ho fatta da solo!
    Grazie lo stesso Osvaldo per il tuo aiuto...

    Nella casella di testo all'origine controllo ho scritto:
    [casellacombinata]=[casellacombinata].[itemdata]([casellacombinata].[listindex])-1

    quindi dopo l'aggiornamento nella combobox in quella casella di testo ho esattamente il numero che mi serve per fare ciò che avevo pensato.

    Ciao Osvaldo
Devi accedere o registrarti per scrivere nel forum
9 risposte