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

trovare ID ultimo record inserito con VBA

1,723 views
Skip to first unread message

andr...@gmail.com

unread,
May 13, 2009, 1:44:12 PM5/13/09
to
ciao a tutti
utilizzo VBA per inserire il contenuto delle textbox di una maschera
in una tabella

set db = currentdb
set tb = db.openrecordset("tabella")
with tb
.addnew
.fields("campo1") = textbox1
.....
.update
end with

Ora poichè devo inserire dei dati anche in un'altra tabella, mi
occorre sapere l' ID dell'ultimo record inserito
poichè lo devo inserire nel campo di un'altra tabella.
Gli esempi che ho letto sfruttano l'SQL select @@IDENTITY as lastID
from tabella
ma questo funziona solo se l'inserimento viene fatto con un'istruzione
INSERT di SQL
come posso risolvere?

grazie

Cinzia

unread,
May 13, 2009, 4:08:08 PM5/13/09
to

<andr...@gmail.com> ha scritto nel messaggio
news:46a2e645-1ae2-427b...@n21g2000vba.googlegroups.com...


ciao a tutti
utilizzo VBA per inserire il contenuto delle textbox di una maschera
in una tabella

set db = currentdb
set tb = db.openrecordset("tabella")
with tb
.addnew
.fields("campo1") = textbox1
.....
.update
end with

Ora poich� devo inserire dei dati anche in un'altra tabella, mi


occorre sapere l' ID dell'ultimo record inserito

poich� lo devo inserire nel campo di un'altra tabella.


Gli esempi che ho letto sfruttano l'SQL select @@IDENTITY as lastID
from tabella
ma questo funziona solo se l'inserimento viene fatto con un'istruzione
INSERT di SQL
come posso risolvere?

grazie
>>>>>>>>>>>RISPOSTA>>>>>>>>>>>>>>
Ciao Andros976,
@@IDentity pu� essere usato anche con DB Jet e non solo SQL Server
vedi in proosito questo articolo di Giorgio Rancati
http://www.riolab.org/viewrisorsa.asp?id=1

Nel tuo caso per�, dopo l'update puoi leggere il valore assunto dal
campo Identity semplicemente facendo:
id = .fields("CampoID")

--
Cinzia [Office Access MVP]
_______________________
www.riolab.org
http://accessdaziacin.spaces.live.com
----------------------------------------


andr...@gmail.com

unread,
May 14, 2009, 3:18:58 AM5/14/09
to

> Ciao Andros976,
> @@IDentity può essere usato anche con  DB Jet e non solo SQL Server

> vedi in proosito questo articolo di Giorgio Rancatihttp://www.riolab.org/viewrisorsa.asp?id=1
>
> Nel tuo caso però, dopo l'update puoi leggere il valore assunto dal

> campo Identity semplicemente facendo:
> id = .fields("CampoID")
>
> --
> Cinzia [Office Access MVP]
> _______________________
>          www.riolab.orghttp://accessdaziacin.spaces.live.com
> ----------------------------------------

ciao cinzia grazie della risposta
avevo già provato quello che tu mi dici ma si comporta in maniera
anomala.

With tb_contatti
.AddNew
.Fields("OPERATORE") = ope
.................
.Update
ids = .Fields("ID")
End With

If pulsante_assegna = -1 Then

With tb_trattative
.AddNew
.Fields("ID_CONTATTO") = ids
............
.Update
End With
End If

alla prima esecuzione, nel punto dell'assegnazione
ids = .fields("ID") mi dice nessun record corrente
poi termino l'esecuzione dello script , chiudo la maschera e la riapro
e non mi da errori, l'unico problema è che

ids = .fields("ID") contiene sempre il numero 1

infatti andando a vedere nel db la prima tabella è scritta
regolarmente, la seconda chiaramente no.

perchè si comporta così, ho sbagliato qualcosa

grazie
ciao

giorgio rancati

unread,
May 14, 2009, 4:46:07 AM5/14/09
to

<andr...@gmail.com> ha scritto nel messaggio
news:46a2e645-1ae2-427b...@n21g2000vba.googlegroups.com...
>ciao a tutti
>utilizzo VBA per inserire il contenuto delle textbox di una maschera
>in una tabella

>set db = currentdb
>set tb = db.openrecordset("tabella")
>with tb
>.addnew
>.fields("campo1") = textbox1
>.....
>.update
>end with

>Ora poich� devo inserire dei dati anche in un'altra tabella, mi


