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.
>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
> 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
>
> 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
> 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
> 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.
ciao
la Query funziona perfettamente!! 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.
> 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
> > 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"