Immagini delle copertine sulla maschera

di il
9 risposte

Immagini delle copertine sulla maschera

Premetto come sempre che sono all'inizio dello studio di access, ho provato diversi settaggi ma non sono riuscito ad ottenere ciò che voglio.
In sostanza ho una tabella che contiene i dati dei cd nella quale un campo è destinato alla copertina. Prime domande: che tipo di dati dare alla tabella preferibilmente e che estensione devono avere i file delle copertine?
Vorrei come primo risultato ottenere che in maschera le copertine si vedano, possibilmente non allegandole al database ma collegandole come collegamenti esterni. Cosa devo inserire nella maschera? Un oggetto OLE o altro?
Infine sarebbe bello (ma forse troppo) se l'icona delle immagini apparisse in tabella al posto della scritta Package.
Mi sono letto un po' di documentazione e non ne vengo a capo, soprattutto perché in molti casi c'è del codice VB che non capisco, ma non credo che serva VB per fare ciò che voglio.

9 Risposte

  • Re: Immagini delle copertine sulla maschera

    Le Immagini è bene siano BMP per questioni di velocità di caricameto.

    Il Campo nella Tabella deve essere di tipo TESTO, 255 Char.
    In questo campo devi inserire il PATH dell'immagine, a questo punto sta a te definire se il PATH deve essere ASSOLUTO(quindi non muovi più il tuo applicativo o Foto da dove le hai messe) o RELATIVO(quindi salvi solo la SubFolder ed il Nome, ma in fase di assegnazione dovrai ricomporre il PATH completo).
    Questa seconda Opzione, che io preferisco, ti da modo di spostarti il tuo applicativo dove e come credi.

    Serve il VBA...?
    Si, per 2 cose...
    1) Selezionare l'immagine da assegnare alla Copertina... devi aprire il FileDialog e lo fai con VBA.
    2) Caricare l'immagine nel controllo Immagine su Evento CURRENT di maschera, ricostruendo il PATH se hai usato l'opzione 2.

    La cosa è semplice, ma se non hai un minimo di autonomia in VBA è ingestibile.

    Ricorda che la visualizzazione di Immagini è fattibile solo su MASCHERA CONTINUA, quindi avrai una Maschera con Sottomaschera quindi 2 Tabelle relazionate 1-Molti...
    La Maschera rappresenta l'ALBUM in visualizzazione SINGOLA e la Sottomaschera le Singole Canzoni in visualizzazione continua, ed il campo IMMAGINE sarà nella Tabella che popola la Maschera, quindi nell'Album.
  • Re: Immagini delle copertine sulla maschera

    Ho trovato un modo per fare quasi tutto senza utilizzo di VB. Quasi perché le immagini non sono linkate ma fanno parte del database con i relativi pregi e difetti del caso. Per me sono più i difetti comunque il modo è creare un nuovo oggetto bitmap immagine con il paint. Dato che sono ancora una boccia sia con access che con visual, per ora mi accontento.
  • Re: Immagini delle copertine sulla maschera

    La mia risposta vuole essere soltanto una forma di solidarietà con Giancarlo, non necessariamente la soluzione del problema, in quanto ho dei database molto simili al suo.

    1) La soluzione di @Alex è quella meno dolorosa da un punto di vista organizzativo e di peso del database, ma occorre conoscere Access avanzato.
    2) La soluzione che hai adottato tu può funzionare direi fino a un massimo di 100 (forse anche meno) immagini che ti consiglio di rendere le più piccole possibili (sempre BMP si intende), oltre 100 il database comincia a essere sempre più lento e controproducente.
    3) Un'altra ottima soluzione sarebbe quella del campo "collegamento ipertestuale", che dovrebbe dare gli stessi risultati della soluzione proposta da @Alex, ma si dà il caso che ogni volta che ci clicchi dentro Access invia un messaggio del tipo "attenzione ai collegamenti ipertestuali ecc..." che sembra essere un controsenso: per eliminare tale messaggio occorrerebbe mettere mano a delle impostazioni del sistema operativo davvero complicate che non so chi ha voglia di rischiare di modificare. A seconda dell'utilizzo che vuoi farne, io ho aggirato l'ostacolo esportando questa o quella tabella/query in HTML il quale non mostra quel fastidioso messaggio. È pur vero che il mio scopo era di utilizzo pubblico e, dopo aver riscontrato che la maggior parte degli amici/utenti/appassionati non sa usare Access (addirittura neanche lo installano), ho dovuto percorrere questa strada. Ovviamente questo discorso non c'entra nulla con l'uso delle maschere ecc...

    Come vedi ognuna delle 3 soluzioni ha i suoi pro/contro.
  • Re: Immagini delle copertine sulla maschera

    Grazie per avermelo detto, io stavo già inserendo copertine in paint ma se si blocca dopo soli 100 records non è la soluzione ideale, allora piuttosto rinuncio a mettere le copertine. Naturalmente nel frattempo sono sorti anche altri problemi che se dovessi scrivere un post ogni volta riempirei il forum
  • Re: Immagini delle copertine sulla maschera

    Non è questione che si blocca... e 100 Records non è un limite scritto da nessuna parte...!

    Le cose sono un pò più complesse, ed a scanso di informazioni o considerazioni ERRATE è bene fare chiarezza.

    Le immagini caricate/inglobate in campi OLE, ovviamente aumentano le dimensioni del DB...
    COME...?
    Se le Immagini hanno formato BMP l'aumento della dimensione del DB è proporzionale alla dimensione dell'immagine caricata(più un pezzetto fisso chiamato header poche decine di KB circa), quindi immagine=100Kb--->Aumento=110Kb(circa).

    Se le immagini hanno formati differenti come i COMPRESSI(JPG) non supportati dai campi OLE di JET, i filtri di conversione applicano una conversione IMPLICITA in BMP, e come saprai una JPG da 100KB, potrebbe diventare una BMP da qualche MB... a seconda dell'immagine... dei parametri di compressione ecc...!
    Da quì quel 100Records... in quanto 100 Immagini da 1Mb l'una sono certamente oltre ad 1GB di memoria vincolata...
    Chiaramente un DB con 2GB di immagini non è nemmeno in grado di aprirsi...!

    Ovviamente, avere in una Tabella un campo molto pesante, rende il DB assai poco efficiente...
    Il Limite fisico del DB sono 2GB da A2007 in avanti... tuttavia è una tecnica da evitare come ti ho già spiegato inizialmente.

    Ovvio che tutti questi concetti si scontrano con la capacità tecnica di chi sviluppa... ma questo è un problema che non rientra nello scopo del Forum.
  • Re: Immagini delle copertine sulla maschera

    Scusate, ma che utilizzo può avere il campo OLE se dopo ~100 immagini inserite (= 100 records) il DB va in tilt?
  • Re: Immagini delle copertine sulla maschera

    Per "giancarlo75":
    - probabilmente hai già risolto; nel caso contrario, se ho ben capito le tue esigenze, mi permetto di segnalarti come ho risolto io in un mio Db_Libreria (di casa) per catalogare i miei Libri, con una maschera che, dopo l'ingresso dei dati mi facesse vedere anche la foto del Libro e quella dell'Autore.
    -Nella maschera dati ho messo due diverse immagini (menù strumenti da visualizz.ne struttura) che ho collegato ad un file in "C:\Documenti" dove risiedono (tutte in formato ".png") le immagini dei Libri e degli Autori. Le due immagini di default recano la scritta "nessuna immagine trovata" ed appaiono quando la ricerca non restituisce alcun risultato valido, altrimenti appare l'immagine giusta: come ? ; con un paio di routines in VB nelle quali ci sono le due chiamate al percorso di ricerca delle varie immagini. Non "pesa" molto,per il formato .png non ho superato i 100 Kb cad.. Sono a circa 200 Libri e il Db"gira" ancora discretamente.
    Non mi permetto di confrontare la soluzione alle 2 ben più coerenti soluzioni di @Alex e di OsvaldoLaviosa, con le spiegazioni offerte a corredo; ti indico solo come ho fatto io.
    Saluti
  • Re: Immagini delle copertine sulla maschera

    Hai proposto esattamente quello che ho proposto io alla mia prima risposta...
    Ho solo aggiunto al considerazione funzionale del Formato, che ovviamente va valutato a seconda di chi sviluppa e se deve o meno distribuire...
    Quindi nulla di nuovo, chiaramente, poi si possono apportare tutte le varianti di ottimizzazione del caso per le immagini, caricandole via API sfruttando GDI++, ma serve una conoscenza molto buona delle API e non solo del VBA... cosa per nulla scontata nè banale.
  • Re: Immagini delle copertine sulla maschera

    Sono ovviamente d'accordissimo su quanto spieghi, molto più analiticamente di me, @Alex; ho solo proposto la via in modo schematico, anche se forse ripetitivo. Ti ringrazio sempre per i passaggi e le considerazioni che fai nelle tue risposte perchè aiutano a non dare sempre tutto per acquisito (anzi). Come diceva un mio buon amico "vorrei sapere quello che tu ti scordi" (!).
    Saluti cordiali
Devi accedere o registrarti per scrivere nel forum
9 risposte