>occorre sapere l' ID dell'ultimo record inserito

[CUT]

Ciao,

dopo l'update riposiziona il bookmark del recordset sull'ultimo record
modificato/inserito
----
...
...
.update
.Bookmark = .LastModified
'* fatto questo puoi conoscere l'ID inserito
Debug.print .fields("ID")
end with
----

trovi tutti i detagli nel manuale VBA di Access cercando "LastModified"

Ciao
--
Giorgio Rancati
[Office Access MVP]


Karl Donaubauer

unread,
May 14, 2009, 5:23:43 AM5/14/09
to
giorgio rancati wrote:
> ...
>> Ora poichᅵ devo inserire dei dati anche in un'altra tabella, mi

>> occorre sapere l' ID dell'ultimo record inserito
> [CUT]
>
> dopo l'update riposiziona il bookmark del recordset sull'ultimo record
> modificato/inserito
> ----
> ...
> .update
> .Bookmark = .LastModified
> '* fatto questo puoi conoscere l'ID inserito
> Debug.print .fields("ID")
> end with
> ----
>
> trovi tutti i detagli nel manuale VBA di Access cercando "LastModified"

Ciao Giorgio,

anch'io da sempre uso LastModified per questo scopo, ma quest'anno
in una discussione ho imparato che leggere il nuovo valore del contatore
funziona anche prima dell'Update:

.addnew
.fields("campo1") = textbox1

Debug.print .fields("ID")
.update

Non mi sono mai accorto prima.

--
cu
Karl
*********
Access FAQ: www.donkarl.com/it

andr...@gmail.com

unread,
May 14, 2009, 6:42:44 AM5/14/09
to
On 14 Mag, 11:23, "Karl Donaubauer" <NoS...@donkarl.com> wrote:
> giorgio rancati wrote:
> > ...
> >> Ora poichè devo inserire dei dati anche in un'altra tabella, mi

> >> occorre sapere l' ID dell'ultimo record inserito
> > [CUT]
>
> > dopo l'update riposiziona il bookmark del recordset sull'ultimo record
> > modificato/inserito
> > ----
> > ...
> > .update
> > .Bookmark = .LastModified
> > '* fatto questo puoi conoscere l'ID inserito
> > Debug.print .fields("ID")
> > end with
> > ----
>
> > trovi tutti i detagli nel manuale VBA di Access cercando "LastModified"
>
>

Posso essere d'accordo con te che .update posiziona il puntatore del


recordset sull'ultimo record modificato

ma allora perchè la porzione di codice che ho scritto

.Update
ids = .Fields("ID")

mi dice nessun record corrente ?

Karl Donaubauer

unread,
May 14, 2009, 7:08:36 AM5/14/09
to
andr...@gmail.com wrote:

> Karl Donaubauer wrote:
>> giorgio rancati wrote:
>>> ...
>>>> Ora poich� devo inserire dei dati anche in un'altra tabella, mi

>>>> occorre sapere l' ID dell'ultimo record inserito
>>> [CUT]
>>
>>> dopo l'update riposiziona il bookmark del recordset sull'ultimo record
>>> modificato/inserito
>>> ----
>>> ...
>>> .update
>>> .Bookmark = .LastModified
>>> '* fatto questo puoi conoscere l'ID inserito
>>> Debug.print .fields("ID")
>>> end with
>>> ----
>>
>>> trovi tutti i detagli nel manuale VBA di Access cercando "LastModified"
>
> Posso essere d'accordo con te che .update posiziona il puntatore del
> recordset sull'ultimo record modificato

No, questo non ho scritto e anche non sono d'accordo.
Credo che fra AddNew ed Update ci troviamo in un tipo di cache.
Un Udate dopo AddNew posiziona il cursore al primo record del
recordset o in caso che non ci sono record a EOF.

> ma allora perch� la porzione di codice che ho scritto


>
> .Update
> ids = .Fields("ID")
>
> mi dice nessun record corrente ?

Perch� tenti di leggere l'ID _dopo_ l'Update (invece di prima come
l'ho scritto io) e molto probabile il tuo recordset non ha altri record.
In questo caso il cursore si trova a EOF --> il messaggio di errore.

--
HTH

giorgio rancati

unread,
May 14, 2009, 7:14:57 AM5/14/09
to

<andr...@gmail.com> ha scritto nel messaggio
news:7c642f9a-a967-46cb...@s21g2000vbb.googlegroups.com...

On 14 Mag, 11:23, "Karl Donaubauer" <NoS...@donkarl.com> wrote:

>Posso essere d'accordo con te che .update posiziona il puntatore del
>recordset sull'ultimo record modificato

no, non intendevo dire questo :-)
lo riscrivo in modo pi� esplicito.
----
dopo l'update (Tu tramite .Bookmark=.LastModified) riposiziona il bookmark

