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

UPDATE con campo VERO/FALSO

180 views
Skip to first unread message

Francesco Salvagnini

unread,
Sep 24, 2010, 11:14:07 AM9/24/10
to
Ciao a tutti! Devo aggiornare da VB il campo booleano di una tabella.
Esempio:

Set Pc = CurrentDb.OpenRecordset("SELECT ID, FLAG FROM Clienti WHERE
ID=1")
CurrentDb.Execute "UPDATE Clienti_New SET FLAG = " & Pc(1) & " WHERE
ID = 2"

Per tutta risposta Access mi da: Parametri insufficienti. Previsto 1.
Mi sapete dire come modificare la riga dell'UPDATE? Grazie!!!!

Fair87

unread,
Sep 24, 2010, 11:48:30 AM9/24/10
to
Francesco Salvagnini ha scritto:

Provato con PC![FLAG]?

--

Francesco Salvagnini

unread,
Sep 24, 2010, 12:18:51 PM9/24/10
to

Il valore di FLAG (-1/0, vero/falso, Sì/No) è una variabile, che si va
a prendere quando popola l'Area Pc. Non è il campo di una maschera.
Non so se mi spiego.. Grazie comunque! ; )

Alessandro Cara

unread,
Sep 24, 2010, 12:45:15 PM9/24/10
to
Il 24/09/2010 18.18, Francesco Salvagnini ha scritto:
> On 24 Set, 17:48, Fair87<roby....@gmail.com> wrote:
>> Francesco Salvagnini ha scritto:
>>
>>> Ciao a tutti! Devo aggiornare da VB il campo booleano di una tabella.
>>> Esempio:
>>
>>> Set Pc = CurrentDb.OpenRecordset("SELECT ID, FLAG FROM Clienti WHERE
>>> ID=1")
>>> CurrentDb.Execute "UPDATE Clienti_New SET FLAG = "& Pc(1)& " WHERE

>>> ID = 2"
>>
>>> Per tutta risposta Access mi da: Parametri insufficienti. Previsto 1.
>>> Mi sapete dire come modificare la riga dell'UPDATE? Grazie!!!!
>>
>> Provato con PC![FLAG]?
>>
>> --
>
> Il valore di FLAG (-1/0, vero/falso, Sě/No) č una variabile, che si va
> a prendere quando popola l'Area Pc. Non č il campo di una maschera.

> Non so se mi spiego.. Grazie comunque! ; )

Questo Fair87 l'aveva capito e di grosso.
sei certo che flag sia valorizzato?

E poi fare pc(1) e' proprio brutto, si perde la "relazionalita'".
PC![FLAG] e' meglio.
--
ac

Francesco Salvagnini

unread,
Sep 24, 2010, 12:59:31 PM9/24/10
to
Grazie Fair, grazie Alessandro. Ho provato anche con Pc![FLAG], ma il
risultato è lo stesso. Deve dipendere proprio dal Tipo di Dati che
vado ad aggiornare. Infatti se aggiorno testi o numeri non mi dà
problemi. Penso che per il booleano bisogna inserire prima del Pc!
[FLAG] qualche funzione particolare... ma non so quale!!

Fair87

unread,
Sep 24, 2010, 1:03:13 PM9/24/10
to
Francesco Salvagnini ha scritto:

>On 24 Set, 17:48, Fair87<roby....@gmail.com> wrote:
>> Francesco Salvagnini ha scritto:
>>
>> >Ciao a tutti! Devo aggiornare da VB il campo booleano di una tabella.
>> >Esempio:
>>
>> >Set Pc =3D CurrentDb.OpenRecordset("SELECT ID, FLAG FROM Clienti WHERE
>> >ID=3D1")
>> >CurrentDb.Execute "UPDATE Clienti_New SET FLAG =3D " & Pc(1) & " WHERE
>> >ID =3D 2"

>>
>> >Per tutta risposta Access mi da: Parametri insufficienti. Previsto 1.
>> >Mi sapete dire come modificare la riga dell'UPDATE? Grazie!!!!
>>
>> Provato con PC![FLAG]?
>>
>> --
>
>Il valore di FLAG (-1/0, vero/falso, S=EC/No) =E8 una variabile, che si va
>a prendere quando popola l'Area Pc. Non =E8 il campo di una maschera.

>Non so se mi spiego.. Grazie comunque! ; )

..e infatti mica ho scritto Forms!Nome.Campo.value.......hai aperto un
recordset....di solito l'errore è che al campo si/no non viene assegnato un
default, quidi il suo valore, se è vuoto, non è FALSE ma NULL.....e jet,
giustamente, s'inc....
:)


--

Francesco Salvagnini

unread,
Sep 24, 2010, 1:26:37 PM9/24/10
to
In questo caso, Pc![flag] ha come valore falso.. il valore predefinito
nella tabella Clienti è No..
Ma a te, per curiosità, funziona l'update con un campo boolean?

Alessandro Cara

unread,
Sep 24, 2010, 1:32:59 PM9/24/10
to
ok
prova cosi':
"UPDATE Clienti_New SET FLAG = " & nz(Pc(1),0) & " WHERE
ID = 2"

e vedi se continua a fare le bizze.
--
ac

Francesco Salvagnini

unread,
Sep 24, 2010, 2:36:49 PM9/24/10
to
Macché.., ho già provato.. Nz serve per trasformare i Null in zero.
Qui ci vuole qualche funzione che trasformi Vero in -1 e falso in 0.
Possibile che non ci sia? No, certo che no! Karl Donaubauer lo saprà
di sicuro, ma il sito dove interveniva è stato oscurato...(
http://www.microsoft.com/office/community/it-it/default.mspx?dg=microsoft.public.it.office.access&lang=it&cr=IT
)

Geppo

unread,
Sep 24, 2010, 4:05:40 PM9/24/10
to

mancano i doppi apici a "& pc &", siccome vuoi inserire " in altre "" le
devi raddoppiare, per cui diventa cosi:


CurrentDb.Execute "UPDATE Clienti_New SET FLAG = "" & Pc(1) & "" WHERE
ID = 2"


--
Ciao
Geppo


Alessandro Cara

unread,
Sep 24, 2010, 4:26:21 PM9/24/10
to

Karl interviene anche qui gia' da quando il sito della Microsoft non
esisteva.

Il boolean e' un campo "falso", di fatto e' un byte (numerico) e non a
caso falso = 0 e vero e' #0 che poi access per default usi -1 e'
convenzione ma se ci metti un valore tra 1 e 255 (che sarebbe il -1 in
campo segnato) fa la stessa cosa.

Stessa cosa dicasi per i campi di tipo Data o Counter anch'essi *inventati*


giorgio rancati

unread,
Sep 24, 2010, 5:29:57 PM9/24/10
to

"Francesco Salvagnini" <animein...@gmail.com> ha scritto nel messaggio
news:1553fbf5-396c-46ff...@e20g2000vbn.googlegroups.com...

Ciao Francesco,

il valore di un campo booleano concatenato in una stringa viene trasformato
da VBA a seconda della localizzazione del sistema operativo, se la
localizzazione è "italiano" il valore booleano verrà trasformato in Vero o
Falso che sono termini incomprensibili per il motore del database Jet.
Per risolvere puoi passare il valore numerico corrispondente ovvero -1 o 0
in questo modo:
----
CurrentDb.Execute "UPDATE Clienti_New SET FLAG = " & Cint(Pc(1)) & " WHERE
ID = 2"
----

Ciao
Giorgio Rancati


Francesco Salvagnini

unread,
Sep 25, 2010, 2:12:42 AM9/25/10
to
Giorgio sei un MITO, non ci sono parole !!! Sembra quasi che Access
sia una tua creatura, da come riesci a trovare le soluzioni più
brillanti. Esco dal Newsgroup inchinandomi e congiungendo le mani,
come si conviene agli imperatori.
Grazie, Francesco ; )

giorgio rancati

unread,
Sep 25, 2010, 5:59:05 AM9/25/10
to

"Francesco Salvagnini" <animein...@gmail.com> ha scritto nel messaggio
news:3174dec1-73d2-49b0...@j18g2000yqd.googlegroups.com...

>Giorgio sei un MITO, non ci sono parole !!! Sembra quasi che Access
[CUT]

Esagerato :-)

Giorgio Rancati


Francesco Salvagnini

unread,
Sep 25, 2010, 10:28:38 AM9/25/10
to

Anzi, mi son dimenticato di specificare il senso di marcia:
retrocedente!
A parte gli scherzi: se pensi che una risposta da un tecnico Microsoft
costa 350 euro (e se ne devono acquistare almeno 10), tu sei un Ente
di Pubblico Soccorso Informatico. Le tue risposte sono da
incorniciare. Senza l'aiuto tuo e di qualche altro avrei impiegato
tempi biblici per realizzare il mio software. Riconoscente, Francesco.
0 new messages