valerio matrix ha scritto:
Chiedo scusa. Allora ci riprovo. Per quanto riguarda la stampa ho risolto creando un report. Nella maschera ho creato un pulsante che mi restituisce il report della query. Quindi almeno per questo punto ho risolto. Spero nella maniera corretta. Ora si crea un nuovo problema: se volessi fare una ricerca di un record con il pulsante preimpostato che posso aggiungere di access non mi trova nulla, questo perchè la ricerca la devo fare tramite un campo di testo che aggiungo poi alla query. L'ho fatto per le date ma non ci riesco con il nome del fornitore. Questo perchè ho ricerco un nome preciso oppure se volessi togliere il filtro non ci riesco e non visualizza nulla. comunque allego la query che ho cretao.
SELECT FATTURA.fattura_id, FATTURA.data_fattura, FATTURA.numero_fattura, FORNITORE.ragione_sociale, FATTURA.imponibile, FATTURA.iva, FATTURA.contributo_previdenziale, FATTURA.[ritenuta acconto], FATTURA.bollo, FATTURA.totale
FROM FORNITORE INNER JOIN FATTURA ON FORNITORE.fornitore_id = FATTURA.fornitore_id
WHERE (((FATTURA.data_fattura)>[Maschere]![HOME NEW]![2CAMPO DATA DAL] And (FATTURA.data_fattura)<[Maschere]![HOME NEW]![CAMPO DATA AL]) AND ((FATTURA.numero_fattura) Like [Maschere]![HOME NEW]![CAMPO NUMERO FT]))
ORDER BY FATTURA.data_fattura;
Hai litigato con l'italiano, perchè dalla punteggiatura al resto si fatica a seguire il filo del discorso...
In ogni caso... questa variante consente di OMETTERE il contenuto del Controllo [CAMPO NUMERO FT] e di ottenere tutti i Records nell'intervallo temporale inserito, ma il Valore inserito Deve essere Perfettamente UGUALE a quello da filtrare.
SELECT FATTURA.fattura_id, FATTURA.data_fattura, FATTURA.numero_fattura, FORNITORE.ragione_sociale, FATTURA.imponibile, FATTURA.iva, FATTURA.contributo_previdenziale, FATTURA.[ritenuta acconto], FATTURA.bollo, FATTURA.totale
FROM FORNITORE INNER JOIN FATTURA ON FORNITORE.fornitore_id = FATTURA.fornitore_id
WHERE (((FATTURA.data_fattura)>[Maschere]![HOME NEW]![2CAMPO DATA DAL] And (FATTURA.data_fattura)<[Maschere]![HOME NEW]![CAMPO DATA AL]) AND ((FATTURA.numero_fattura) = [Maschere]![HOME NEW]![CAMPO NUMERO FT] OR [Maschere]![HOME NEW]![CAMPO NUMERO FT] IS NULL))
ORDER BY FATTURA.data_fattura;
Se vuoi invece che la ricerca sia per testo PARZIALE devi introdurre i JOLLY Prima e dopo... il testo... quindi se scrivi [*Pippo] cercherà tutti i testi che Finiscono per Pippo, se scrivi [*Pippo*] cercherà tutti Records il cui campo ha Pippo in qualsiasi posizione.
Se non vuoi dover scrivere * nella casella, e ci sono questioni tecniche SQL INJECTION che andrebbero affrontate sempre sia il caso, devi modificare il predicato SQL al fine sia lui a poter applicare la ricerca Parziale:
SELECT FATTURA.fattura_id, FATTURA.data_fattura, FATTURA.numero_fattura, FORNITORE.ragione_sociale, FATTURA.imponibile, FATTURA.iva, FATTURA.contributo_previdenziale, FATTURA.[ritenuta acconto], FATTURA.bollo, FATTURA.totale
FROM FORNITORE INNER JOIN FATTURA ON FORNITORE.fornitore_id = FATTURA.fornitore_id
WHERE (((FATTURA.data_fattura)>[Maschere]![HOME NEW]![2CAMPO DATA DAL] And (FATTURA.data_fattura)<[Maschere]![HOME NEW]![CAMPO DATA AL]) AND ((FATTURA.numero_fattura) Like '*' & [Maschere]![HOME NEW]![CAMPO NUMERO FT] & '*'))
ORDER BY FATTURA.data_fattura;