Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

spostarsi alla prima occorrenza

5 views
Skip to first unread message

cio

unread,
Nov 24, 2009, 9:45:21 AM11/24/09
to
ciao,

sto continuando il mio progettino.

Ho preso il valore di una TextBox e l'ho messo in una variabile.

Poi ho eseguito la seguente

CodProd= DLookup("[IDCodiceProdotto]", "Tabella2", BarcodeIns)

e ottengo la orima occorrenza (ed unica) del codice prodotto associato alla
stringa contenuta nella variabile BarcodeIns.

A questo punto dovrei cercare nella Tabella1 nel campo specifico il valore
CodProd, spostarmici, aggiornare il valore e salvare il dato.

Come dovrei procedere per i primi due punti? Ho gi� fatto scritto la
procedura per incrementare/decrementare il valore ma prima mi devo spostare
sul record corretto.

In alternativa potrei cercare la prima occorrenza del valore in CodProd e
spostarmi al numero di record corrispondente, ma come posso fare ad ottenere
il numero di record in cui sono?

Grazie 1000 a chi mi risponder�.

cio


marcopio

unread,
Nov 25, 2009, 2:58:00 AM11/25/09
to
On 24 Nov, 15:45, "cio" <c...@cio.it> wrote:
> ciao,
>
> sto continuando il mio progettino.
>
> Ho preso il valore di una TextBox e l'ho messo in una variabile.
>
> Poi ho eseguito la seguente
>
> CodProd= DLookup("[IDCodiceProdotto]", "Tabella2", BarcodeIns)
>
> e ottengo la orima occorrenza (ed unica) del codice prodotto associato alla
> stringa contenuta nella variabile BarcodeIns.
>
> A questo punto dovrei cercare nella Tabella1 nel campo specifico il valore
> CodProd, spostarmici, aggiornare il valore e salvare il dato.
>
> Come dovrei procedere per i primi due punti? Ho già fatto scritto la

> procedura per incrementare/decrementare il valore ma prima mi devo spostare
> sul record corretto.
>
> In alternativa potrei cercare la prima occorrenza del valore in CodProd e
> spostarmi al numero di record corrispondente, ma come posso fare ad ottenere
> il numero di record in cui sono?
>
> Grazie 1000 a chi mi risponderà.
>
> cio

Io uso sempre una query chiamata qryStandard, tu puoi darci il nome
che vuoi, è sufficiente che esista nel tuo db.
ho presupposto che in Tabella2 il record lo identifichi con
IDCodiceProdotto, il campo da aggiornare con CampoDaAggiornare:

CurrentDb.QueryDefs("qryStandard").SQL = "UPDATE Tabella2" _
& " SET Tabella2.CampoDaAggiornare= '" & Valore & "'" _
& " WHERE (((Tabella2.IDCodiceProdotto)='" & CodProd & "'))"
CurrentDb.QueryDefs("qryStandard").Execute

HTH, mpio.

cio

unread,
Nov 25, 2009, 6:31:02 AM11/25/09
to

"marcopio" <mdre...@more-oxy.com> ha scritto nel messaggio
news:ee05ab5f-00ae-4692...@s31g2000yqs.googlegroups.com...

On 24 Nov, 15:45, "cio" <c...@cio.it> wrote:

>Io uso sempre una query chiamata qryStandard, tu puoi darci il nome

>che vuoi, � sufficiente che esista nel tuo db.


>ho presupposto che in Tabella2 il record lo identifichi con
>IDCodiceProdotto, il campo da aggiornare con CampoDaAggiornare:

>CurrentDb.QueryDefs("qryStandard").SQL = "UPDATE Tabella2" _
> & " SET Tabella2.CampoDaAggiornare= '" & Valore & "'" _
> & " WHERE (((Tabella2.IDCodiceProdotto)='" & CodProd & "'))"
>CurrentDb.QueryDefs("qryStandard").Execute

