Bypassare interazione con altri DB / Cartelle in rete LAN

di il
4 risposte

Bypassare interazione con altri DB / Cartelle in rete LAN

Ciao a tutti.

Stamattina in ufficio mi si è presentato un problema che mi sta bloccando praticamente tutti i DB personali che uso

Brevemente, bene o male ognuno dei miei DB all'avvio va a verificare alcune cose sui NAS del nostro ufficio (tipo esistenza di cartelle specifiche, etc), oppure importa dati (non fondamentali) da tabelle di altri DB.

La maggior parte di queste verifiche non sono fondamentali per il mio lavoro, sono solo una…comodità o comunque da usare all'occorrenza.

Da qualche ora abbiamo avuto una avaria per cui non riusciamo più ad accedere ai NAS.

Il mio problema è che se provo ad aprire uno dei miei DB (tanto in genere lavoro in locale) il DB va in blocco in quanto, non potendo accedere ai NAS, non riesce a fare quelle verifiche / importazioni.

C'è un modo di bypassare il blocco, nel senso tipo un timer: se il NAS (cartella o DB) non mi risponde entro 5 sec, bypasso la funzione e vado avanti, così da aprirmi il DB e poter lavorare?

Andrea

4 Risposte

  • Re: Bypassare interazione con altri DB / Cartelle in rete LAN

    Premi il funghetto d'emergenza, stai inviando dati sensibili sul web!

    A parte gli scherzi, così nessuno potrà dirti cosa sta succedendo. Di solito è il db stesso che manda un messaggio di errore del tipo “xyz non trovato!” Oppure “impossibile trovare quel qualcosa ” ecc…

    Bypassare? Si, dovresti gestire le eccezioni… ma che codice hai scritto?

  • Re: Bypassare interazione con altri DB / Cartelle in rete LAN

    22/06/2023 - Jocman ha scritto:


    Il mio problema è che se provo ad aprire uno dei miei DB (tanto in genere lavoro in locale) il DB va in blocco in quanto, non potendo accedere ai NAS, non riesce a fare quelle verifiche / importazioni.

    Ciao,

    potresti spiegare meglio in cosa consiste il “blocco” ?  …. si pianta tutto? messaggio di errore e chiusura Db ?

    Un ultima cosa: queste “verifiche/importazioni” vengono eseguite da una funzione? e conosci dove e quando questa funzione/i va in esecuzione? 

  • Re: Bypassare interazione con altri DB / Cartelle in rete LAN

    Per tutte le azioni che interagiscono con la rete, è opportuno implementare una gestione errori, la puoi fare per Funzione/Sub o centralizzata, come ritieni di trovarti meglio, ma devi intercettare i possibili errori restituiti dalle interrogazioni dei Path non locali ed eventualmente generare un Resume al passo successivo.

    Tutto questo di norma è da fare a prescindere, solamente che pochi hanno la buona abitudine di inserire la gestione errori… con le conseguenze che stai sperimentando.

    La stessa cosa banalmente si fa quando devi connettere le Linked al Server… provi se è raggiungibile e se non lo è trovo inutile provare a linkare 150Tabelle…

  • Re: Bypassare interazione con altri DB / Cartelle in rete LAN

    Rispondo  un pò in generale a ognuno.

    La gestione degli errori, per quanto possibile, la inserisco. Nel senso, se durante il funzionamente mi viene segnalato un errore, implemento la gestione. Se non mi viene segnalato niente (che sia in fase di “progettazione” o successivamente), sinceramente non sono capace di prevedere cosa non può funzionare, e quindi non la implemento.

    Durante il “malfunzionamento” rilevato non mi viene restituito nessun messaggio di errore (diversamente, come detto sopra, avrei implementato). L'unica cosa che succede è il messaggino “(Non risponde)” in alto sulla barra del titolo. E nessun altro segno di vita. Unica soluzione CTRL+ALT+CANC.

    Se provavo (oggi funziona di nuovo tutto) ad aprire una cartella sul NAS > rotellina fissa.

    Le funzioni tipo: niente di trascendentale, il 99 % sono di quetso tipo:

    On Error GoTo GestisciErrori
    'Verifica se il file è già in uso
    Dim Percorso01 As String
    Percorso01 = DLookup("Assegnazioni", "tblSistema")
    Percorso01 = Replace(Percorso01, "accdb", "laccdb")
    If Len(Dir(Percorso01)) > 1 Then
      Forms!frmMenuPrincipale!cmdAssegnazioni.ForeColor = RGB(255, 0, 0)
    Else
       Forms!frmMenuPrincipale!cmdAssegnazioni.ForeColor = RGB(11, 183, 43)
    End If
    GestisciErrori:
       If Err.Number = 52 Then Resume Next

    Ossia controllo se altri DB di uso comune sono già in uso o se sono disponibili

    Poi ne ho un paio che importano una tabella ciascuno.

Devi accedere o registrarti per scrivere nel forum
4 risposte