Condividi tramite

Errore recordset

Anonimo
2010-04-19T13:57:11+00:00

Salve a tutti

stò creando un DB che mi crea dei DDT.

La tabella che contiene i DDT si chiama T_DDT, io attraverso il codice sotto alla pressione del tasto faccio questo:

mi collego al db (che è il corrente) mi collego alla tabella poi leggo l'ultimo valore gli aggiungo 1 e lo scrivo in una riga che aggiungo, questo per avere un valore incrementale di DDT.

In fase di esecuzione io ho un errore che mi dice: errore di compilazione. Tipo non corrispondente, e viene evidenziato in giallo .OpenRecordset della linea sotto:

Set T_DDT = DBCorrente.OpenRecordset(T_DDT, dbOpenDynaset) ' Seleziono la tabella

Questo è il codice che ho scritto, dove sbaglio?

Private Sub CMD_NUOVODDT_Click()

Dim ULTIMO_DDT As Integer                                   ' Variabile che contiene il numero dell'ultimo DDT creato

Dim DBCorrente As DAO.Database                              ' Dichiaro la variabile per la connessione al database

Dim T_DDT As DAO.Recordset                                  ' Dichiaro la variabile di collegamento alla tabella

Set DBCorrente = CurrentDb                                  ' Apro il collegamento al DB

Set T_DDT = DBCorrente.OpenRecordset(T_DDT, dbOpenDynaset) ' Seleziono la tabella

T_DDT.MoveLast                                              ' Mi porto all'ultimo record

ULTIMO_DDT = T_DDT.Fields("NDDT") + 1                       ' Aggiungo 1 all'ultimo DDT

T_DDT.AddNew                                                ' Aggiungo un nuovo record

T_DDT.Fields("NDDT") = ULTIMO_DDT                           ' Assegno il valore ultimo DDT

T_DDT.Update                                                ' Aggiorno il database

T_DDT.Close                                                 ' Chiudo la tabella

DBCorrente.Close                                            ' Chiudo il database

End Sub

Ci possono essere altre soluzioni? Io scopiazzando su internet sono giunto a questo ma forse c'è una soluzione più elegante.

Grazie Fra.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2010-04-19T15:22:16+00:00

Ciao Fra,

una soluzione alternativa è quella di inserire un codice tipo questo nell'evento Prima di inserire della maschera in cui carichi i DDT.

me.NDDT = Nz(DMAX("NDDT", "T_DDT", ""), 0) + 1

L'errore nella tua procedura è dovuto alla mancanza di virgolette sul nome della tabella da aprire.


Cinzia


Sito RIO

Il mio Blog

La risposta è stata utile?

0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2010-04-20T06:25:00+00:00

    Ciao Cinzia

    come sempre puntualissima! :-)

    L'errore era come dicevi tu nella dimenticanza delle virgolette, e quindi corretto questo funziona.

    Grazie, farò tesoro anche dell'altro consiglio.

    Fra.

    La risposta è stata utile?

    0 commenti Nessun commento