Newsgroup: it.comp.appl.access
Titolo: problemi con findfirst e posizionamento record

Salve a tutti
ho un problema abbastanza strano. Da una sottomaschera
all'aggiornamento dei dati in un campo (chiamiamolo "mio") voglio
verificare se esistono corrispondenze con un altra tabella non
relazionata a quella sulla quale opero verificando che "mio" e "x"
nella tabella uno esistano in uno dei record della tabella2. Nel caso
esistano il valore di mio della tabella1 dovrebbe sommarsi a quello
corrispondente nella tabella2, senno aggiungere un nuovo record.
ho provato cosi
private sub mio_afterupdate
dim db as dao.database
dim rst as dao.recordset
set db = currentdb
set rst = db.openrecordset("tabella2", dbopendynaset)
rst.findfirst "mio =" & rst.[mio]
tralascio il resto perchè il problema è qui.... in effetti verificato
con msgbox il metodo trova il record, o almeno credo, perchè poi in
realtà l'aggiunta la fa sul PRIMO record di tabella2 e non su quello
trovato....
non capisco....
ho provato con una select.... ho provato con un semplice if cercando
di far scorrere il recordset con un do .... loop fino alla fine, però
non si muove dal primo, per cui se i criteri sono soddisfatti al primo
record bene sennò niente, non si schioda da lì. Che può essere?
preciso che uso un access2007 e sono caricate le librerie vba,
microsoft 12.0 object library, dao 3.6, ole automation
grazie a chi potrà essermi di aiuto e buon fine anno a tutti


niente trovato.... problema di sintassi... come l'avevo scritto io il
findfirst trovava soddisfatti i criteri alla prima occorrenza sempre
perchè il "mio =" era il campo nel quale cercare e rst![mio] lo stesso
campo quindi....
adesso ho provato a fargli fare la ricerca su tutti e due i campi
"mio" e "x" ed ho scritto
rst.findfirst "mio =" & 'variabile del valore' And "x =" & 'seconda
variabile'
ma mi dice tipo non corrispondente....
non è possibile stabilire più di un criterio con findfirst?

 rst.findfirst "mio =" & rst.[mio]
Immaginando che [mio] sia il campo NUMERICO
di una tabella ed anche il controllo di una scheda:
rst.FindFirst "[mio]=" & [mio]
deve funzionare, essendo il primo [mio] il campo
della tabella, il secondo il controllo della scheda.
Se poni rst! davanti al secondo... cerca nelle sue tasche
e si trova sempre.
Con più condizioni:
rst.FindFirst "[mio]=" & [mio] & " And  [tuo]=" & [tuo]
I primi sono campi della tabella, i secondi controlli della scheda.
Parliamo sempre di campi NUMERICI.
Bruno

 wrote in message

grazie
e nel caso, e questo è il caso, che mio sia numerico e tuo sia un
campo di testo (per la precisione una lista di valori di testo) che si
fa?


fatto
rst.findfirst "mio=" & mio "and tuo=' " & tuo.value & " ' "
cioè una questione di apici.... funziona anche se non ho capito bene
il perchè (ho solo trovato un esempio di sistemazione degli apici)
grazie e buon anno
Peppe

 wrote in message 
news:10e80b93-49d1-4d0f...@o40g2000prn.googlegroups.com...
fatto
rst.findfirst "mio=" & mio "and tuo=' " & tuo.value & " ' "
cioč una questione di apici.... funziona anche se non ho capito bene
il perchč (ho solo trovato un esempio di sistemazione degli apici)
grazie e buon anno
Peppe
================================
Io la scriverei cosě:
rst.FindFirst "[mio]=" & [mio] & " And [tuo]='" & [tuo] & "'"
senza  .Value o inutili spazi.
Questione di stile, unicuique suum.
Bruno 

 Bruno
Hai ragione Bruno sul .Value... sugli spazi e solo perchè chi legga il
post alla ricerca di una soluzione per lo stesso o simile problema
capisca quali sono le virgolette e quali gli apici che spesso non si
capisce... nel codice ovviamente non ho lasciato spazi inutili...
Comunque ti ringrazio molto per l'interesse.. frequentando il NG mi
sono reso conto che spesso anche solo la possibilità di confronto
aiuta a trovare soluzioni... Buon Anno
Peppe

 wrote in message 
news:e744b687-5ffd-4cb5...@r10g2000prf.googlegroups.com...



============================
Buon Anno!
Bruno