Newsgroup: it.comp.lang.visual-basic
Titolo: Non riesco a costruire una query

Con le query non sono mai stato un "drago".
Non riesco a costruire una query sintaticamente corretta....
Ho due database:
Clienti
Anamnesi
con le rispettive tabelle:
Clienti (vari campi presenti tra cui COGNOME, NOME)
Anamnesi (vari campi presenti tra cui COGNOME,NOME.MEDBASE)
Dovrei filtrare in Clienti il COGNOME E NOME in base al campo
MEDBASE=variabile presente solo in Anamnesi.
So che dovrei usare Inner Join (o sbaglio?),ma non riesco a venirne fuori.
Qualcuno ha voglia di darmi una mano?
Grazie
--
Gulp
....forse mi sono perso qualcosa !

oOOPS : Access !!



Dovendo fare una select che coinvolge due database distinti, occorre
conoscere il dbms a cui ti appoggi.
Supponendo di parlare di due database Sql-Server gestiti sullo stesso
server, la sintassi è, indicativamente:
Select A.Cognome, A.Clienti.Nome, A.AltroCampo
From Clienti.dbo.Clienti as A
Inner Join
Anamnesi.dbo.Anamnesi as B
on A.Cognome=B.Cognome
and A.Nome=B.Nome
Quanto sopra, immaginando che:
- Ti serva un altro campo oltre a Cognome+Nome, altrimenti non ha senso
- Le chiavi di join siano Nome e Cognome (cosa orribile, ma sorvoliamo)
- Il proprietario delle tabelle sia dbo (sempre che siamo in ambiente
Sql-Server).
Ciao
Alberto
--
"Non mi sembra più granda del Delfino..."
"A partir dal fat che la merda liquida
l'as drisa gnan a puntlarla,
còsta chì l'è piò granda, gnuranta."


Se i database non sono database ma sono tabelle, così dovrebbe andare:
select Clienti.COGNOME, Clienti.NOME
from
  Clienti
    inner join Anamnesi on Clienti.MEDBASE=Anamnesi .MEDBASE
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Sql-Server).
Ho visto poi il tuo post in cui parli di Access.
Quindi, al posto di database.dbo metti il nome del database con percorso
(credo).
Ciao
Alberto
--
"Non mi sembra piů granda del Delfino..."
"A partir dal fat che la merda liquida
l'as drisa gnan a puntlarla,
cňsta chě l'č piň granda, gnuranta."

>Albe
Grazie Albe
Avevo provato ,ma continuavo ad incamerare errori....tra cui "guarda caso"
quello di Tabella non  trovata !
Ora proverň.
Grazie
P.S. A proposito, com'č stata l'estate in Adriatico ? ....meglio il Ligure
vero ?


 Ligure vero ?
Quest'estate io sono stato piů in Liguria che in Adriatico, per esigenze di
babysitting, quindi molto terricolo.
Sono comunque andato un paio di volte a navigare, in Adriatico. Ho fatto
anche una bellissima traversata per la Croazia.
Sinceramente, con tutto il rispetto per la Liguria, non credo che la si
possa paragonare alla Croazia.


 si possa paragonare alla Croazia.
Beh se sei stato di la sono pienamente d'accordo, la zona del delta che
lascia un po' a desiderare....
Comunque tornando alla query
Dim medico As String
medico = Text1.Text
datAnamnesiRS.DatabaseName = App.Path & "\anamnesi.mdb"
datClientiRS.DatabaseName = App.Path & "\clienti.mdb"
datClientiRS.RecordSource = "Select
A.COGNOME,A.NOME,A.INDIRIZZO,A.CITTA,A.TELEFONO,A.DATAN From" _
 & " clienti AS A Inner Join anamnesi AS B on A.COGNOME=B.COGNOME" _
 & " And A.NOME=B.NOME Where B.MEDBASE='" & AposDouble(medico) & "'"
datClientiRS.Refresh
Mi da errore dicendo ancora che non trova la tabella ANAMNESI .
La su citata Sub si trova nel Form Clienti ove sono presenti entrambi gli
oggetti DAT collegati alle rispettive tabelle *.mdb, anche se per prudenza
ho ripetuto il DatabaseName anche da codice.
Controlla, per favore che non vi siano anche altri errori nella query che ho
un po' cambiato(forse interpretato) copiando la tua sintassi.
Ciao e Grazie
--
Gulp

Capito, forse dovrei prima collegare (importare) anche la tabella
anamnesi.mdb in datClientiRS che già contiene clienti.mdb...poi facendo la
query al datClientiRS.RecordSource dovrebbe trovarla.
Come "importo" la seconda tabella nello stesso db da codice ?
Grazie


  & " clienti AS A Inner Join anamnesi AS B on A.COGNOME=B.COGNOME" _
Non uso Access, ma credo che il path dei db possa essere messo direttamente
nel From, scimmiottando un po' quello che avevo scritto io, ma esplicitando
tutto il percorso anzichč il solo nome del db.
Ciao
Alberto