Buongiorno a tutti!
questa volta vi scrivo perchè ho un problema alquanto bizzarro (con Access2007) che non riesco a risolvere.
data questa struttura di database:
http://s000.tinyupload.com/download.php?file_id=54311363617502425610&t=5431136361750242561043501
(purtroppo non riesco a fare l'upload delle immagini),
sulle tabelle Tconsegne e Tconsegne_dettagli ho creato questa query:
SELECT Tconsegne.id_consegna AS n°consegna, Tconsegne.[DATA CONSEGNA], Tarticoli.BARCODE, Tconsegne_dettagli.[QUANTITà ARRIVO], Tarticoli.ARTICOLO
FROM Tarticoli INNER JOIN (Tconsegne INNER JOIN Tconsegne_dettagli ON Tconsegne.id_consegna = Tconsegne_dettagli.ID_CONSEGNA) ON Tarticoli.BARCODE = Tconsegne_dettagli.BARCODE;
su questa query ho creato una maschera più elementi che mostri tutti i campi e i valori della query, con due caselle combinate per fare una ricerca sulla data e sull'articolo.
ho aggiunto il pulsante "Cerca" (comando14) che funzioni da filtro maschera in base ai valori selezionati nelle due (o solo in una) combobox.
il filtro l'ho costruito in VBA, nel seguente modo:
Private Sub Comando14_Click()
Me.FilterOn = False
Dim strWH As String
Dim strCONC As String
strCONC = "AND" ' Quì eventualmente puoi valutare la Questione AND/OR
If Len(Me!CasellaCombinata8.Value & vbNullString) > 0 Then
strWH = strWH & "BARCODE='" & Me!CasellaCombinata8.Value & "'" & strCONC
End If
If Len(Me!CasellaCombinata10.Value & vbNullString) > 0 Then
strWH = strWH & "[DATA CONSEGNA]=#" & Me!CasellaCombinata10.Value & "#" & strCONC
End If
If Len(strWH) > 0 Then
strWH = Mid$(strWH, 1, Len(strWH) - Len(strCONC))
End If
Me.Filter = strWH
Testo21.Value = Me.Filter
Me.FilterOn = True
End Sub
Ora la cosa bizzarra sta nel fatto che il filtro funziona per gli articoli, ma per quanto riguarda le date, funziona solo con una di esse --> dalla casella di testo date, ho 3 opzioni (origine riga è la Tconsegne): 27/01, 09/05 e 12/11. funziona solo se seleziono la data 27/01.
ho aggiunto una casella di testo (Testo21) per verificare come viene visto il filtro ma questo restituisce sempre valori congruenti.
ho provato a mettere come criterio nel campo query le date sovracitate e la query viene filtrata correttmente, così come funziona se utilizzo il comando "filtro in base a maschera" nella ribbon.
PS: tali date esistono nella tabella di partenza, vengono rilevate dalla query e sono presenti anche nella maschera.
non capisco proprio dove stia il problema.