Problema gestione importazione file

di Anonimizzato15425 il
5 risposte
Ho creato un database che importa migliaia di file di testo da alcuni sistemi interni nel reparto dove lavoro.
Il database poi elabora, processa questi file e crea una reportistica. Ho tre pulsanti che importano i file da tre fonti diverse, li chiamero' A B e C.
Il codice, le macro, le query funzionano e i report sono esatti. Il problema e' che quando faccio partire l'elaborazione A e poi dopo B tutto a posto, quando premo C per importare i file il database dopo un po' che importa i file genera errori che a guardare il codice e le query non hanno motivo di esserci.
Infatti se chiudo il database, lo riapro e faccio partire solo l'elaborazione C tutto va come deve andare. Oppure premo B e C, tutto ok.
Ho come l'idea che quando vado da A a C ci sia un problema di gestione della memoria che, una volta chiuso e riaperto il database scompare per tornare a una situazione iniziale e ideale per importare questa gran quantita' di dati e processarla.

Quindi vorrei risolvere il problema in questo modo: dopo A e B e' possibile da VBA simulare la chiusura del database (senza chiuderlo realmente) e fare in modo che il db possa tornare a uno stato iniziale "puro" come quando lo si apre?
Grazie.

5 Risposte

  • No
  • Dreamer456 ha scritto:


    ..........Quindi vorrei risolvere il problema in questo modo: dopo A e B e' possibile da VBA simulare la chiusura del database (senza chiuderlo realmente) e fare in modo che il db possa tornare a uno stato iniziale "puro" come quando lo si apre?
    Grazie.
    Come puoi pensare che la risoluzione di un probabile bug del tuo programma si risolva chiudendo e riaprendo l'applicativo?
    La ricerca devi effettuarla individuando un processo che, probabilmente, si attiva, secondo quanto hai descritto, dopo avere premuto il pulsante "A".
    Analizza il codice in esecuzione dopo avere premuto il pulsante "A" e rintraccia qual è il processo che non si chiude al termine dell'importazione, mantenendo bloccata l'esecuzione di ulteriori istruzioni.
  • Non penso che il problema sia A. Perche' ho fatto girare le elaborazioni in tutte le combinazioni possibili:
    Prima A che importa ed elabora poi B che importa ed elabora poi C che inizia a importare. Poi dopo un po' C mi da' errore.
    Lancio B poi C. Tutto ok. Lancio A e dopo un po' arriva l'errore.
    Lancio C poi A. Tutto ok. Lancio B e dopo un po' arriva l'errore.
    Provato tutte le coppie possibili di elaborazioni. Tutto ok, se invece le lancio tutte e 3 una dopo l'altra come ho descritto, arriva l'errore.
    L'errore arriva sempre con un "property not found" della riga tranfertext che importa i file. Ripeto la riga e' sempre la stessa, importa miglialia di file senza problemi poi quando arriva alla terza elaborazione, dopo un po' che importa, si pianta. La cosa strana come ho detto e' che se chiudo il database, lo riapro e faccio partire l'elaborazione che ha dato errore, va tutto ok, percio' pensavo a qualcosa che l'ambiente access non riesce a gestire bene.
    Ripeto, l'errore e' apparentemente inspiegabile perche' quella riga e' sempre la stessa che importa tutti i file....ed e' quella che va bene quando importa i file delle 2 precedenti elaborazioni.
    Non uso variabili globali, tutto si dovrebbe aprire e chiudere chiamando le singole sub. La ruotine di importazione e' sempre la stessa sia che parte A, B, o C. Non trovo un minimo di spiegazione logica in tutto questo.
  • Il Runtime error 3270 (Property not found) nel metodo Tranfertext, può essere dovuto da una serie di motivazioni, qui di seguito ne vengono riportate alcune:
    https://msdn.microsoft.com/en-us/vba/access-vba/articles/property-not-founderror-3270
    http://www.utteraccess.com/forum/Runtime-Error-3207-Proper-t1999519.html
    https://bytes.com/topic/access/answers/785064-transfertext-error
    https://access-programmers.co.uk/forums/showthread.php?t=286236
  • Aggiornamento: l'errore che mi dava non era il Property not found ma questo: 3310 -This property is not supported for external data sources or for databases created with a previous version of Microsoft Jet.
    E' capitato anche ad altri che si sono trovati nelle medesime condizioni. Importare migliaia di file in una singola "sessione" con il docmd.transfertext:
    https://stackoverflow.com/questions/35732725/access-vba-mass-text-file-import-run-time-error-3310
    https://social.msdn.microsoft.com/Forums/vstudio/en-US/d9aab0ab-fe8e-4850-9fc0-0c6958caf2b9/error-3310-this-property-is-not-supported-for-external-data-sources-or-for-databases-created-with?forum=accessdev

    A quanto ho capito e' un limite strutturale del metodo transfertext. Peccato perche' era tanto comodo ma a questo punto anche limitato e inaffidabile. Dovro' inventarmi qualcos'altro per importare i file.
Devi accedere o registrarti per scrivere nel forum
5 risposte