segretoautomobili ha scritto:
inoltre come scritto precedentemente se non inserisco il "tb!" allora funziona ma mi da sempre il valore della prima riga
Questo forse è dovuto al fatto che c'è un controllo associato con quello stesso nome e/o il codice in assenza di specifiche va alla ricerca nell'origine dati della maschera. Non è lì quindi che bisogna indagare.
Indica il datatype di queste variabili, fosse anche Object
Dim fso
Dim act
A cosa ti serve questa riga?
Dim oAC As New Access.Application
Non la si vede usata nel resto della routine. Se non serve toglila, se serve non scriverla così ma "spezza" la dichiarazione dall'assegnazione (prima Dim e poi Set)
Annunci X Sito è una tabella o una query? Per essere sicuri di aver a che fare con un recordset di un certo tipo (dynaset), esplicita, altrimenti se è una tabella è table-type e potrebbe comportarsi in modo diverso (sinceramente non lo so, però siamo sicuri che è di un determinato tipo)
'Apertura tabella
Set tb = DBCorrente.OpenRecordset(SQL, dbOpenDynaset)
Ma la cosa più importante è: che valore ha tb!Descrizione quando c'è l'errore? Posta quello che restituisce il codice (magari con un debug.print) e quanto invece è presente "materialmente" nella tabella. Non fare alcuna modifica al quanto incollato (per non togliere ritorni a capo e/o caratteri di tabulazione). Se fosse un Null come verrebbe trattato? Può accadere? L'altra cosa da verificare è se contiene l'apice singolo o il doppio apice.
Guarda tu per primo con un copia-incolla magari su notepad++ (o altro editor di testo con più funzioni rispetto al classico blocco note) se sono presenti caratteri strani (attivando la visualizzazione di tutti i caratteri e simboli nascosti).