+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 8 su 8

[VBA] Problemi con il caricamento immagini

  1. #1
    stige non è in linea Scolaretto
    ciao a tutti, ho un problema con il caricamento immagini in un db access dove le foto si trovano sul server di rete.

    memorizzo il percorso all'interno del DB, solo che le foto le carica correttamente ma se l'operatore utilizza i selettori dei record (cosa molto utile tra l'altro), dopo le prime due o tre foto il programma mi mette in attesa di caricamento foto e da quel momento non riesco neanche a chiuderlo.



    cosa potrei fare per fare in modo che non ci si sposti dal record a meno che non si abbia la certezza di aver caricato l'immagine?

    penso che il problema sia da ritrovarsi nella lentezza di carico immagine rispetto alla velocità con cui i record vengono fatti scorrere

    vi ringrazio

    ciao
    Ultima modifica di TheTruster; 05-01-2010 16:05  Motivo: Link diretto all'immagine

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Quote Originariamente inviato da stige Visualizza il messaggio
    ciao a tutti, ho un problema con il caricamento immagini in un db access dove le foto si trovano sul server di rete.

    memorizzo il percorso all'interno del DB, solo che le foto le carica correttamente ma se l'operatore utilizza i selettori dei record (cosa molto utile tra l'altro), dopo le prime due o tre foto il programma mi mette in attesa di caricamento foto e da quel momento non riesco neanche a chiuderlo.



    cosa potrei fare per fare in modo che non ci si sposti dal record a meno che non si abbia la certezza di aver caricato l'immagine?

    penso che il problema sia da ritrovarsi nella lentezza di carico immagine rispetto alla velocità con cui i record vengono fatti scorrere

    vi ringrazio

    ciao
    I problemi da analizzare sono più di uno...!
    Innanzitutto c'è da sapere che Access lavora solo con BMP, quindi la dove le foto abbiano estensioni diverse Access inserisce i filtri di conversione Any--->BMP, cosa che dipendentemente dalle dimensioni dell'immagine richiede tempo, la stessa ProgressBar andrebbe rimossa perchè anche lei rallenta la conversione.
    Quì trovi come evitare l'apparizione della progressBar:
    http://www.mvps.org/access/api/api0038.htm

    Ad esempio se hai una JPG da 1Mb... la conversione porta a circa 10Mb in BMP dipendentemente dal livello di compressione.
    Di per se questo dovrebbe scoraggiare chi sviluppa a mostrare le immagini direttamente.

    Io di fatto utiluizzo un metodo molto semplice, non visualizzo l'immagine, e metto un Button che mi apre una Maschera a parte solo se l'operatore lo richiede.

    Se però la gestione delle immagini è snella, e non sono troppo grosse usando molto CODICE, Bypasso i filtri di conversione di Access e faccio lavorare GDI+ come libreria nativa.

    Quì ad esempio trovi 2 Demo, il 2° contiene il codice per caricare in memoria via GDI+ le immagini e velocizzare il caricamento:
    MS ACCESS Code Sample - versione usabile/accessibile

    Ciò non toglie che userei, per quanto possibile la tecnica descritta inizialmente.
    Ultima modifica di TheTruster; 05-01-2010 16:05 
    ℹ️ Leggi di più su @Alex ...

  3. #3
    UGoldrake non è in linea Scolaretto
    Ciao Stige,
    ho creato un programma che carica i percorsi delle foto su un mdb di access, quindi credo qualcosa di molto vicino al tuo programma; al di là dei consigli di Alex che voglio approfondire meglio perchè molto interessanti, e siccome non avevo quei consigli, ho bypassato il tutto con un checkbox che se acceso mi fa vedere l'immagine del record corrente, altrimenti mi mostra tutti gli altri campi tralasciando il caricamento dell'immagine.
    In pratica prima di cambiare record se vuoi vedere l'immagine accendi il checkbox, altrimenti lascialo spento e gira tra i record a scheggia perchè carica solo i dati degli altri campi che saranno semplici testi.
    Ciao. Ugoldrake.

  4. #4
    stige non è in linea Scolaretto
    Alex,
    ho dato un occhiata e devo dire che per quanto riguarda il caricamento - selezione - sostituzione e modifica immagine da programma non ho problemi, avevo a suo tempo preso un esempio e su quello ero riuscito a integrarlo nel mio programma senza problemi.

    I guai sono altri, la progress barr ed il conseguente blocco dell'applicazione ad esempio.

    Ho visto la parte che riguarda le cose da fare per eliminarla ma onestamente parlando non ci ho capito molto, carina è la routine da integrare che l'annulla anche se però se i record vengono fatti scorrere velocemente la barra si ripresenta.

    Ho provato a cambiare le immagini da jpg a bmp ma la qualità che viene visualizzata è veramente pessima

    UGoldrake
    l'idea non è male, ma il problema è che
    ci sono utenti privilegiati che vogliono scorrere i record senza doversi perdere a schiacciare/scegliere opzioni e purtroppo so già che non me la farebbero usare.


    Ragazzi non so come ringraziarvi per la vostra disponibilità, un grazie è il minimo
    Ultima modifica di stige; 11-01-2010 13:01  Motivo: risolto parte del problema

  5. #5
    UGoldrake non è in linea Scolaretto
    Ciao Stige,
    la mia idea vale solo se vuoi dare la priorità ai dati piuttosto che alle foto, se non vuoi usare schiacciare / scegliere, allora ti propongo un metodo alternativo: inserisci il checkbox, nascondilo insieme al controllo DATA da qualche pate senza usare visible=false, e associa a DATA un controllo UpDown usando UpDown_Change; utilizzando gli altri metodi di UpDown potresti intercettare il UpDown_MouseDown per flaggare il checkbox ed il UpDown_MouseUp per deflaggarlo (o viceversa?), bypassando il discorso dello schiaccia / scegli.
    Ehi, ti ho solo dato l'idea, io non l'ho mai messa su questo piano.
    Ciao. Ugoldrake.

  6. #6
    stige non è in linea Scolaretto
    Quote Originariamente inviato da UGoldrake Visualizza il messaggio
    Ciao Stige,
    la mia idea vale solo se vuoi dare la priorità ai dati piuttosto che alle foto, se non vuoi usare schiacciare / scegliere, allora ti propongo un metodo alternativo: inserisci il checkbox, nascondilo insieme al controllo DATA da qualche pate senza usare visible=false, e associa a DATA un controllo UpDown usando UpDown_Change; utilizzando gli altri metodi di UpDown potresti intercettare il UpDown_MouseDown per flaggare il checkbox ed il UpDown_MouseUp per deflaggarlo (o viceversa?), bypassando il discorso dello schiaccia / scegli.
    Ehi, ti ho solo dato l'idea, io non l'ho mai messa su questo piano.
    Ciao. Ugoldrake.
    se me lo traduci in un italiano adeguato ad un neofita pari al mio livello te ne sono grato

    non ho le conoscenze adeguate per fare questo e mi piacerebbe capire meglio a cosa ti riferisci

    ciao

  7. #7
    UGoldrake non è in linea Scolaretto
    Ciao Stige, procediamo con ordine, avevi detto che trovavi interessante il mio metodo, senza nulla togliere ad Alex, ci mancherebbe, comunque se vuoi provare devi fare così.

    Crea un controllo Checkbox e un controllo UpDown scegliendoli tra gli strumenti di VB.
    Associa UpDown al controllo DATA, come hai fatto per gli altri controlli TextBox ecc... che avrai già inserito sul form.
    Nel metodo MouseDown di UpDown, UpDown_MouseDown, imponi un IF scritto in maniera che se il valore del CheckBox è False allora NON caricare la foto, ovviamente sarà caricata se True.
    Fine.
    P.S.: come carichi le foto lo sai tu, il codice lo stai già usando, continua ad usarlo.

    Questa è la prima parte, quella importante, la seconda parte riguarda la forma. Devi fare i test quando arrivi a questo punto, e intendo che devi verificare il caricamento delle foto piuttosto che dei soli testi degli altri campi, compresi i campi memo, se ne hai.

    Potrai notare che se tieni premuto il tasto del controllo con il CheckBox spento, i record scorrono veloci, e questo ti evita di usare il controllo DATA dove devi schiacciare ad ogni record, qui basta tenere premuto.

    Seconda parte.
    Te la dico un'altra volta, ora fai le prove, se ti piace andiamo avanti.

    Ciao. Ugoldrake.

  8. #8
    stige non è in linea Scolaretto
    Quote Originariamente inviato da UGoldrake Visualizza il messaggio
    Ciao Stige, procediamo con ordine, avevi detto che trovavi interessante il mio metodo, senza nulla togliere ad Alex, ci mancherebbe, comunque se vuoi provare devi fare così.

    Crea un controllo Checkbox e un controllo UpDown scegliendoli tra gli strumenti di VB.
    Associa UpDown al controllo DATA, come hai fatto per gli altri controlli TextBox ecc... che avrai già inserito sul form.
    Nel metodo MouseDown di UpDown, UpDown_MouseDown, imponi un IF scritto in maniera che se il valore del CheckBox è False allora NON caricare la foto, ovviamente sarà caricata se True.
    Fine.
    P.S.: come carichi le foto lo sai tu, il codice lo stai già usando, continua ad usarlo.

    Questa è la prima parte, quella importante, la seconda parte riguarda la forma. Devi fare i test quando arrivi a questo punto, e intendo che devi verificare il caricamento delle foto piuttosto che dei soli testi degli altri campi, compresi i campi memo, se ne hai.

    Potrai notare che se tieni premuto il tasto del controllo con il CheckBox spento, i record scorrono veloci, e questo ti evita di usare il controllo DATA dove devi schiacciare ad ogni record, qui basta tenere premuto.

    Seconda parte.
    Te la dico un'altra volta, ora fai le prove, se ti piace andiamo avanti.

    Ciao. Ugoldrake.
    Ci proverò però ammetto di non avere le conoscenze utili per questo tipo di operazione.

    per ora grazie

    ciao

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Gestione caricamento immagini con dialog box in WebBrowser
    Da limiti nel forum Visual Basic .Net
    Risposte: 7
    Ultimo Post: 28-07-2016, 21:58
  2. Barra di avanzamento durante il caricamento delle immagini
    Da UGoldrake nel forum Visual Basic 6
    Risposte: 8
    Ultimo Post: 21-12-2014, 15:52
  3. Risolto: Caricamento di immagini da tabella con PowerPdf
    Da crivani nel forum Delphi
    Risposte: 9
    Ultimo Post: 12-03-2012, 21:11
  4. Risolto: Combinazione immagini in base allo stato di caricamento
    Da fpta09 nel forum Visual Basic .Net
    Risposte: 5
    Ultimo Post: 02-01-2011, 00:13
  5. [Firefox] Problema con il caricamento delle immagini
    Da TheTruster nel forum Microsoft Windows
    Risposte: 6
    Ultimo Post: 08-03-2008, 09:22