Newsgroup: it.comp.lang.visual-basic
Titolo: Query con errore

Buon giorno a tutto il NG
ho creato una form dalla quale filtro i dati tramite una query ma mi
sono ritrovato con un errore strano...
la query ed il codice impostato sul pulsante della form di ricerca
sono un po' complessi per cui li inserisco entrambi:
questa è la query...
SELECT Q_UnioneTutteLePostazioni.Linea, Q_UnioneTutteLePostazioni.
[Data inserimento  controllo], Q_UnioneTutteLePostazioni.[Data
inserimento  controllo], *
FROM Q_UnioneTutteLePostazioni
WHERE (((Q_UnioneTutteLePostazioni.Reparto)="A")) Or
(((Q_UnioneTutteLePostazioni.Reparto)="B") And
((Q_UnioneTutteLePostazioni.Linea)=Forms!M_FiltroDatiQualitàPuntuale!
[Linea]) And ((Q_UnioneTutteLePostazioni.[Data inserimento
controllo])=Forms!M_FiltroDatiQualitàPuntuale!DataLotto) And
((Q_UnioneTutteLePostazioni.[Data inserimento  controllo]) Between
Forms!M_FiltroDatiQualitàPuntuale!DataDal And Forms!
M_FiltroDatiQualitàPuntuale!DataAl));
...e questo è il VBA sul pulsante form
Dim v_reparto, v_reparto2, v_linea As Variant
    Dim v_mese, v_anno As Variant
    'cancellazione query
    CurrentDb.QueryDefs.Delete "Q_FiltriMeseQualità"
    v_reparto = Me.Reparto
    v_reparto2 = Me.Reparto2
    v_linea = Me.Linea
    v_mese = Me.Mese
    v_anno = Me.Anno
    If Me.Categoria.Value = "BLUE" Then
        CurrentDb.CreateQueryDef("Q_FiltriMeseQualità").SQL = "Select
* from Q_UnioneTutteLePostazioni where Reparto = """ & v_reparto &
"""
and Linea <> '60' and Month([Data inserimento  controllo]) = " &
v_mese & " and Year([Data inserimento  controllo]) = " & v_anno & ""
    ElseIf Me.Categoria.Value = "BLUE AMM" Then
        CurrentDb.CreateQueryDef("Q_FiltriMeseQualità").SQL = "Select
* from Q_UnioneTutteLePostazioni where Reparto = """ & v_reparto &
"""
and Linea = """ & v_linea & """ and Month([Data inserimento
controllo]) = " & v_mese & " and Year([Data inserimento  controllo])
=
" & v_anno & ""
    ElseIf Me.Categoria.Value = "BLUE Solubili" Then
        CurrentDb.CreateQueryDef("Q_FiltriMeseQualità").SQL = "Select
* from Q_UnioneTutteLePostazioni where Reparto = """ & v_reparto &
"""
and Month([Data inserimento  controllo]) = " & v_mese & " and
Year([Data inserimento  controllo]) = " & v_anno & ""
    ElseIf Me.Categoria.Value = "EP Bidose \ MonoBidose" Then
        CurrentDb.CreateQueryDef("Q_FiltriMeseQualità").SQL = "Select
* from Q_UnioneTutteLePostazioni where Reparto = """ & v_reparto &
"""
and Month([Data inserimento  controllo]) = " & v_mese & " and
Year([Data inserimento  controllo]) = " & v_anno & ""
    ElseIf Me.Categoria.Value = "EP Monodose" Then
        CurrentDb.CreateQueryDef("Q_FiltriMeseQualità").SQL = "Select
* from Q_UnioneTutteLePostazioni where Reparto = """ & v_reparto &
"""
or Reparto = """ & v_reparto2 & """ and Month([Data inserimento
controllo]) = " & v_mese & " and Year([Data inserimento  controllo])
=
" & v_anno & ""
    ElseIf Me.Categoria.Value = "EP Solubili" Then
        CurrentDb.CreateQueryDef("Q_FiltriMeseQualità").SQL = "Select
* from Q_UnioneTutteLePostazioni where Reparto = """ & v_reparto &
"""
and Month([Data inserimento  controllo]) = " & v_mese & " and
Year([Data inserimento  controllo]) = " & v_anno & ""
    End If
    If IsNull(Me.Categoria) And IsNull(Me.Reparto) And
IsNull(Me.Reparto2) And IsNull(Me.Linea) And IsNull(Me.Mese) And
IsNull(Me.Anno) Then
    CurrentDb.CreateQueryDef("Q_FiltriMeseQualità").SQL = "Select *
from Q_UnioneTutteLePostazioni"
    End If
    DoCmd.OpenQuery "Q_FiltriMeseQualità"
    DoCmd.Close acQuery, "Q_FiltriMeseQualità"
fino a che si tratta di un solo reparto oppure reparto + linea 60
funziona tutto ma quando la ricerca esegue il reparto A e B insieme
filtra correttamente i due reparti ma non il mese e l' anno.
Per es BLUE per Dicembre 2007 funziona invece EP Monodose per
Dicembre
2007 rende i reparti A e B ad esso associati ma mi compaiono i dati
di
Dicembre, novembre ecc....
che cosa ci può essere di errato?
grazie
Marco

Forse ho già risolto il problema tra l' altro non mi ricordavo di
avere già postato in precedenza e di questo mi scuso.
grazie comunque
Marco