Access con "campi ricerca": recupero SQL tramite VBA

Anonimo
2019-04-14T17:19:08+00:00

Buonasera,

mi trovo, mio malgrado, un DB che ha nella definizione delle tabelle alcuni "campi ricerca", molto comodi per visualizzare subito il valore descrittivo ma un po' meno negli altri casi, dove "ricompare" il valore della "Colonna associata".

Sarebbe talvolta utile poter recuperare con VBA il dato visibile (diciamo quello della seconda colonna), ma non sono riuscito a capire come: ovvio che posso riscrivermi la ricerca "a mano", ma immagino in qualche tabella di sistema sia memorizzata l'istruzione SQL (o una DlookUp() ) che recupera il dato, così com'è definito nella "Ricerca".

Ringrazio in anticipo se qualcuno mi sa dare risposta.

Ivo

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

6 risposte

Ordina per: Più utili
  1. Anonimo
    2019-04-14T19:47:25+00:00

    ciao Ivo53,

    ultimo tentativo perché forse ancora non ho capito.

    hai scaricato l'esempio che ti ho postato?

    Hai notato cosa espone la tabella prodotti nel campo fornitore? la descrizione del fornitore in quanto al colonna relativa alla pk è quella associata ma visualizza la descrizione.

    Hai notato invece cosa visualizza la proprietà colum della combo della form ? Visualizza non la pk numerica ma ancora la descrizione.

    Perché ? Perché l'origine riga ad essa associata include in join non solo la tabella prodotti ma anche i fornitori da cui si estra la descrizione al posto della pk numerica.

    Controlla il predicato e prova ad elminare le tabelle in join ed estrarre l'ìdFornitore vedrai che visualizzerai il numero.

    Concludo...se è questo che stai cercando di ottenere, ok , altrimenti boh….vediamo cosa dicono gli altri..!;-)

    Buona serata anche a te e buon inizio di settimana.

    Ciao!

    Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2019-04-14T19:25:34+00:00

    Scusa, ma cerco di spiegarmi in modo diverso, partendo dall'esempio sopra riportato (e che ricopio).

    Il campo con "Ricerca" (chiamiamolo "Marca") ha come "Colonna associata" nella tabella "tblMarca" la colonna n. 1 (Colonna associata = 1); però, a video, mi viene mostrata la colonna n. 2 (derivante da "Numero colonne=2" e "Larghezza colonne=0"), in cui

    • supponiamo - c'è la "Descrizione" recuperata dalla tabella "tblMarca". Giusto? Perfetto!

    Io vorrei, in VBA (indipendentemente da maschere o report e relativi Controls!) riprodurre la medesima situazione: Routine

    "Function TrovoDescrizione(IDDescr) as string

     …..

    TrovoDescrizione=DllokUp("IdDescr", "tblMarca", "Id =" & "IddEscr"")

    (doppio apice più, doppi apice meno nella DlookUp() - che ho scritto così come mi è venuta);

    End Function

    Verissimo che questa Function (o Property, se preferisci) me la posso scrivere a mano; immagino tuttavia che l'istruzione di ricerca sia memorizzata in qualche tabella di sistema di Access (c'è tutto, ci sarà anche questa, giusto?).

    La mia domanda è questa. Si può recuperare questa definizione dalle tabelle di sistema? Credo di sì, ma al momento attuale non saprei dove e come.

    Grazie ancora per la disponibilità.

    Buona serata e buon inizio settimana

    Ivo

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2019-04-14T19:00:11+00:00

    ciao Ivo53,

    dubito di avere capito, ma se è la proprietà column la soluzione vedi se  QUESTO ti aiuta.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2019-04-14T18:03:44+00:00

    Ciao, Sandro,

    io vorrei proprio recuperare via VBA il contenuto "visibile" del dato.

    Se definisco un RescordSet del tipo "SELECT ID, Marca_Prodotto FROM …" (rifacendomi un po' all'immagine precedente, in cui Marca_Prodotto è il "campo Ricerca" e quindi valorizzato ad es. al valore 5- come "Colonna associata"), vorrei ottenere, da VBA, i seguenti valori: ID = 1 (ad es.); Marca_Prodotto = "Melegatti" (mentre, invece, ottengo 5, a meno di farmi il DlookUp() sulla tabella tblMarca dove ci sono tutte le marche e dove - nell'esempio - in corrispondenza dell'ID=5 trovo "Melegatti"). Ovvio che posso farlo a mano, ma - credo - il tutto dovrebbe essere memorizzato in qualche tabella di sistema - ma non ho trovato ancora quale.

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2019-04-14T17:30:38+00:00

    ciao Ivo53,

    come detto meglio non usarli….

    non ho capito cosa intendi con recuperare con VBA il dato visibile...

    Se stai lavorando da una form, puoi utilizzare la proprietà column della combo che ha base 0.se invece ti riferisci ad una query, nel DB di northWind hai un esempio in cui appunto con una query, prezzo unitario viene "estratto" automaticamente dalla tabella prodotti.

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento