si si ... per quello funziona bene!
si si ... per quello funziona bene!
my pws: cafedelsol.it
il presente non ha estensione. è soltanto il continuo tradursi del futuro nel passato.
Io farei così.
Vai nella Routine evento del pulsante che ti ho detto prima. Ora sarà fatta più o meno così:
Modificala in questo modo:codice:Private Sub Comando8_Click() Me.Requery End Sub
Secondo me, date le tue basi di ASP dovresti capire cosa ho fatto, altrimenti chiedimi pure.codice:Private Sub Comando8_Click() If Not IsNull(Me.prodotto_nome) Then Me.RecordSource = "SELECT PRODOTTI.PRODOTTO_NOME, * FROM PRODOTTI WHERE (((PRODOTTI.PRODOTTO_NOME) Like ""*" & Me.Prodotto_nome & "*"")) ORDER BY PRODOTTI.PRODOTTO_NOME DESC;" Else Me.RecordSource = "SELECT PRODOTTI.PRODOTTO_NOME, * FROM PRODOTTI ORDER BY PRODOTTI.PRODOTTO_NOME DESC;" End If Me.Requery End Sub
Ricorda, per risolvere il problema dell'avvio della maschera devi cambiare la proprietà Origine record della maschera: devi mettere direttamente lì il secondo SQL del codice qui sopra, quello senza filtraggio. Evidentemente l'SQL viene eseguito prima che la maschera venga creata.
Senti ma ... il pulsante a cui ti riferisci che tipo di pulsante è?Originariamente inviato da longline
Io farei così.
Vai nella Routine evento del pulsante che ti ho detto prima.
Cosa deve fare? Deve aprire una maschera? Se si ... la maschera di visualizzazione dei prodotti?![]()
my pws: cafedelsol.it
il presente non ha estensione. è soltanto il continuo tradursi del futuro nel passato.
Devi metterlo nella maschera dove visualizzi i record che vuoi cercare.
Nella sezione "corpo" vedrai i record, nella sezione "intestazione maschera" metti il campo in cui inserire il testo da cercare e il pulsante di comando che avvia la ricerca.
Ho fatto tutto ... solo che non mi trova neanche 1 record ...![]()
Ricapitolo:
1. ho questa query (chiamata "ricerca_prodotto")
2. Ho una maschera chiamata Ricerca_Prodotti che ha due campi di testo per inserire i valori del Nome Prodotto e del Codice Prodotto. Sempre in questa tabella ho un pulsante che apre la maschera Visualizzazione_Prodotti.codice:SELECT [PRODOTTI].[PRODOTTO_CODICE], [PRODOTTI].[PRODOTTO_NOME], [PRODOTTI].[PRODOTTO_BREVE_DESCRIZIONE], [PRODOTTI].[PRODOTTO_DESCRIZIONE], [PRODOTTI].[PRODOTTO_CAMPI_IMPIEGO], [PRODOTTI].[PRODOTTO_CARATTERISTICHE_TECNICHE], [PRODOTTI].[PRODOTTO_CAPITOLATO], [PRODOTTI].[PRODOTTO_PRODUTTORE], * FROM PRODOTTI WHERE ((([PRODOTTI].[PRODOTTO_CODICE])=[Forms]![RICERCA_PRODOTTI]!)) ORDER BY [PRODOTTI].[PRODOTTO_NOME];
3. La tabella Visualizzazione_Prodotti ha come origine dati la query "ricerca_prodotto".
Teoricamente dovrebbe funzionare ... teoricamente
![]()
![]()
my pws: cafedelsol.it
il presente non ha estensione. è soltanto il continuo tradursi del futuro nel passato.
Allora:
1. dimenticati della maschera Ricerca_Prodotto.
2. apri in visualizzazione struttura la maschera Visualizzazione_Prodotti.
3. dovresti avere una sezione della maschera chiamata "corpo": in essa troverai i campi che conterranno i dati dei prodotti visualizzati.
4. controlla che oltre alla sezione "corpo" sia visibile anche la sezione "Intestazione maschera". Se non è così, attivala dal menu Visualizza, Int./piè di pagina maschera.
5. una volta attivata, creaci dentro due caselle di testo come quelle che avevi fatto nella maschera Ricerca_Prodotto.
6. sempre nella "Intestazione maschera" crea un pulsante di comando (non usare i wizard) con sopra scritto "cerca", "trova", ecc..
Fai questo, intanto. Quando hai finito passiamo al codice ok?
ok![]()
ora vado a fare la pappa. appena finisco mi metto al lavoro!
my pws: cafedelsol.it
il presente non ha estensione. è soltanto il continuo tradursi del futuro nel passato.
Siccome nel pomeriggio non sarò sempre in casa, intanto scrivo la seconda parte...
7. vai nelle proprietà della maschera e individua "Origine dati": qui dovresti trovare il nome della query "ricerca_prodotto". Cancellala; al suo posto inserisci la stessa stringa SQL, ma senza i filtri:
8. vai nelle proprietà del pulsante "cerca" e individua "Su clic": è una casella a discesa, con unica voce "[Routine evento]". Selezionala e poi clicca sul pulsante coi tre puntini alla sua destra. Ti troverai in un editor di visual basic, con predisposta la sub che verrà eseguita alla pressione del pulsante stesso. Modificalo così:codice:SELECT [PRODOTTI].[PRODOTTO_CODICE], [PRODOTTI].[PRODOTTO_NOME], [PRODOTTI].[PRODOTTO_BREVE_DESCRIZIONE], [PRODOTTI].[PRODOTTO_DESCRIZIONE], [PRODOTTI].[PRODOTTO_CAMPI_IMPIEGO], [PRODOTTI].[PRODOTTO_CARATTERISTICHE_TECNICHE], [PRODOTTI].[PRODOTTO_CAPITOLATO], [PRODOTTI].[PRODOTTO_PRODUTTORE], * FROM PRODOTTI;
A questo punto devi semplicemente aprire la maschera Visualizzazione_Prodotti.codice:Private Sub NomePulsanteCerca_Click Dim strSql as string strSql = "SELECT [PRODOTTI].[PRODOTTO_CODICE], [PRODOTTI].[PRODOTTO_NOME], [PRODOTTI].[PRODOTTO_BREVE_DESCRIZIONE], [PRODOTTI].[PRODOTTO_DESCRIZIONE], [PRODOTTI].[PRODOTTO_CAMPI_IMPIEGO], [PRODOTTI].[PRODOTTO_CARATTERISTICHE_TECNICHE], [PRODOTTI].[PRODOTTO_CAPITOLATO], [PRODOTTI].[PRODOTTO_PRODUTTORE], * FROM PRODOTTI" strSql = strSql & " WHERE 1=1" ' piccola bastardata per mettere dopo gli AND a cuor leggero :) If Not IsNull(Me.NomeCampoRicercaCodice) Then strSql = strSql & " AND [PRODOTTI].[PRODOTTO_CODICE] LIKE '*" & Me.NomeCampoRicercaCodice & "*'" End If If Not IsNull(Me.NomeCampoRicercaDescrizione) Then strSql = strSql & " AND [PRODOTTI].[PRODOTTO_NOME] LIKE '*" & Me.NomeCampoRicercaDescrizione & "*'" End If ' la stringa SQL ottenuta serve a ottenere una nuova lista di record Me.RecordSource = strSql ' aggiorna il contenuto della maschera Me.Requery End Sub
Ora funziona!!!!
Grazie 1000000!![]()
my pws: cafedelsol.it
il presente non ha estensione. è soltanto il continuo tradursi del futuro nel passato.
Bene
Ora, se hai bisogno di ulteriori filtri, puoi facilmente personalizzare l'sql finale e aggiungere nell'intestazione delle combobox, dei campi testo, dei radio button ecc...