Casella combinata [risolto]

di il
9 risposte

Casella combinata [risolto]

Salve a tutti, ho una combo con origine riga:
SELECT [RK1_qry_prodotti].[nome_prodotto], [RK1_qry_prodotti].[id_barcode], [RK1_qry_prodotti].[id_iva] FROM [RK1_qry_prodotti];
e su dopo aggiornamento ho il seguente codice:
Private Sub CasellaCombinata79_AfterUpdate()
' Trova il record corrispondente al controllo
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[nome_prodotto] = """ & Me![CasellaCombinata79] & """"
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Funziona bene, ma se in elenco ci sono 2 prodotti con stesso nome ma con id_barcode differenti, a prescindere dalla
mia scelta, mi compare nella sottomaschera correlata sempre il primo dei 2 in elenco. Voorrei che mi cercasse quello
corrispondente.
La relazione è uno a molti ed è basata su id_barcode
Grazie in anticipo

9 Risposte

  • Re: Casella combinata [risolto]

    Ciao,
    prova in questo modo, cambia questa riga:
    
    rs.FindFirst "[nome_prodotto] = """ & Me![CasellaCombinata79] & """"
    
    cosi n questo modo :
    
    rs.FindFirst "[id_barcode] = " & me.CasellaCombinata79.column(1)
    
    stai sincronizzando un testo e non un' identificatore univoco questo il problema.
    
    ti suggerisco comunque di ri-nominare i controlli della form con nomi maggiormente significativi .
    
    puoi rivedere il codice anche così' :
    [code]
    
    Me.RecordsetClone.FindFirst "[id_barcode] = " & Me.me.CasellaCombinata79.column(1)
        If Not Me.RecordsetClone.NoMatch Then
            Me.Bookmark = Me.RecordsetClone.Bookmark
        End If
    
    
    facci sapere.
    un saluto.
  • Re: Casella combinata [risolto]

    Ciao Goku. grazie per la risposta, comun lo so so che la mia ricerca
    in base al nome non è univoca, infatti ho anche la casella combinata che mi ricerca i barcode e li non
    ho problemi in quanto id_barcode è univoco, ma la ricerca mi serve anche in base al nome...
  • Re: Casella combinata [risolto]

    Ci sarebbe un altro campo che unito a "nome" renderebbe la visualizzazione del testo in casella combinata "significativamente univoco"? Voglio dire, non è che ci ho capito molto dei vostri codici, ma faccio un classico esempio di Anagrafica. Visualizzare soltanto il Cognome potrebbe non essere sufficiente, allora magari, visualizzare l'unione campi di Cognome & Nome può funzionare. Se a rendere univoco il nome è soltanto il campo IDBarcode, temo che dovrai concatenarre al nome proprio il campo IDBarcode.
  • Re: Casella combinata [risolto]

    Ciao.

    mogaverik74 ha scritto:


    ho problemi in quanto id_barcode è univoco, ma la ricerca mi serve anche in base al nome...
    da come la vedo l'unico modo per identificare id_barcode corretto anche se il nome prodotto è lo stesso è attraverso la PK che essendo univoca ti visualizza il record corretto.
    sincronizzando per nome.prodotto otterrai sempre il primo prodotto.
    se vuoi ti allego un test che ho effettuato, magari così mi dici se ho interpretato bene il problema che poni...
    un saluto e buona serata.
  • Re: Casella combinata [risolto]

    Ok grazie goku allegami il test... cmq ho bisigno che la ricerca venga fatta anche con il nome e non solo con il barcode
  • Re: Casella combinata [risolto]

    Buona sera a tutti, allora mi devo rassegnare??? non ci sono soluzioni??
  • Re: Casella combinata [risolto]

    Ciao.
    potresti creare due combo box che puntano alla stessa orgine dati, combo non associate.
    la prima visualizza l'id_barcode, la seconda che ha sempre la stessa orgine dati, ha un criterio (l'origine dati deve essere una query) all'interno di essa che ti fa visualizzare gli n prodotti collegati, il criterio punto al nome del controllo id_barcode non associato, la prima combo box.
    in pratica sincronizzi e visualizzi la seconda combobox con i nomi prodotti filtrandoli dagli id_barcode della prima combo.

    sulla stessa form imposti un pulsante di comando che riesegue la query origine dati della tua form.
    la query della tua form ha all'interno di essa i criteri che filtrano i dati a seconda dei valori letti dalle due combo non associate.
    non si possono allegare files mdb o accdb nel forum, è più difficile a dirsi che a farsi.

    non sono stato molto chiaro...dimmi se ottieni il risultato voluto,+
    un saluto.
  • Re: Casella combinata [risolto]

    Per me dovresti modificare la query che sta sotto la casella combinata così (scrivo in visualizzazione struttura perchè non so usare SQL):
    1a colonna: id_barcode
    2a colonna: [nome] & " - " & [id_barcode]

    Poi devi organizzare la tua casella combinata in modo che non sia visibile la 1a colonna. È importante osservare che id_barcode è univoco, nome no. Quindi la 1a colonna è giusto che sia id_barcode, la 2a teoricamente nome, ma abbiamo già visto che si presenta il tuo problema, allora ecco che occorre concatenare i due campi con l'espressione che ti ho indicato. In base a questa nuova organizzazione query, devi reimpostare la proprietà Larghezza colonne: 0 cm; 5 cm (o più se è troppo corto) ecc. per le altre colonne.
    Se il look della colonna concatenata non ti piace, allora organizza la casella combinata così:
    1a colonna: id_barcode
    2a colonna: nome
    3a colonna: id_barcode
    ...altre colonne

    Attenzione: non è chiaro il tipo di campo che sta sotto la casella combinata (ripeto, non sono in grado di interpretare i vostri codici). Per coerenza non deve essere testo, ma numerico perchè è id_barcode numerico che comanda tutta la baracca.
  • Re: Casella combinata [risolto]

    Come mi aspettavo grazie a voi ho risolto il problema.
    Ho creato una combo con la colonna 0 "id_barcode" (univoco) (larghezza 0)
    e la colonna 1 "nome_prodotto" (visibile).... funziona alla grande
    La soluzione era semplicissima mi ero perso, come si dice, "in un bicchier d'acqua"
    Grazie ancora... alla prossima
Devi accedere o registrarti per scrivere nel forum
9 risposte