Newsgroup: it.comp.appl.access
Titolo: Parametro mancante nella qry...per esperti VBA

Salve a tutti
qualcuno mi sa dire dove è l' errore in questa funzione?
Dovrebbe servire per una selezione multipla in una casella di riepilogo per
fornire un parametro a una qry, ma mi appare um messaggio che dice che manca
un parametro
Private Sub <Nomecontrollo>_click()
Dim strWhere As String, varItem As Variant
    If  Me ! IDCliente.ItemsSelected. Count  =  0  Then  Exit Sub
For Each  varItem  In  Me ! IDCliente. ItemsSelected
    strWhere  =  strWhere  &  Me ! IDCliente.Column  ( 1 , varItem )  &  " ,
"
Next  varItem
strWhere  =  Left $  ( strWhere,  Len ( strWhere ) -1 )
DoCmd.OpenForm  "frmClienti" ,  acNormal  ,   ,   " [ IDCliente ]  In  ( " &
strWhere  & " ) " , acEdit ,  acNormal
End Sub
Grazie in anticipo
Luca

 ha scritto nel messaggio
news:HKu_5.111809$hk4.4...@news.infostrada.it...

Innanzi tutto bisogna capire cosa vuoi fare, visto che dici di voler usare
il risultato della selezione multipla di una casella di riepilogo per
passarlo come parametro ad una query, poi invece nella routine lo adoperi
per filtrare la maschera frmClienti. Di due l'una. Quale?
Dopo di che:
1) come hai impostato la proprietà "Selezione multipla" della tua casella di
riepilogo?
2) Quale è il nome della tua casella di riepilogo?
3) Di quante colonne è composta la tua casella di riepilogo?
4) Il contenuto di quale colonna vuoi memorizzare nella stringa strWhere?
5) Il tipo campo di detta colonna quale è (testo, numerico.....)?
6) Come pensi di scrivere i criteri della tua query?
Facci sapere.
--
Roberto
---------------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------

 ha scritto nel messaggio
news:m1L_5.117121$hk4.4...@news.infostrada.it...

Chiedo scusa per la confusione ma sono veramente alle prime armi
La funzione l' ho trovata su un manuale e pensavo di adattarla allo scopo,
che poi sarebbe quello di filtrare una qry origine dati di un report.
1) La "Selezione multipla" è impostata su 'Estesa'
2) La casella di riepilogo è "Clienti"
3) Le colonne sono 2: IDCliente;Cliente
4) Vorrei memorizzare il campo IDCliente
5) numerico
6)La mia idea era di scrivere qualcosa tipo
[Forms]![Selezionaclienti]![Clienti] dove [Selezionaclienti] è il nome della
maschera che contiene la casella di riepilogo [Clienti] e di impostare la
funzione su "Routine evento" di un pulsante "Apri".
La parte finale non doveva essere DoCmd.OpenForm ma DoCmd.OpenReport.
Se mi vorrai dare un consiglio te ne sarei veramente grato
Grazie
Luca

 ha scritto nel messaggio
news:pqR_5.120461$hk4.4...@news.infostrada.it...

Ipotizziamo che il tuo report si chiami ReportClienti e che contenga anche
un controllo chiamato IDCliente, con il risultato della selezione multipla
della casella di riepilogo Clienti ci filtrerei direttamente il report,
invece di passarlo come parametro alla query.
Pertanto farei così: nella tua maschera di nome Selezionaclienti, che
contiene la casella di riepilogo chiamata Clienti, inserisci un pulsante di
comando e a fronte del suo evento "Su clic" genera il seguente codice VBA:
Dim strWhere As String, varItem As Variant
If Me!Clienti.ItemsSelected.Count = 0 Then Exit Sub
For Each varItem In Me!Clienti.ItemsSelected
strWhere = strWhere & Me!Clienti.Column(0, varItem) & ","
Next varItem
strWhere = "[IDCliente] IN (" & Left$(strWhere, Len(strWhere) - 1) & ")"
DoCmd.OpenReport ReportName:="ReportClienti", WhereCondition:=strWhere
DoCmd.Close acForm, Me.Name
A questo punto apri la maschera Selezionaclienti, selezioni dalla casella di
riepilogo i clienti che vuoi stampare e pigi con il mouse il pulsante di
comando: verrà stampato il report dei clienti selezionati.
