Newsgroup: it.comp.appl.access
Titolo: sintassi criterio "In" parametro query

Salve a tutti.
Sono in difficoltà con un parametro query  e non riesco a trovare
soluzione:
Ho creato una query con un campo NFattura. in questo campo vengono
passati come parametro diversi numeri fattura per i quali voglio
visualizzare un report.
Questi num.fattura (campo testo) glieli passo da una maschera con
campo non associato.
nel campo NFattura della query alla voce parametro ho scritto:
In ( Forms![MiaForm]![CasellaTesto] ). Ovviamente nella casella testo
della maschera inserisco i numeri fatt. in questa maniera:
"1250","1320", perchè il parametro In se ho capito vuole questa
sintassi.
Il problema è che la query risulta vuota.
Credo sia un problema di sintassi...
Grazie a tutti.
Mauro.

Ah, dimenticavo:
se il paramatro nella query lo scrivo direttamente in questo modo
In ("1250";"1320") funzione perfettamente.
Grazie ancora.

Mauro.
Vincenzo Turturro
Certificato Eucip Core Level
ITA 0000-002299 del 14/05/2007
---------------------------------------------
il sito comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------
risorse Access:
http://www.accessgroup.it
---------------------------------------------
Il sito comune di it.comp.as400
http://www.faq400.com
---------------------------------------------

 - o cambi la condizione di selezione dei record nel query
Non saprei come.
Per la seconda ipotesi ci provo senz'altro.
Nessun problema per la casella di riepilogo, ma per l'impostazione
tramite VBA riesci a darmi una dritta?
Mille grazie, Mauro.

(.....)

Dim vSelPar As Variant, stIN as string
     stIN=""
     For Each vSelPar In tuaListBox.ItemsSelected
         stIN=stIN & "'" & tuaListBox.ItemData(vSelPar) & "',"
     Next vSelPar
     If stIN > "" Then
        stIN=Left$(stIN,Len(Trim$(stIN))-1))
        stIN="IN(" & stIN & ")"
     EndIf



Su quale evento mi consigli di metterlo?
grazie,

 grazie,

Ma nella query non ci va nessun riferimento?
Come glielo dico che il parametro lo deve cercare dalla casella di
riepilogo?
Scusa sai ma ci sto studiando su da un pò e non ci arrivo a capo.
Grazie ancora.
Mauro.

> grazie,




Puoi aggiungere un pulsante alla maschera, nella cui routine associata all'evento SuClick scrivi il codice che compone
la clausola IN della query seguito dall'alterazione dell'origine record della maschera.
Qualcosa del tipo:
Dim vSelPar As Variant, stIN as string
     stIN=""
     For Each vSelPar In tuaListBox.ItemsSelected
         stIN=stIN & "'" & tuaListBox.ItemData(vSelPar) & "',"
     Next vSelPar
     If stIN > "" Then
        stIN=Left$(stIN,Len(Trim$(stIN))-1)
        stIN="IN(" & stIN & ")"
        Me.RecordSource = "SELECT * FROM Fatture WHERE NFattura " & stIN
     Else
        Me.RecordSource = "SELECT * FROM Fatture"
     EndIf
    Me.Requery


     Me.Requery
Così mi da errore sulla riga Me.RecordSource.
Ahimè!

sull'altro per aprire il report... č cosě?
Mi dispiace ma avevo completamente perso l'esistenza del report.
In questo caso ti basta semplicemente lavorare nella routine associata all'evento SuClick del pulsante che apre il
report, aggiungendo prima dell'apertura del report la composizione della clausola IN e passando al report la condizione
di filtro quando presente.
Dim vSelPar As Variant, stIN as string
     stIN=""
     For Each vSelPar In Testo6.ItemsSelected
         stIN=stIN & "'" & Testo6.ItemData(vSelPar) & "',"
     Next vSelPar
     If stIN > "" Then
        stIN=Left$(stIN,Len(Trim$(stIN))-1)
        stIN="IN(" & stIN & ")"
        Docmd.OpenReport "TuoReport",,,"NFattura " & stIN	' Apre il report filtrato con le fatture selezionate
     Else
        Docmd.OpenReport "TuoReport"			' Apre il report non filtrato
    EndIf


     EndIf
