Epressione in una query

di il
7 risposte

Epressione in una query

Buonasera a tutti
in una query ho la necessità di inserire come criterio un campo di una tabella.
tuttavia, l'ultimo carattere che compone il nome di tale campo deve essere uguale alla variabile temporanea creata ad inizio sessione.
per esempio
se la variabile assegnata ad inizio sessione è uguale a 1 il nome campo dovrà essere [Tabella]![nomecampo1]
è fattibile?
che tipo di espressione devo usare nella query?
grazie in anticipo!

7 Risposte

  • Re: Epressione in una query

    Io non ho capito nulla. Potresti inquadrare tutto lo scenario usando i nomi propri di tutti gli oggetti e campi?
  • Re: Epressione in una query

    Ciao, utilizzi vba per settare la variabile? Come suggerito da Osvaldo fornisci qualche indicazione in più...
  • Re: Epressione in una query

    Ok, scusate ma sono un dilettante
    si tratta di creare una query dove si confronti un campo della tabella A con uno della tabella B, e, ove essi fossero diversi, il campo della tabella B deve essere modificato e uniformato come valore a quello della tabella A
    ma mentre il campo della tabella A è unico, nella tabella B ho 9 campi dello stesso tipo, nominati campo1, campo2, campo3.....campo9 contenenti i valori di confronto, e debbo sceglierne uno in base ad una variabile temporanea il valore della quale viene assegnato all'inizio della sessione in base all'utente che avvia la sessione stessa
    il problema dunque è se sia possibile (e come) integrare in un'espressione il formato [Tabella]![NomeCampox] dove la x è la variabile assegnata ad inizio sessione ed utilizzare l'espressione nella clausola where
    grazie dell'aiuto
  • Re: Epressione in una query

    Dovresti fare una funzione Public che restituisca il criterio... ed inserirla nella Query...
    L'importante è tu comprenda come sanare quella configurazione errata... perché non è possibile gestire i dati in questo modo.
  • Re: Epressione in una query

    nella tabella B ho 9 campi dello stesso tipo, nominati campo1, campo2, campo3.....campo9
    Mi sbaglierò ma credo che potrebbero bastare anche solo 2 colonne... una il campo da confrontare e l'altra l'utente cui si riferisce... per vederle in orizzontale si può usare la query a campi incrociati...
    [Tabella]![NomeCampox] dove la x è la variabile assegnata ad inizio sessione
    tuttavia per fare quello che chiedi hai bisogno di riscrivere il predicato SQL della query da codice sostituendo la parte variabile.

    Se la query è un oggetto esterno non ospitato in una maschera c'è un procedimento da seguire...
    CurrentDb.QueryDefs("Query2").SQL = "SELECT [Tabella]![nomecampo" & valorevariabile & "] FROM Tabella1;"
    se invece la query è l'origine dati di una maschera il procedimento è leggermente diverso...
    me.recordsource = "SELECT [Tabella]![nomecampo" & valorevariabile & "] FROM Tabella1;"
    i nomi degli oggetti sono ovviamente da rivedere...

    ciao
  • Re: Epressione in una query

    Angelo_Tbp ha scritto:


    ...
    ciao
    Se questo suggerimento dovesse trovare approvazione... direi che sarebbe conferma che un grande errore di base è da risolvere... perché queste cose non si possono vedere.
    In ogni caso...
  • Re: Epressione in una query

    Grazie a tutti, sistemato!
Devi accedere o registrarti per scrivere nel forum
7 risposte