Microsoft office 365
Microsoft access 2016 MSO (16.0.6729.1014) a 32 bit
Microsoft visual basic, applications edition 7.1 (versione 1049, VBA: retail 7.1.1049 forms3: 16.0.6729..101)
Salve, sto realizzando un db per la gestione di un piccolo albergo, ed ho maschere che richiamano codice vba.
Avevo maschere funzionanti, e tutto era regolare.
Tutto ad un tratto, all'apertura delle maschere ha iniziato a darmi un messaggio di
errore:
Microsoft visual basic, application edition
Errore durante l'accesso al file. Potrebbe non essere più attiva la connessione di rete.
Lo fa con ogni maschera che contenga del codice vba, indipendentemente dall'evento che possa richiamare il codice.
L'unica cosa che fa è mandarmi nel vb della maschera, far partire il debug, e quando chiudo il vb, riparte d'accapo.
Mi da l'errore anche se provo a fare una qualunque modifica al codice.
Poi magari me la fa (es cancellare qualcosa, ma sempre passando dall'errore).
Se provo a stoppare il debug, per tornare nella maschera (visualizzazione struttura), continua a rimandarmi al codice, in debug.
Senza errori, senza segnalazioni in giallo, mi rimanda nel vb e basta.
Ho reinstallato il programma 2 volte.
Ad un certo punto, l'unico modo per uscire (non mi lascia fare niente al di fuori del vb) è terminando access dal task manager.
Erano iniziate ad accadere cose strane già da prima (pensavo fossero errori inconsapevoli di codice, anche se prima funzionava), ma è peggiorato drasticamente quando ho cancellato una maschera che non utilizzavo più(magari era richiamata da qualche pulsante,
ma al massimo sarei finito in debug), e da quel momento non riesco più nemmeno a creare una maschera con quello stesso nome (senza darmi errori), o a rinominarne una esistente, se voglio dargli quello stesso nome.
Come se la maschera fantasma ci fosse ancora.
Ho ripristinato e compattato il db, ma niente.
Ho creato una copia del db, ed ho provato a lavorare su quella, quando apro una maschera(es. maschera first) con codice, mi dice che può aprirla solo se rinuncio al codice vb(che sarà cancellato), la apre.
Cancella il codice ma le routine evento sono rimaste marcate (su apertura e timer).
Scrivo in vb il codice relativo a apertura e timer, torno in visualizzazione e
mi da l'errore:
L'espressione su apertura immessa come impostazione della proprietà di evento ha generato l'errore seguente: errore di comunicazione con il server OLE o con il controllo ActiveX.
Questo errore si verifica in seguito a un problema di esecuzione di un evento, perché non è possibile individuare la posizione della logica per l'evento. Ad esempio se la proprietà Su apertura di una maschera è impostata su =[Campo],
questo errore si verifica perché è previsto il nome di una macro o un evento da eseguire quando si verifica l'evento.
E l'unico codice che ho messo (per fare una prova) è il seguente:
Private Sub Form_Open(Cancel As Integer)
a = MsgBox("prova", vbOKOnly, "WARNING!")
End Sub
Ho chiamato il servizio clienti Microsoft e mi è stato detto che il vb for application è un programma terzo, che ho scaricato io, gratuito, e quindi non è previsto alcun supporto.
Che l'access si apre, e quindi funziona. Poi mi hanno detto di scrivere qui.
Credo che un programma, per poter dire che funziona, debba fare un po' più che "aprirsi", anche il notepad si apre, ma non fa quello che fa access.
Comunque:
- Io non ho scaricato e installato niente, oltre al pacchetto office
comprato.
- Il vb for app è parte integrante dell'access (senza il quale l'access è completamente inutile).
- L'integrazione fra access e vba non è compito mio.
Un po' come dire: Hai comprato un'auto, ma il motore non lo produciamo noi, quindi è come se lo avessi installato tu sulla tua auto, e quindi non hai la garanzia se si rompe, o se i bulloni che lo tengono si spostano. In pratica ho comprato un'auto truccata
da terzi, senza saperlo.
Inutile dire che ho un mese di lavoro in quel motore, e se devo riscrivere tutto e ripartire da zero... e in ogni caso chi mi garantisce che anche se lo rifaccio completamente da zero, poi non mi succeda di nuovo?
Ringrazio chiunque abbia la pazienza di leggere questo post. Ringrazio anche chi abbia voglia di darmi qualche consiglio.