Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 10 su 10

[Access 2010 ] ricerca dati emulazione motore ricerca

  1. #1
    max-paso non è in linea Scolaretto
    Buongiorno a tutti
    Mi piacerebbe implementare sul mio DB la possibilità di ricercare dati emulando un pò un motore di ricerca.
    Essenzialmente la ricerca è concentrata in un'unica tabella ma deve essere fatta in tutti i campi e posso anche dare solo una parte di stringa.
    Il problema penso + grosso sarà mostrare i risultati, ottimo sarebbe come accade in un motore ricerca web, ma mi accontento di una query che mostri tutti i record dove appare il testo ricercato

    Immagino che non sia la prima volta che viene pensata una cosa simile, se cortesemente potessi avere delle indicazini, esempi o almeno una direzione da seguire, ve ne sarei grato.
    La mia conoscenza di Access e vba non è eccelsa ma navigo abbastanza.
    Grazie per l'imbeccata
    Massimo

  2. #2
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Quello che stai cercando di fare è una cosiddetta ricerca "Full-Text", ma se non ricordo male Access non la supporta.
    Però puoi porre rimedio strutturando la query nel seguente modo:

    SELECT * FROM Anagrafica WHERE Nome & ' ' & Cognome & ' ' & Indirizzo & ' ' & AltriCampi LIKE '%StringaParziale%'
    
    In pratica usi come "campo" sul quale effettuare la ricerca, una concatenazione di campi.
    StringaParziale è, ovviamente, la stringa da cercare nei campi concatenati e può essere passata via codice VBA, sulla base di quanto scritto in un TextBox, ad esempio.

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  3. #3
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    A corollario, mi riferisco al fatto che con Access si usa DAO di conseguenza il JOLLY CHAR non è % ma *...
    ℹ️ Leggi di più su @Alex ...

  4. #4
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    A corollario, mi riferisco al fatto che con Access si usa DAO di conseguenza il JOLLY CHAR non è % ma *...
    Giusto... il mio esempio era mutuato dall'uso di ADO in VB6
    Grazie per la precisazione

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  5. #5
    L'avatar di dodo47
    dodo47 non è in linea Topo di biblioteca
    ...e visto che ci siamo, ci aggiungiamo anche ".... o no?
    ...LIKE '*" & StringaParziale & "*'"

  6. #6
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Nel caso di un utilizzo da VBA, certamente si... per un uso diretto in query di Access, potrebbe bastare il semplice inserimento del parametro tramite l'InputBox

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  7. #7
    max-paso non è in linea Scolaretto
    Grazie a tutti,
    Sta funzionando , ma ho ancora una domanda:
    Purtroppo ho chiamato dei campi della tabella con un - invece di usare _ (Esempio : Nome-Cognome) e così non riesco ad usare questa stringa di comando per creare la Query
    Immagino che ci sia la possibilità ma dopo un pò di prove aggiungendo & oppure ' " mi sono perso.
    Mi aiutate ?

    Grazie mille
    Saluti
    Massimo

  8. #8
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    devi utilizzare le parentesi quadre per racchiudere il nome del campo: [Nome-Cognome]

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  9. #9
    max-paso non è in linea Scolaretto
    OK!
    Risolto, grazie per l'aiuto.
    Adesso però , (tempo permettendo) mi piacerebbe fare qualche cosa di + serio, attualmente cerco tra 12 campi e redirigo l'output in un report riassuntivo.
    Sarebbe bello filtrare un pò di + la ricerca magari impostando da maschera su che campi fare la ricerca, pensavo con dei flag , ma poi dovrei generare dinamicamente la stringa SQL giocando con le stringhe...
    E' la via giusta o ci sono altre metodi + intelligenti?
    Anche l'output è un pò penoso, forse perchè mi sono abituato ai risultati mostrati dai + comuni motori di ricerca .. ma per ora mi accontento.

    Grazie ancora
    Massimo

  10. #10
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Prova a vedere se questa tecnica ti può essere utile:
    http://forum.masterdrive.it/access-7...runtime-17431/
    ℹ️ Leggi di più su @Alex ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Access 2010 - ricerca dati con dao con findfirst
    Da l090999 nel forum Microsoft Access
    Risposte: 7
    Ultimo Post: 08-09-2015, 14:00
  2. Motore di ricerca web directory
    Da fabio90 nel forum PHP
    Risposte: 3
    Ultimo Post: 06-06-2012, 08:11
  3. Motore di ricerca nel sito
    Da motoboy nel forum Altri linguaggi e strumenti
    Risposte: 6
    Ultimo Post: 27-03-2009, 21:31
  4. Motore di ricerca per prezzo
    Da paperino nel forum PHP
    Risposte: 5
    Ultimo Post: 21-08-2007, 09:50
  5. Motore di ricerca in un sito
    Da stef nel forum HTML, CSS e JavaScript
    Risposte: 11
    Ultimo Post: 09-11-2003, 20:17