[MS Access] Concatenare due campi

  • Creatore Discussione Creatore Discussione WebDr
  • Data di inizio Data di inizio

WebDr

Nuovo Utente
20 Mar 2017
17
4
3
69
Padova
Ho un database Access 2007 che dovrei interrogare con una query da asp concatenando due campi, la query è questa:
Codice:
sql="SELECT COGNOME &  '  ' & NOME) AS NOMECOMPLETO FROM clienti WHERE NOMECOMPLETO =' " & stringa & " ' "
Naturalmente non va.
 
La soluzione è la seguente:

sql="SELECT COGNOME & ' ' & NOME AS NOMECOMPLETO FROM clienti WHERE COGNOME & ' ' & NOME =' " & stringa & " ' "

più correttamente sarebbe :

sql="SELECT COGNOME & ' ' & NOME AS NOMECOMPLETO FROM clienti WHERE COGNOME & ' ' & NOME = " & Chr(34) & stringa & Chr(34)

in quanto se stringa contiene l'apostrofo, es: D'Auria Mario, l'esecuzione della query causerebbe un errorre.
Rimane il fatto che non ha senso questa query in quanto quello che ti restituisce è quello che hai cercato, credo che dovresti dire quale è l'obbiettivo che vorresti raggiungere.
 
Quella che hai scritto tu non serve, ma è diversa da quella da cui partivo io. In una pagina asp risevo con request.query un NOMECOMPLETO inteso come nome + cognome, allora se nome più cognome fosse ad es. anna lucia dalla vecchia il problema è trovare questa signora inserita in una tabella in cui Cognome e Nome sono due campi separati.
 
Scusa, fammi capire :
  1. stringa è il valore che la pagina ti restituisce
  2. NOME e COGNOME sono i campi della tabella clienti dove devi ricercare se la persona esiste o meno
se così fosse la query è esattamente
sql="SELECT COGNOME & ' ' & NOME AS NOMECOMPLETO FROM clienti WHERE NOME & ' ' & COGNOME = " & Chr(34) & stringa & Chr(34)

dove :
  1. NOMECOMPLETO è l'alias che asegni alla concatenazione dei campi COGNOME e NOME e rapprsenta il valore che ti restituisce l'interrogazione
  2. La condizione WHERE non può essere effettuata sull'alias ma solo sulla concatenazione dei campi NOME e COGNOME
 
Ok. Ti ringrazio del chiarimento, la proverò appena ho un attimo. ma a questo punto posso semplificare la query:
Codice:
sql="SELECT * FROM clienti WHERE NOME & ' ' & COGNOME = " & Chr(34) & stringa & Chr(34)

Per me è una cosa nuova che dopo il Where fosse possibile la concatenazione.
 

Discussioni simili