Problema, Selezione multipla listbox

di il
5 risposte

Problema, Selezione multipla listbox

Buongiorno a tutti
ho un problema che non riesco a risolvere
in una maschera ho una listbox dalla quale posso fare una selezione multipla di record da una tabella. i record finiscono in una textbox separati da virgola, finqui tutto ok.
ho un pulsante che mi dovrebbe eseguire una query di update con una condizione where, ma sembre che della condizione where non gli importa nulla, ovvero accoda solo il record selezionato nella listbox ma se ne seleziono due non accoda nulla.... per farvi capire posto il codice che ho inserito sul pulsante di comando

Private Sub Comando17_Click()
On Error GoTo Err_Comando5_Click

Me!Lista = Null
Dim strLista As String
Dim strCriteri As String
Dim varItem As Variant

If Me!Elenco12.ItemsSelected.Count = 0 Then Exit Sub

For Each varItem In Me!Elenco12.ItemsSelected
'Cattura la colonna IDSocietà di ciascuna
'voce selezionata
strLista = strLista & _
Me!Elenco12.Column(1, varItem) & ","
Me!Lista = Me!Lista & _
Me!Elenco12.Column(0, varItem) & ", "
Next varItem
strLista = Left$(strLista, Len(strLista) - 1)
Me!Lista = Left$(Me!Lista, Len(Me!Lista) - 2)

strCriteri = "[numfatt] IN (" & strLista & ")"
Dim stDocName As String
stDocName = "TB_TMP_VENDITA"

Dim Codice_SQL As String

Codice_SQL = "INSERT INTO tb_tmp_vendita ( cliente, prestazione, quantita, imponibile, enpav, iva, prezzo, totale, codice ) SELECT notule.cliente, notule.prestazione, notule.quantita, notule.imponibile, notule.enpav, notule.iva, notule.prezzo, notule.totale, notule.codice FROM notule WHERE (((notule.numfatt)=[forms]![elenco_trasforma_notula]![Lista]));"

Docmd.RunSQL Codice_SQL
Docmd.OpenForm "TB_TMP_VENDITA", acNormal, , strCriteri
Dim Cont As Integer
For Cont = 0 To Me!Elenco12.ListCount - 1
Me!Elenco12.Selected(Cont) = False
Next Cont

Exit_Comando5_Click:
Exit Sub
Err_Comando5_Click:
MsgBox Err.Description
Resume Exit_Comando5_Click

End Sub

dove sbaglio????
GRAZIE A TUTTI

5 Risposte

  • Re: Problema, Selezione multipla listbox

    Hai costruito correttamente la [strCriteri], e poi usi nella Query INSERT una condizinoe WHERE assurda...!
    "....WHERE (((notule.numfatt)=[forms]![elenco_trasforma_notula]![Lista]));"
    Sostituiscila con
    
    "...WHERE " & strCriteri
    Per resettare tutte le selezioni usa questo codice è più veloce e funziona meglio:
    
    Me!Elenco12.RowSource=Me!Elenco12.RowSource
  • Re: Problema, Selezione multipla listbox

    Grazie mille per la risposta,
    ho cambiato come mi hai suggerito la condizione where, ma continua a non accodare i record.
    E' possibile che sia sbagliata la strCriteri???

    grazie ancora
    Andrea
  • Re: Problema, Selezione multipla listbox

    Non sono in grado di dirti se la stringa è PERFETTA non ho modo di testare il tuo codice senza ricostruire uno scenario equivalente... ma tu che fai DEBUG dovresti vedere la stringa finale come viene valorizzata... dalla Visualizzazione VARIABILI in DEBUG.

    L'unico dubbio che mi viene è che il campo [numfatt] sia di tipo Numerico veramente...??
    Se fosse STRINGA, mancano gli APICETTI nella concatenazione...
    
    'Valore1','Valore2',....'ValoreN'
  • Re: Problema, Selezione multipla listbox

    Grazie e buon primo maggio!!!
    Quello che intanto ti posso dire che il campo numfatt e' un campo testo del tipo 001/2013
    Non ho compreso quello che mi hai voluto dire nel post
    Grazie ciao
    Andrea
  • Re: Problema, Selezione multipla listbox

    I Criteri su campi testo non hanno la medesima formattazione dei Criteri Numerici nè di quelli Data...!

    I criteri su campi data richiedono gli APICI...
    
    strLista = strLista & "'" & Me!Elenco12.Column(1, varItem) & "',"
    Saluti
Devi accedere o registrarti per scrivere nel forum
5 risposte