Newsgroup: it.comp.appl.access
Titolo: formattazione report - verifica se esiste una sezione, errore 2462

Buonasera.
Ho in azienda questo ambiente: Access per Microsoft 365, Versione 2212, 32 bit su Win10Pro, Versione 10.0.19045.
Da post presi sul web, forse da sito comune, ho utilizzato con successo fino a poco tempo fa, questa funzione:
 
Function CercaSezioneReport(xReport As Report, xSezione As Integer) As Boolean
    On Error Resume Next
    CercaSezioneReport = False
 
    Dim Sect As Section
 
    Set Sect = xReport.Section(xSezione)    ' ****
    If Err > 0 Then
        CercaSezioneReport = False
    Else
        CercaSezioneReport = True
    End If
End Function
 
La funzione, veniva impiegata in una sub che si scatenava ad ogni load di qualsiasi report. Così verificavo se esisteva o meno una sezione, in caso positivo applicavo a questa alcuni settaggi grafici.
Da una decina di giorni circa, mi compare l'errore 2462 sulla riga asteriscata.
La medesima funzione, modificata per le maschere, ma con la stessa logica, invece funzione correttamente.
Chiedo aiuto per risolvere.
Grazie.
Matteo


che valore passi a xSezione?
se passi ad esempio 0 o 3 o 4 e fai un
debug.print xReport.Section(xSezione).Name
 
ottieni
 
3=SezioneIntestazionePagina
4=SezionePièDiPaginaPagina
0=Corpo
 
 
o da errore anche con questi valori?
BFS


Ho fatto diverse prove, aggiungendo/togliendo sezioni allo stesso report...
Se la sezione esiste allora al comando
Debug.Print xSezione & ": " & xReport.Section(xSezione).Name & " - " & Err & " esito: " & CercaSezioneReport
scrive ciò che mi scrivevi tu correttamente.
Quando la sezione non è presente nel report mi restituisce l'errore 2462 "numero di sezione immesso non valido".
 
Matteo


ma quindi il tuo problema è che pur avendo inserito
 
On Error Resume Next
 
l'errore ti viene notificato lo stesso?
BFS
 
 


Esatto


Provato ora a creare maschera modale... come sezione ha solo il corpo, compare il medesimo errore
Poi aggiungo la testa e il piede e va tutto bene con i settaggi appropriati.


se crei una maschera
ci metti un bottone
sul click scrivi
 
On Error Resume Next
Dim i As Integer
i = "fdglkjdflkgjdfl"
 
 
e premi il bottone mi stai dicendo che cmq ti appare il msgbox di access 
che ti notifica l'errore?
 
 
BFS
 


sì, errore di run time 13: tipo non corrispondente


sarà un nuovo bug
 
anche cosi ti notifica l'errore?
 
 
On Error GoTo errore
Dim i As Integer
i = "fdglkjdflkgjdfl"
Exit Sub
 
errore:
If Err.Number = 13 Then
     Resume Next
End If
 


errore identico a prima


a questo punto credo sia l'ennesimo bug
prova a disinstallare l'ultimo aggiornamento
 
BFS


non ho modo di disinstallare ultimo aggiornamento e nemmeno con punti ripristino precedenti
sto in allerta dovessero risolvere il bug...
ho provato nel mentre a creare un FE vuoto e ho importato gli elementi di quello incriminato, ricollegato tabelle e debug
nulla mè cambiato 
grazie mille per l'aiuto
saluti
 
Matteo


iniziano a esserci varie segnalazioni di ulteriori bugs con questa 
ultima build legati ad access+odbc+sqlserver
 
ultimamente ogni update è un disastro
 
l'unico modo per star tranquilli è far girare se possibile gli 
applicativi con runtime access di 10 anni prima
 
 
BFS
 


La stessa applicazione con A2016 funziona, io ho A365 e mi dà errore
Allo stato attuale i report che stampo io sono senza formattazione personalizzata, quello di A2016 si vedono correttamente...
Vedo se posso fare diversamente
 
Matteo


Buongiorno
Ho rintracciato sul web il post "
https://bytes.com/topic/access/answers/512151-error-resume-next-does-not-work
)"
Così dal menu di vba Strumenti/Opzioni/Generale alla voce "intercettazione errori" ho spuntato l'ultima (interrompi ad ogni errore non gestito), anzichè la prima opzione.
Adesso gli errori vengono gestiti opportunamente.
Per tornare alla maschera di prova di BFS ora, alla pressione del bottone, non appare nulla e all'apertura della maschera stessa i miei settaggi grafici vengono correttamente applicati, anche se la maschera è priva di testa e piede.
Grazie.
 
Matteo