Occhei occhei, quasi ci sono ma ti rompo ancora:
ho dovuto cambiare, per ragioni di ordinamento il campo NFattura da
testo a numerico.
Ora ovviamente il tuo codice mi crea un errore di run-time 3464 (tipi
di dati non corrispendenti nell'espressione criterio)
Cosa devo cambiare per renderli corrispondenti. Io mi sono perso in
questo codice già da parecchio e se provo a modificarlo da solo faccio
dei danni.
Grazie, Mauro.

Grazie, Mauro.


Va molto bene, quasi ci siamo.
Dico quasi perchè funziona tutto a dovere con la differenza che mi
manda il report direttamente in stampa, invece vorrei visualizzarlo,
decido dopo se stamparlo o meno.
a seguito il codice aggiornato:
Dim vSelPar As Variant, stIN As String
     stIN = ""
     For Each vSelPar In Testo6.ItemsSelected
         stIN = stIN & CLng(Testo6.ItemData(vSelPar)) & ","
     Next vSelPar
     If stIN > "" Then
        stIN = Left$(stIN, Len(Trim$(stIN)) - 1)
        stIN = "IN(" & stIN & ")"
        DoCmd.OpenReport "CalcoloProvvigioniFatture", , , "NFattura "
& stIN    ' Apre il report filtrato con le fatture selezionate
     Else
        DoCmd.OpenReport "CalcoloProvvigioniFatture"
' Apre il report non filtrato
    End If
grazie, ciao. Mauro.

 potevi ordinare rispetto a Clng(NFattura)
Ho pensato fosse giusto perche nel campo Nfattura (ovviamento ci sono
i numeri delle fatture) sono tutti numeri.
Da qualche parte ho letto che se non ci si deve fare dei calcolo sopra
è meglio metterli come testo. Infatti ho poi verificato con il codice
cliente es. 00125. come numero avevo problemi con gli zeri davanti.
Comunque in questo caso essendo testo quando ordinavo in modo
crescente metteva es. 1-100-12-2-25-261. verificato che zeri davanti
non ci sono e non ce ne saranno ho creduto la cosa più semplice
metterli come numeri.

decido dopo se stamparlo o meno.
Beh, se il problema è solo questo, ti basta consultare l'help dell'istruzione openreport ...


Grandioso.
Grazie al tuo enorme aiuto sono riuscito ad otenere ciò che volevo.
Molte grazie. Siete impagabili.
Mauro.

 wrote:
Salve a tutti,
scusate se rispolvero un vecchio post, ma avevo risolto e funzionava
tutto bene, quando ad un certo punto ho cominciato ad avere problemi.
Probabilmenmte ho modificato qualcosa ma non riesco a capire cosa.
Nel soprastante codice (che riporto come è ora)
Private Sub Comando2_Click()
Dim vSelPar As Variant, stIN As String
     stIN = ""
     For Each vSelPar In Testo6.ItemsSelected
         stIN = stIN & CLng(Testo6.ItemData(vSelPar)) & ","
     Next vSelPar
     If stIN > "" Then
        stIN = Left$(stIN, Len(Trim$(stIN)) - 1)
        stIN = "IN(" & stIN & ")"
        DoCmd.OpenReport "CalcoloProvvigioniFatture", acViewReport, ,
"NFattura " & stIN   ' Apre il report filtrato con le fatture
selezionate
     Else
        DoCmd.OpenReport "CalcoloProvvigioniFatture", acViewReport '
Apre il report non filtrato
    End If
End Sub
nella riga dove dice   stIN = stIN & CLng(Testo6.ItemData(vSelPar)) &
","
viene l'errore 13 tipo non corrispondente.
qualcuno sa dirmi che diamine posso aver combinato?
grazie mille.

CHIEDO VENIA
stavo cercando di aprire il report selezionando alcuni campi dove
manca il numero fattura, che è un criterio per la ricerca.
Va tutto bene come prima .
Scusate il disturbo.
Mauro.