del recordset sull'ultimo record
modificato/inserito
----

>ma allora perch� la porzione di codice che ho scritto


>.Update
>ids = .Fields("ID")
>mi dice nessun record corrente ?

perch� dopo l'update il record non � posizionato sull'ultimo inserito.

:-)

giorgio rancati

unread,
May 14, 2009, 7:19:03 AM5/14/09
to

"Karl Donaubauer" <NoS...@donkarl.com> ha scritto nel messaggio
news:772693F...@mid.individual.net...

> Ciao Giorgio,
>
> anch'io da sempre uso LastModified per questo scopo, ma quest'anno
> in una discussione ho imparato che leggere il nuovo valore del contatore
> funziona anche prima dell'Update:
>
> .addnew
> .fields("campo1") = textbox1
> Debug.print .fields("ID")
> .update
>
> Non mi sono mai accorto prima.

Ciao Karl,

s�, vero perch� con database Mdb, Jet legge il prossimo ID prima dell'Update
come succede nelle maschere.
Per� questo metodo non funziona se si usa tabelle allegate a Database Server
dove l'ID viene recuperato solo dopo aver scritto il record.

:-)

andr...@gmail.com

unread,
May 14, 2009, 7:57:22 AM5/14/09
to
On 14 Mag, 13:19, "giorgio rancati"
<giorgio_No_Spalmer_ranc...@tiscali.it> wrote:
> "Karl Donaubauer" <NoS...@donkarl.com> ha scritto nel messaggionews:772693F...@mid.individual.net...

>
> > Ciao Giorgio,
>
> > anch'io da sempre uso LastModified per questo scopo, ma quest'anno
> > in una discussione ho imparato che leggere il nuovo valore del contatore
> > funziona anche prima dell'Update:
>
> > .addnew
> >   .fields("campo1") = textbox1
> >   Debug.print .fields("ID")
> > .update
>
> > Non mi sono mai accorto prima.
>
> Ciao Karl,
>
> sì, vero perchè con database Mdb, Jet legge il prossimo ID prima dell'Update
> come succede nelle maschere.
> Però questo metodo non funziona se si usa tabelle allegate a Database Server

> dove l'ID viene recuperato solo dopo aver scritto il record.
>
> :-)
> --
> Giorgio Rancati
> [Office Access MVP]

Io mi trovo nella situazione di tabelle collegate tramite ODBC.
Vorrei pertanto sapere quand'è che viene scritto il record ?
con .update oppure già con l'assegnazione .fields() = valore

faccio delle prove e vi faccio sapere
per il momento grazie del supporto a tutti e due
ciao

giorgio rancati

unread,
May 14, 2009, 9:39:06 AM5/14/09
to

<andr...@gmail.com> ha scritto nel messaggio
news:41a8b322-891d-406a...@g20g2000vba.googlegroups.com...

On 14 Mag, 13:19, "giorgio rancati"

>Io mi trovo nella situazione di tabelle collegate tramite ODBC.
>Vorrei pertanto sapere quand'� che viene scritto il record ?
>con .update oppure gi� con l'assegnazione .fields() = valore

Ciao,

Il server assegna l'identity quando scrive il record, quindi per forza di
cose dopo l'istruzione update.
Per essere precisi il valore dell'Id viene recuperato da Jet tramite il
comando di resync inviato dopo l'insert fisico del record.
Se stai usando Sql Server e hai l'utilit� Profiler, puoi aprire una traccia
e vedere qualcosa di simile a:
----
exec sp_executesql N'INSERT INTO "dbo"."Tabella2" ("Campo1") VALUES
(@P1)',N'@P1 nvarchar(255)',N'aaaa'
SELECT @@IDENTITY
exec sp_prepexec @p1 output,N'@P1 int',N'SELECT "Id","Campo1" FROM
"dbo"."Tabella2" WHERE "Id" = @P1',1
----

Ciao

andr...@gmail.com

unread,
May 14, 2009, 10:43:22 AM5/14/09
to
Allora ho modificato il codice , ma non và

Dim temp As Variant
...
With tb_contatti
.AddNew
...........
.Update
.Bookmark = .LastModified
temp = .Bookmark
end with

If pulsante_assegna = -1 Then

tb_contatti.Bookmark = i

With tb_trattative
.AddNew
* .Fields("ID_CONTATTO") = tb_contatti.Fields("ID").Value

.Update
End With
End If


cosa sto sbagliando mi dice record eliminato al'istruzione con *
abbiate pazienza.....

andr...@gmail.com

unread,
May 14, 2009, 10:46:49 AM5/14/09
to

ho trascritto male l'istruzione tb_contatti.Bookmark = i
tb_contatti.Bookmark = temp

il risultato non cambia
...

giorgio rancati

unread,
May 14, 2009, 1:23:53 PM5/14/09
to

<andr...@gmail.com> ha scritto nel messaggio
news:f1185d48-2845-4f59...@r34g2000vbi.googlegroups.com...

On 14 Mag, 16:43, "andros...@gmail.com" <andros...@gmail.com> wrote:
> Allora ho modificato il codice , ma non v�
[CUT]

>ho trascritto male l'istruzione tb_contatti.Bookmark = i
>tb_contatti.Bookmark = temp

Se provi a fare:
----


With tb_contatti
.AddNew
...........
.Update
.Bookmark = .LastModified

MsgBox .Fields("ID").Value
end with
----

ti da errore ?
Se la risposta � s�: La tabella tb_contatti ha un trigger che inserisce
record in qualche altra tabella ?

giorgio rancati

unread,
May 14, 2009, 2:24:38 PM5/14/09
to

"giorgio rancati" <giorgio_No_Sp...@tiscali.it> ha scritto nel
messaggio news:uPc1DjL...@TK2MSFTNGP03.phx.gbl...

>
> ti da errore ?
> Se la risposta � s�: La tabella tb_contatti ha un trigger che inserisce
> record in qualche altra tabella ?

o anche:
----
ACC2000: Linked SQL Server Table That Uses BigInt Data Type as Primary Key
Displays #Deleted
http://support.microsoft.com/kb/321901
----

andr...@gmail.com

unread,
May 15, 2009, 3:37:05 AM5/15/09
to
On 14 Mag, 20:24, "giorgio rancati"
<giorgio_No_Spalmer_ranc...@tiscali.it> wrote:
> "giorgio rancati" <giorgio_No_Spalmer_ranc...@tiscali.it> ha scritto nel
> messaggionews:uPc1DjL...@TK2MSFTNGP03.phx.gbl...
>
>
>
> > ti da errore ?
> > Se la risposta è sì: La tabella tb_contatti ha un trigger che inserisce

> > record in qualche altra tabella ?
>
> o anche:
> ----
> ACC2000: Linked SQL Server Table That Uses BigInt Data Type as Primary Key
> Displays #Deletedhttp://support.microsoft.com/kb/321901

> ----
>
> Ciao
> --
> Giorgio Rancati
> [Office Access MVP]

Ciao giorgio innanzitutto grazie per la disponibilità.
Ieri ho fatto delle prove ed è emerso questo:
se lavoro con tabelle locali, funziona tutto. se lavoro con tabelle
collegate tramite ODBC mi da il problema.
Il mio db è un db MySQL i campi indice si della tabella contatti che
trattative sono di tipo INT UNSIGNED.
tali campi vengono visti da access di tipo numerico (non contatore) e
dimensione intero
ti dico anche che il mio codice non fa altro che andare a inserire i
dati prima nella tabella contatti e poi rilevando l'id
dell'inserimento ultimo lo inserisce nella tabella trattative.
Non so se ci troviamo di fronte ad un caso di non compatibilità tra
prodotti (non essendo microsoft entrambi) e se magari c'è qualche
altro modo per aggirare il problema. che dici?
grazie
ciao

andr...@gmail.com

unread,
May 15, 2009, 4:17:22 AM5/15/09
to
Sto facendo altre prove e forse mi sto avvicindando.
poichè quando vado a inserire l'indice della prima tabella nella
seconda

* .Fields("ID_CONTATTO") = tb_contatti.Fields("ID").Value

mi da errore di runtime 3167 record eliminato
ho fatto qualche ricerca
http://support.microsoft.com/?kbid=208799
sono infatti nel caso in cui inserendo il nuovo record, non assegno
l'id
pertanto se dopo lo vado a recuperare e mi da l'errore. ho provato
come dice l'articolo ad inserire
Set tb_contatti = DB.OpenRecordset("CONTATTI", dbOpenDynaset,
dbSeeChanges)
Set tb_trattative = DB.OpenRecordset("TRATTATIVE", dbOpenDynaset,
dbSeeChanges)
ma non cambia nulla.
mi trovo anche nella condizione di gestione dati tramite ODBC
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B172339

"Indexes on non-standard datatypes or floating point datatypes. Some
server datatypes have no ODBC or Jet engine equivalent datatype. In
most cases, the Recordset is created as read-only, but sometimes it is
not. Rounding or conversion errors on the datatypes can cause the
error as well."

non ho però ben capito la risoluzione
una delle tre dice
"Refresh the recordset after every edit or addnew or execute operation
that affects the data in the recordset. The Jet engine will rebuild
the keyset with the updated information. "
come faccio a fare il refresh?

che dici
ciao
andrea


giorgio rancati

unread,
May 15, 2009, 4:28:23 AM5/15/09
to

<andr...@gmail.com> ha scritto nel messaggio
news:c772c308-6fa2-4994...@m24g2000vbp.googlegroups.com...

On 14 Mag, 20:24, "giorgio rancati"
<giorgio_No_Spalmer_ranc...@tiscali.it> wrote:
>

>Ciao giorgio innanzitutto grazie per la disponibilit�.
>Ieri ho fatto delle prove ed � emerso questo:


>se lavoro con tabelle locali, funziona tutto. se lavoro con tabelle
>collegate tramite ODBC mi da il problema.

>Il mio db � un db MySQL i campi indice si della tabella contatti che


>trattative sono di tipo INT UNSIGNED.
>tali campi vengono visti da access di tipo numerico (non contatore) e
>dimensione intero

[CUT]
bene, cominciano ad arrivare informazioni :-)

La tabella conttti ha un campo di tipo timestamp ?
Se non c'� aggiungilo fai lo stesso per tutte le alre tabelle.

Qui un link che potrebbe esserti utile.
----
20.1.7.2.1. Using Connector/ODBC with Microsoft Applications
http://dev.mysql.com/doc/refman/5.0/en/connector-odbc-usagenotes-apptips.html#connector-odbc-usagenotes-apptips-microsoft-access

andr...@gmail.com

unread,
May 15, 2009, 6:34:11 AM5/15/09
to
ho dato un'occhiata a quel link ,molto interessante
- ho aggiunto un campo timestamp sia sulla tabella contatti che
trattative.
- ho anche abilitato l'opzione del driver ODBC
"return matched row instead of affected row"

l'altra "For Access 2.0, you should additionally enable the Simulate
ODBC 1.0 option."
NON l'ho trovata !
avevo tentato anche quello di fare il refresh del recordset prima di
richiamare il campo di un record
aggiungendo .movelast dopo .update
niente sempre stesso problema..
disperato

giorgio rancati

unread,
May 15, 2009, 6:51:54 AM5/15/09
to

<andr...@gmail.com> ha scritto nel messaggio
news:8e25b95d-4e69-4a78...@m24g2000vbp.googlegroups.com...

>
> l'altra "For Access 2.0, you should additionally enable the Simulate
> ODBC 1.0 option."
> NON l'ho trovata !
> avevo tentato anche quello di fare il refresh del recordset prima di
> richiamare il campo di un record
> aggiungendo .movelast dopo .update
> niente sempre stesso problema..
> disperato

umm proseguiamo con le indagini:
Se apri la tabella dall'applicazione Access (in Tabelle doppio click sulla
tabella allegata) e inserisci un record ti viene visualizzato #cancellato#
??

giorgio rancati

unread,
May 15, 2009, 7:33:13 AM5/15/09
to

"giorgio rancati" <giorgio_No_Sp...@tiscali.it> ha scritto nel
messaggio news:u2p5rsU1...@TK2MSFTNGP02.phx.gbl...

>
> umm proseguiamo con le indagini:
> Se apri la tabella dall'applicazione Access (in Tabelle doppio click sulla
> tabella allegata) e inserisci un record ti viene visualizzato #cancellato#
> ??

altra cosa:
hai scritto che utilizzi per l'ID un campo di tipo INT UNSIGNED, Access non
ha nessun tipo equivalente a INT UNSIGNED.
Prova a modificare il campo ID in INT SIGNED che equivale a "Intero Lungo"
di Access.

ps. come avrai capito non ho mai lavorato con MySql quindi vado per
associazioni

andr...@gmail.com