ciao

tiu ringrazio non sono ancora riuscito a provare la tua query perch� ho un
problema prima.

Ho trovato il CodProd da inserire per aggiornare, ma mi manca il Valore di
partenza per calcolare l'incremento/decremento.

La prima parte mi funziona bene

CodProd = DLookup("[IDCodiceProdotto]", "Tabella2", BarcodeIns)

A questo punto devo estrarre il valore corrispondente al CodProd da inserire
nella variabile Valore (Integer)

Valore = DLookup("[Carico]", "Tabella1", CodProd)

Purtroppo per� mi dice che il si � verificato un Errore run-time 3075 Errore
di di sintassi (operatore mancante).

Onestamente non capisco dove sia l'errore formale visto che in debug la
variabile CodProd � correttamente valorizzata...

Queste sono l edichiarazioni di variabili all'inizio...

Dim BarcodeIns As String
Dim CodProd As String
Dim Valore As Integer

Dove sta il problema? Il campo Carico in Tabella1 NON � chiave primaria, non
so se � necessario per usare correttamente DLookup...

cio


Marco Pizzamiglio

unread,
Nov 25, 2009, 7:57:31 AM11/25/09
to
cio ha scritto:

> ciao


Non basta mettere il valore come condizione della dlookup, devi
specificare tutta la condizione.
Es.: DLookup("[Carico]", "Tabella1", "CodProd=" & CodProd)
Per la query di aggiornamento basta che usi questo sistema:
UPDATE ... SET Campo=Campo-1;
Ciao.
-Marco-


--

questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ab...@newsland.it


cio

unread,
Nov 26, 2009, 2:53:37 AM11/26/09
to

"Marco Pizzamiglio" <marco.pi...@gmail.com> ha scritto nel messaggio
news:hej9jr$tqc$1...@news.newsland.it...

>
> Non basta mettere il valore come condizione della dlookup, devi
> specificare tutta la condizione.
> Es.: DLookup("[Carico]", "Tabella1", "CodProd=" & CodProd)
> Per la query di aggiornamento basta che usi questo sistema:
> UPDATE ... SET Campo=Campo-1;
> Ciao.
> -Marco-

ciao

ho inserito questa

Valore = DLookup("[Carico]", "Tabella1", "CodProd=" & CodProd) ma mi da lo
stesso errore di prima

Errore di Run-Time 3075

Errore di sintassi (operatore mancante) nell'espressione della query
'CodProd=AAAAAA'.

Se gli do debug mi valorizza correttamente il valore della variabile
CodProd=AAAAAA, ma nella variabile Valore mi mette 0 mentre il valore
corretto � un altro.

non capisco cosa si aspetta e perch�, invece, con la funzione appena sopra
funziona semplicemente mettendo la stessa variabile BarcodeIns (String) come
condizione...:

BarcodeIns = CaricoScarico.Text

CodProd = DLookup("[IDCodiceProdotto]", "ConsumabiliCarico", BarcodeIns)

Non capisco la funzione cosa vuole che gli passi... di che operatore parla?

Grazie 1000 a chi mi risponder�

cio


cio

unread,
Nov 26, 2009, 3:14:19 AM11/26/09
to

"cio" <c...@cio.it> ha scritto nel messaggio news:helc4u$2o7$1...@aioe.org...

> CodProd = DLookup("[IDCodiceProdotto]", "ConsumabiliCarico", BarcodeIns)
>

ciao

questa � la riga corretta e che mi da il valore giusto nel campo carico

Valore = DLookup("[Carico]", "Tabella2", "[IDCodiceProdotto] = '" & CodProd
& "'")

Non ho capito perch� ma era un problema di apici...

Ora posso valorizzare tutto e provare la query!

Grazie 1000
cio


Marco Pizzamiglio

unread,
Nov 26, 2009, 4:05:36 AM11/26/09
to
cio ha scritto:

