I'm sorry for the lack... In the meaning I bypassed my issue calling that code by a refresh query and it works.
But now I don't know why this part of my function doesn't works. In facts if I add the SET instruction on the line n° x I got "compilation error, object necessary", not whit pos9 = TBpstz.Fields("PosizioneNove")...
Code:
Option Compare Database
Option Explicit
Public Function moltiplicaRG()
'imposta le variabili db (database), rst(tab sorgente), rst_new(tab destinazione), num (numeratore intero)
Dim db As DAO.Database
Set db = CurrentDb
Dim TBpstz As DAO.Recordset
Dim rst, rst_new As DAO.Recordset
Dim num As Integer, IDc As String
Dim codcli, pos9 As String
Set rst = db.OpenRecordset("SELECT * FROM Selezione", , dbOpenSnapshot)
Set rst_new = db.OpenRecordset("RigheGenerate", dbOpenDynaset)
Set TBpstz = db.OpenRecordset("SELECT * FROM Postazione", dbOpenDynaset)
Set codcli = TBpstz.Fields("CodiceIdentificativoCliente")
Set pos9 = TBpstz.Fields("PosizioneNove") ' < THIS IS THE X LINE WHERE DEBUG STOPS, THE NAME OF FIELD IS CORRECT! WHY VBA DOESN'T ACCEPTS "SET" THIS TIME?
'verifica se il contatore dei colli si è esaurito
If TBpstz("UltimoSegnacollo") = "Z999" Then
MsgBox "Questa postazione SDA è satura." & vbCrLf & "Sovrascrivere i dati nella prossima finestra con quelli della nuova postazione fornita da SDA."
DoCmd.OpenTable "Postazione"
Else
'imposta le condizioni del loop
While Not rst.EOF
For num = 0 To rst.Colli - 1
'imposta le azioni da intraprendere
IDc = TBpstz.Fields("UltimoSegnacollo")
'aggiorna UltimoSegnacollo su Postazione
DoCmd.SetWarnings False
DoCmd.OpenQuery ("013: Aggiorna UltimoSegnacollo su Postazione")
DoCmd.SetWarnings True
'accoda alla tabella righe generate
rst_new.AddNew
rst_new!NumeroDocumento = rst!NumeroDocumento
rst_new!DataDocumento = rst!DataDocumento
rst_new!Collo = num + 1
rst_new!Colli = rst!Colli
rst_new!Destinatario = rst!Destinatario
rst_new!Indirizzo = rst!Indirizzo
rst_new!CAP = rst!CAP
rst_new!Localita = rst!Localita
rst_new!Provincia = rst!Provincia
rst_new!PesoLordo = rst!PesoLordo
rst_new!LDV = rst!LDV
rst_new!CodPorto = rst!CodPorto
rst_new!Note = rst!Note
rst_new!ImportoAssicurazione = rst!ImportoAssicurazione
rst_new!CodServizio = rst!CodServizio
rst_new!TipoServizio = rst!TipoServizio
rst_new!IDcollo = Right(codcli, 4) & IDc & pos9 & rst!LDV
rst_new.Update
Next
rst.MoveNext
Wend
'chiude gli oggetti e azzera le variabili
TBpstz.Close
rst.Close
rst_new.Close
db.Close
End If
End Function