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