> questa � la riga corretta e che mi da il valore giusto nel campo carico

> Valore = DLookup("[Carico]", "Tabella2", "[IDCodiceProdotto] = '" & CodProd
> & "'")

> Non ho capito perch� ma era un problema di apici...
> Ora posso valorizzare tutto e provare la query!
> Grazie 1000
> cio


Quando lavori con valori di tipo testo bisogna racchiuderli tra apici,
semplici o doppi.
Quando lavori con valori numerici non serve, anzi non devi.
Quindi i criteri saranno in questo formato:
numerico: ID=20
testo: ID="abc"
Fai attenzione con l'uso degli apici singoli, se uno dei codici dovesse
contenere un apice il criterio cos� come l'hai scritto ti darebbe di nuovo
errore.

cio

unread,
Nov 26, 2009, 4:11:30 AM11/26/09
to

"marcopio" <mdre...@more-oxy.com> ha scritto nel messaggio
news:ee05ab5f-00ae-4692...@s31g2000yqs.googlegroups.com...

ciao

la Query funziona perfettamente!! Grazie 1000!

cio


cio

unread,
Nov 26, 2009, 9:27:53 AM11/26/09
to

"Marco Pizzamiglio" <marco.pi...@gmail.com> ha scritto nel messaggio
news:helgd0$cd7$1...@news.newsland.it...

> Quando lavori con valori di tipo testo bisogna racchiuderli tra apici,
> semplici o doppi.
> Quando lavori con valori numerici non serve, anzi non devi.
> Quindi i criteri saranno in questo formato:
> numerico: ID=20
> testo: ID="abc"
> Fai attenzione con l'uso degli apici singoli, se uno dei codici dovesse
> contenere un apice il criterio cos� come l'hai scritto ti darebbe di nuovo
> errore.
> Ciao.
> -Marco-
>

grazie non av� mai ' apici singoli nel campo, ma perch� allora se scrivo

DLookup("[Carico]", "Tabella1", "CodProd=" & "CodProd")

Mi dice che "l'oggetto non contiene l'oggetto di automazione"?

Eppure in CodProd ho sempre del testo e l'ho messo tra doppie virgolette...

cio


Marco Pizzamiglio

unread,
Nov 27, 2009, 2:49:41 AM11/27/09
to
cio ha scritto:

> > Quando lavori con valori di tipo testo bisogna racchiuderli tra apici,
> > semplici o doppi.
> > Quando lavori con valori numerici non serve, anzi non devi.
> > Quindi i criteri saranno in questo formato:
> > numerico: ID=20
> > testo: ID="abc"
> > Fai attenzione con l'uso degli apici singoli, se uno dei codici dovesse
> > contenere un apice il criterio cos� come l'hai scritto ti darebbe di nuovo
> > errore.
> > Ciao.
> > -Marco-
> >

> grazie non av� mai ' apici singoli nel campo, ma perch� allora se scrivo
> DLookup("[Carico]", "Tabella1", "CodProd=" & "CodProd")
> Mi dice che "l'oggetto non contiene l'oggetto di automazione"?
> Eppure in CodProd ho sempre del testo e l'ho messo tra doppie virgolette...
> cio


Perch� CodProd � il nome del campo, che contiene un valore, per esempio
"AC34B", mentre "CodProd" � una stringa fissa, come se andassi a cercare
un prodotto il cui codice � "CodProd".
I doppi apici non si aggiungono cos�, hai due possibilit�:
"CodProd=""" & CodProd & """"
"CodProd=" & Chr$(34) & CodProd & Chr$(34)
Nel dubbio metti un punto di interruzione, quando il codice arriva l� vai
nella finestra debug e fai qualche prova, con la sintassi che hai usato
sopra e con queste due, vedrai subito la differenza nei risultati:
?"CodProd=""" & CodProd & """"
?"CodProd=" & "CodProd"

0 new messages