Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
[Access 2003] Query su nome campo
mercoledì 18 maggio 2011 - 10.07
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
AJet
Profilo
| Newbie
10
messaggi | Data Invio:
mer 18 mag 2011 - 10:07
Ciao a tutti!
Avrei bisogno del vostro aiuto: io ho a disposizione un DB access 2003 e ho necessità di estrarre da alcune delle mie tabelle un certo campo, che è poi quello in cui è riportato il nome degli oggetti contenuti nei record.
Il problema è che questo specifico campo cambia denominazione a seconda della tabella a cui appartiene- per esempio, nella tabella "alimenti" il campo si chiama "nome_alimenti", nella "animali" è "nome_animali" e così via.
La mia domanda è: esiste una possibilità di avere una query "universale" che estragga questo specifico campo, magari applicando il comando LIKE ai nomi dei campi invece che al contenuto dei record?
Per intenderci, qualcosa che suoni tipo "select field like 'nome*' from tabella"
Oppure, in alternativa, esiste una tabella di sistema da cui io possa attingere i nomi dei campi delle mie tabelle, così da poter poi gestire in maniera elastica la selezione del campo?
Grazie sin d'ora a chi saprà darmi una mano- e anche a chi ci proverà!
dinoxet
Profilo
| Senior Member
484
messaggi | Data Invio:
mer 18 mag 2011 - 10:46
prova con questa query :
SELECT* from MSysQueries where flag=0;
fammi sapere se ri è utile
DINOXET
__________________________________________
impossible is only a word
AJet
Profilo
| Newbie
10
messaggi | Data Invio:
mer 18 mag 2011 - 11:21
Hmmm... Grazie del tentativo, ma no, in effetti purtroppo non mi è utile...
Quella tabella contiene, se ho capito bene, una codifica delle query che io ho utilizzato nel mio db.
Quindi applicando il tuo "SELECT* from MSysQueries where flag=0" riesco a recuperare qualcuno dei nomi che interessano a me, ma non tutti (suppongo si tratti dei campi che vengono effettivamente utilizzati in qualche query...)
Ho letto online che nella tabella msysobjects invece dovrebbero esserci TUTTI gli oggetti del mio db... Però boh, i nomi dei campi io non li trovo, riesco a vedere solo quelli delle tabelle.
Hai qualche idea al riguardo?
pedro1975
Profilo
| Newbie
3
messaggi | Data Invio:
mer 18 mag 2011 - 23:10
Io creo di solito una tabella e delle query di accodamento (faccio accodare quello che voglio nelle colonne che voglio) pilotate da un macro.Dalla tabella creo la query e sopra la query la maschera con il pulsante della macro.
Pedro
AJet
Profilo
| Newbie
10
messaggi | Data Invio:
gio 19 mag 2011 - 10:44
>Io creo di solito una tabella e delle query di accodamento (faccio
>accodare quello che voglio nelle colonne che voglio) pilotate
>da un macro.Dalla tabella creo la query e sopra la query la maschera
>con il pulsante della macro.
>
>Pedro
Nel mio caso questa tabella che dici tu conterrebbe i nomi dei campi che voglio, se ho ben capito...
Perché se è così, il mio problema è a monte. Ti spiego... Nel DB ho delle tabelle con dei nomi che rispecchiano i contenuti- MEZZI_DI_TRASPORTO, COLORI ecc.
*In teoria* i campi contenenti i nomi dei record dovrebbero essere codificati in modo da chiamarsi NOME_nomedellatabella (quindi NOME_MEZZI_DI_TRASPORTO, NOME_COLORI ecc), e in questo modo da Visual Basic non avrei difficoltà a tagliare ed incollare le stringhe e costruirmi la query dinamicamente.
Il problema è che chi ha creato il DB in alcune tabelle (non so quali né quante) ha sbagliato la codifica e io adesso mi ritrovo con delle corrispondenze tipo (tabella "ANIMALI" e campo "NOME_ANIMALE").
Quindi mi servirebbe uno strumento che riesca a recuperare automaticamente tutti i campi che mi servono, altrimenti dovrei restarmene lì a scrivere query specifiche per ogni singola tabella... Il che non solo è mostruosamente dispendioso in termini di tempo, ma necessita aggiornamento ad ogni nuova tabella inserita!
pedro1975
Profilo
| Newbie
3
messaggi | Data Invio:
gio 19 mag 2011 - 11:15
SCusami se ti do magari una risposta tempestiva a freddo poi lo valuterò.
Quello che sto cercando di farti capire è che io posso incanalare tutto quello che voglio sono io che decido con le query di accodamento.
Esempio ho due tabelle una con campo macchine e una con il campo persone.
Voglio che questi due campi vadano sotto la stessa colonna per poterli filtrare lo posso fare con gli accodamenti.
DEvi solo identificare tutte le tabelle e le loro colonne.
AJet
Profilo
| Newbie
10
messaggi | Data Invio:
gio 19 mag 2011 - 11:26
>SCusami se ti do magari una risposta tempestiva a freddo poi
>lo valuterò.
>Quello che sto cercando di farti capire è che io posso incanalare
>tutto quello che voglio sono io che decido con le query di accodamento.
>Esempio ho due tabelle una con campo macchine e una con il campo
>persone.
>Voglio che questi due campi vadano sotto la stessa colonna per
>poterli filtrare lo posso fare con gli accodamenti.
>
>DEvi solo identificare tutte le tabelle e le loro colonne.
No, non ti preoccupare, anzi, grazie della disponibilità!
Però è proprio quello che io non riesco a fare... Cioè, usando i tuoi esempi, io sono in una situazione tipo:
La tabella Macchine ha il campo nome_macchine (il che è corretto: da vb mi basta prendere la string nometabella, che conterrà la parola "macchine", appiccicare all'inizio i caratteri "nome_" e il gioco è fatto, posso recuperare tranquillamente il contenuto del campo)
La tabella Persone, invece, ha come campo "nome_personA". E qui vedi bene che non mi vale più il trucco di incollare un pezzetto alla stringa... Quindi non posso usare la stessa query di prima, ne devo costruire una ad hoc
(if nometabella = "persone" then
query_persone = "select nome_persona from persone"
end if).
Mi andrebbe anche bene se si trattasse di un'unica tabella, ma io devo lavorare su 50 (e su un DB in espansione)...
pedro1975
Profilo
| Newbie
3
messaggi | Data Invio:
gio 19 mag 2011 - 11:30
mandami il database a francescopedrini@cascinaalta.it e dimmi cosa vuoi ottenere come tabella finale.
Se vuoi stasera gli do un occhio
AJet
Profilo
| Newbie
10
messaggi | Data Invio:
gio 19 mag 2011 - 11:36
Ehm... Non posso mandarti il db originale perché contiene anche dati personali di pazienti...
Se hai pazienza, nella pausa pranzo posso mettere insieme un DB ad hoc con solo quattro o cinque tabelle e un paio di record ciascuna, giusto per farti capire il problema!
Grazie mille per il tuo aiuto, sei davvero molto gentile!
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !