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

Modifica di campi da codice VBA

897 views
Skip to first unread message

Corrado Labinaz

unread,
Jan 27, 1998, 3:00:00 AM1/27/98
to

Ciao a tutti,

Ho bisogno di modificare un campo (Anno) di una query in base al
valore di un'altro campo (Data), modificato dall'utente a runtime.
(Non ditemi di usare un campo calcolato, mi serve il campo fisico
perchè deve essere indicizzato.)

Potrei inserire una casella di testo invisibile, però non mi sembra
molto pulito...
Mi sembra più ragionevole accedere all'oggetto Field che mi interessa
e modificarlo, ma il seguente codice non funziona:

Dim rst As Recordset
Set rst = Me.RecordsetClone
rst.Edit
rst.Fields![Anno] = Year(Data)

Se non ho ancora inserito il primo record Access si ferma sulla 3^
riga dandomi "No current record".
Da quanto mi sembra di capire è possibile soltanto creare NUOVI
oggetti DAO, ma non manipolare direttamente quelli usati da Access.

Devo propio usare il controllo invisibile?

Saluti,
Corrado

-------------------
Corrado Labinaz
Vicenza (Italy)
tel. 39-444-913192
e-mail: corr...@tin.it
-------------------

Michele Giorgini

unread,
Jan 28, 1998, 3:00:00 AM1/28/98
to

Corrado Labinaz wrote:

Credo che la casella invisibile sia il metodo più rapido.....
Io lo uso regolarmente!

M.

Michele Giorgini

unread,
Jan 28, 1998, 3:00:00 AM1/28/98
to

Antonio Biso

unread,
Feb 6, 1998, 3:00:00 AM2/6/98
to

Corrado Labinaz <corr...@tin.it> wrote in article
<34ce15ea...@news.tin.it>...
> Ciao a tutti,


>
> Dim rst As Recordset
> Set rst = Me.RecordsetClone
> rst.Edit
> rst.Fields![Anno] = Year(Data)
>
> Se non ho ancora inserito il primo record Access si ferma sulla 3^
> riga dandomi "No current record".

Per questo problema, basterebbe controllare che ci siano record quindi o
utilizzando BOF (ma non mi ricordo come) oppure io scrivo sempre if
rst.recordcount <> 0 then rst.edit ecc.

Antonio

AntoGal

unread,
Feb 10, 1998, 3:00:00 AM2/10/98
to

Antonio Biso ha scritto nel messaggio <01bd3337$4acfeb80$1359b8c2@cmq152>...


basta fare:

Dim rst As Recordset
Set rst = Me.RecordsetClone

If Not rst.EOF Then 'oppure rst.BOF che in questo caso coincidono


rst.Edit
rst.Fields![Anno] = Year(Data)

rst.Update 'altrimenti non aggiorna
end if

ATTENZIONE: RecordCount restituisce il numero di record ai quali si č avuto
accesso e non necessariamente quelli totali (a meno che non si tratti di rs
di tipo Table). Se si vogliono conoscere quanti record sono presenti,
bisogna fare prima un rst.MoveLast per scorrerli tutti. In questo caso la
soluzione di Antonio Biso (rst.recordcount <> 0) funziona lo stesso perchč
se c'č almeno un record, si accede al primo e quindi recordcount=1, se non
ce n'č nessuno, varrą 0.

Ciao, AntoGal.

*************************************************
Home Page
http://www.volftp.vol.it/IT/IT/ITALIANI/galletta
per scaricare un gioco di Dama Italiana.
*************************************************

0 new messages