unread,
May 16, 2009, 7:11:23 AM5/16/09
to
ciao giorgio,
ho fatto i controlli che mi dici ma non credo sia una questione di INT
UNSIGNED
nel weekend cercherò di fare altre prove
ti tengo aggiornato.
grazie per l'aiuto che mi stai dando

andrea

giorgio rancati

unread,
May 16, 2009, 8:41:47 AM5/16/09
to

<andr...@gmail.com> ha scritto nel messaggio
news:f534dd5e-3230-4238...@o14g2000vbo.googlegroups.com...

>ciao giorgio,
>ho fatto i controlli che mi dici ma non credo sia una questione di INT
>UNSIGNED

dici ?
facendo una ricerca con google ho visto altri post simili al tuo.
----
mySQL/ODBC/Microsft Access problems
http://lists.mysql.com/mysql/1095
----

potrebbe anche essere la configurazione del DSN, vedi parametro "Option =
3" per Microsoft Access, Visual Basic.
----
20.1.4.2. Connector/ODBC Connection Parameters
http://dev.mysql.com/doc/refman/5.0/en/connector-odbc-configuration-connection-parameters.html
----

>nel weekend cercher� di fare altre prove
>ti tengo aggiornato.
Ok :-)

>grazie per l'aiuto che mi stai dando

prego

andr...@gmail.com

unread,
May 18, 2009, 11:10:19 AM5/18/09
to
Ciao giorgio , finalmente ho risolto !!! Dovrei essere contento ,
invece sono sconfortato perchè mi rendo conto che non riuscirò mai a
capire come funziona access (microsoft)!!
Il problema consisteva nel fatto che durante l'ultima assegnazione del
campo
.fields("nomecampo") = caselladitesto
possiedeva un valore null che mandava tutto in crash. Quindi nessun
problema tra interi , nessun problema risolvibile con timestamp,
Il problema assurdo però non è il fatto che si vada ad inserire un
null in un campo del db , ma che proprio venga inserito l'ultimo campo
prima dell'update, poichè ho assegnato null anche a campi prima
dell'ultimo e il problema non si verifica se l'ultimo possiede un
valore valido.
Ora il mio sconforto è dato dal fatto che non capisco proprio come il
motore di access funzioni.

Per quanto riguarda l'opzione del DSN suggeritami da te


"potrebbe anche essere la configurazione del DSN, vedi parametro
"Option =
3" per Microsoft Access, Visual Basic. "

vorrei andarlo a settare ma non esiste nei parametri del DSN . a te
risulta!

andrea


giorgio rancati

unread,
May 18, 2009, 11:45:40 AM5/18/09
to

<andr...@gmail.com> ha scritto nel messaggio
news:d0e18d3f-9f08-4ea2...@r13g2000vbr.googlegroups.com...

>Ciao giorgio , finalmente ho risolto !!! Dovrei essere contento ,
>invece sono sconfortato perch� mi rendo conto che non riuscir� mai a

>capire come funziona access (microsoft)!!
>Il problema consisteva nel fatto che durante l'ultima assegnazione del
>campo
>.fields("nomecampo") = caselladitesto
>possiedeva un valore null che mandava tutto in crash. Quindi nessun
>problema tra interi , nessun problema risolvibile con timestamp,
>Il problema assurdo per� non � il fatto che si vada ad inserire un

>null in un campo del db , ma che proprio venga inserito l'ultimo campo
>prima dell'update, poich� ho assegnato null anche a campi prima

>dell'ultimo e il problema non si verifica se l'ultimo possiede un
>valore valido.
>Ora il mio sconforto � dato dal fatto che non capisco proprio come il
>motore di access funzioni.

Access non c'entra nulla, con tabelle allegate a MS Sql Server non si
presenta il problema da te riscontrato.
Credo sia un Bug di MySql.
Prova a vedere Qui.
----
Bug #10910
Access shows #Deleted for records inserted with NULL values
http://bugs.mysql.com/bug.php?id=10910
----

forse devi solo aggiornare il Driver ODBC di MySql.

andr...@gmail.com

unread,
May 19, 2009, 4:21:48 AM5/19/09
to
Ho letto l'articolo. hai ragione :-)
il driver ODBC che ho installato è l'ultimo 5.1.5

adesso cerco di andare avanti e di vedere se si verificano altri bug
anomali.

ti ringrazio molto per l'aiuto , ho visto che sei una persona
competente in materia.;-)
avrei altre domande su access ....

andrea

0 new messages