Newsgroup: it.comp.lang.visual-basic
Titolo: [Confrontare chiavi]come posso fare?

Salve,
vengo subito al sodo,
ho due db access con una tabella entrambi un campo chiave contenete dei
codici articolo,es.
db1.mbb -> tabella1 -> codice1
db2.mbb -> tabella2 -> codice2
bene,vorrei controllare se i codici sul db1 sono quelli contenuti in
db2,nel senso che ,nel caso in db2 ci fossero altri codici mi venisse
segnalato.
db1             db2
cod1            cod1
cod2            cod2
cod3            cod3
cod4            cod4
                cod5
                cod6
La (query ?) mi dovrebbe ritornare i codici 5 e 6.
Grazie infinite
R.Zanni
 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 La (query ?) mi dovrebbe ritornare i codici 5 e 6.
Vediamo se la memoria mi assiste:
SELECT * FROM db2 WHERE db1.campo NOT IN (SELECT db1.campo FROM db1)
Ciao

 Ciao
ciaociao

Marg ha scritto:

Sě, altrimenti il motore SQL entra in loop e fonde la macchina ;)
Ciao

Grazie di cuore per la veloce risposta,
ho provato ad aggiungerla cosě al mio "prg" ma va in errore di sintassi.
Set rst400 = dbs.OpenRecordset("SELECT * FROM dbs400 WHERE Codice NOT IN
(SELECT T01Codice FROM dbs")
Scusa ma sono veramente una frana con le query,puoi dirmi dove sbaglio?
Grazie nuovamente
R.Zanni
PS
Hai qualche buon libro o materiale in "rete" sull'sql da suggerirmi?


 Scusa ma sono veramente una frana con le query,puoi dirmi dove sbaglio?
E dove devrebbe trovarlo Codice secondo te?
E poi, le query provale prima in Access, no?
Ciao

 sbaglio?
La parentesi chiusa finale deve stare all'interno del comando.
Il comando è fisicamente delimitato da "

 R.Zanni
ciaociao


azz.. questa proprio mi era sfuggita!
(x Rodolfo): comunque vale sempre quello che ho scritto nel post precedente
ciaociao

 azz.. questa proprio mi era sfuggita!
E a me è sfuggito che, comunque, ce ne vuole un'altra, fuori dal comando,
per chiudere il dbs.OpenRecordset (diciamo quella che c'è)


Eggià! :-P
ciaociao

IO ho fatto così ma continua ad darmi questo errore:
'***APRE I DB DEI CODICI
Set dbs400 = OpenDatabase(PercorsoDb & "\dbArticoli.mdb", False)
Set dbs = OpenDatabase(PercorsoDb & "\dbDisegni.mdb", False)
Set rst400 = dbs.OpenRecordset("SELECT * FROM dbs400 WHERE
t_articoli.Codice NOT IN (SELECT T01Disegni.T01Codice FROM dbs")
-----------------------
ERRORE DI RUN-TIME '3075'
),]| mancante nell'espressione della query 'Codice NOT IN(SELECT 
T01Codice FROM dbs'
-----------------------
In dbArticoli.mdb il campo è Codice e la tabella t_articoli
In dbDisegni.mdb il campo è T01Codice la tabella T01Disegni
Scusa,mi rendo conto che mi sto approffittando della tua
disponibilità,ma sono veramente
nelle canne...
Grazie


 T01Codice FROM dbs'
Più chiaro di così si muore...

 In dbDisegni.mdb il campo è T01Codice la tabella T01Disegni
Che casino!!!
Set rst400 = dbs.OpenRecordset("SELECT * FROM T01Disegni WHERE" & PercorsoDB
& "\dbArticoli.t_articoli.Codice NOT IN (SELECT T01Codice FROM T01Disegni)")
Oppure:
Set rst400 = dbs400.OpenRecordset("SELECT * FROM t_articoli WHERE" &
PercorsoDB & "\dbDisegni.T01Disegni.T01Codice NOT IN (SELECT Codice FROM
t_articoli)")

Grazie a tutti per gli aiuti,siete stati veramente gentile
Saluti


t_articoli)")
Errore di sintassi nella proposizione FROM
Sto affondando...aiuto
R.Zanni
Mi sdebiterò con qualche disegno...


 Mi sdebiterň con qualche disegno...
Non ho provato, ma secondo me ci sono 2 problemi:
1) dopo la parola WHERE ci vuole uno spazio
2) il percorso del database non va scritto cosě, ma bensě utilizzando la IN
ciaociao

 
Il problema è che ti ostini a provarlo da VB.
PROVALO DA ACCESS! (e 2)
Ciao

 Hai qualche buon libro o materiale in "rete" sull'sql da suggerirmi?
http://www.sir.com.au/help/sql_index.htm
Ave
giuseppeD

 la IN
Questa non la comprendo... Chiarimenti?


ciao Lupo, scusa se rispondo solo oggi ma sono stato da un cliente per
qualche giorno....
Allora:
a parte il fatto che adesso, rileggendo la query, mi sono accorto che non ha
molto senso....
se non c'č una join nella select, non si puň costruire la where sui dati di
un'altra tabella.
Per l'utilizzo della IN ti faccio un esempio:
INSERT INTO tabella1 SELECT * FROM tabella2 IN 'c:\db2.mdb'
dove 'tabella1' sta in 'c:\nuova cartella\db1.mdb'
ciaociao