Newsgroup: it.comp.appl.access
Titolo: Visualizzare un campo in un controllo immagine

problema è probabilmente semplice per chi è pratico... io ci sto sbattendo
la testa da una settimana...
PROBLEMA: ho un batabase i cui campi sono nome, testo1, testo2, immagine1,
immagine2 ecc..
N.B. i campi immagine1 e immagine2 non sono link ma piccole immagini BMP
incorporate nel db
Ho creato la maschera in cui impostando una ricerca (solitamente sul nome)
visualizzo i vari campi, e fin qui niente di drammatico.
Mi sono arenato però nella visualizzazione dei campi immagini associate
(immagine1 e immagine2)...
Non c'è verso di visualizzarli, il meglio che son riuscito a fare è vederli
in formato testo... alias vedo una serie di caratteri che iniziano con BMP..
che non è esattamente ciò che avrei voluto ;oP
L'idea, dopo aver spulciato a destra e manca fra siti e motori di ricerca
sarebbe di esportare i due campi in due file temporanei (es: c:\1.bmp e
c:\2.bmp) e reimportarli poi nella maschera di ricerca......
Facile? Immagino di si, ma se non fosse ancora chiaro mastico poco Access e
meno ancora VBA (il poco basic che ricordo risale ai tempi del C64...) e
questo non aiuta.
Qualche anima pia che in modo chiaro e foolproof mi guidi verso l'uscita?
Seconda domanda... magari un consiglio per un testo chiaro e abbastanza
completo da comperare su Access?
Se poi volessimo esagerare non sarebbe male riuscire a convertire i campi
BMP in GIF..... il DB è attualmente un malloppone di 300 mega...  ma non
vorrei abusare
egrassie mauro
P.S. lo so sarebbe stato meglio linkare le immagini tenendole all'esterno,
ma il Db di circa 20000 record ormai è fatto..... e buona parte degli
originali chissà dove sono finiti...

 ha scritto nel messaggio 
news:JtpYd.1044088$35.38...@news4.tin.it...

La prima domanda che mi viene : I campi che contengono le immagini sono
oggetti che visualizzano immagini ( ActiveX o oggetto Immagine?)
Se SI allora io ti propongo (ho il campo [foto] che contiene il percorso al 
file e l'oggetto imm che è un activex contenitore di immagini):
le seguenti righe le metto solitamente sull'evento Current della maschera
     If Nz(foto) <> "" Then
        imm.Picture = LoadPicture(foto)
    Else
        imm.Picture = LoadPicture("") ' questo si avvera se non ho allegata 
una immagine o se il record è NEW
    End If
Questa è la soluzione con immagini FUORI  dal DB (solitamente si crea una 
cartella per raggrupparle tutte assieme in caso di trasferimenti o backups, 
ma non è indispensabile!).
Per le immagini contenute nel DB potresti copiare ogni immagine contenuta in 
una cartella ed adattare il codice.
Ivan

 una cartella ed adattare il codice.
ok sto facendo il tutto.... macchinosetto anzichèno, visto che non so come
farlo in Access ho salvato in un file .csv le due colonne nome, immagine1.
Caricato il file in Ultraedit ho creato una macro che salva ogni record in
un file nome.bmp...
Vabbè l'importante è riuscire a recuperare le immagini.
Magari qualcuno che ha del tempo da perdere mi spiegherebbe come farlo da
Access?
Il problema principale sarà in seguito modificare il DB originale
aggiungendo un campo in cui inserire il link all'immagine.
In linea di principio qualcosa di questo genere:
For n = 1 to NumeroRecord
Nome$= Leggi dal Record #n il Campo Nome
   Filename$= "Drive:\path\"+Nome$+".bmp"
      'Alcuni Record non hanno una immagine associata
      'quindi facciamo un check, se fallisce linkiamo
      'un file dummy, solo sfondo
      IF exists Filename$
           Scrivi nel CampoLink Filename$
      Else Scrivi nel CampoLink "empty.bmp"
Next n
Potrebbe anche funzionare, se sapessi come tradurlo in linguaggio
comprensibile ad Access
e sapessi esattamente come creare l'evento Current... eheheheh
Beh mi sa che dovrò procurarmi un testo sacro e leggermelo prima di
proseguire.
Non volendo abusare mi riserverò di richiedere appena mi sarò sgrezzato
almeno un pò. :oP
grazie mauro

 grazie mauro
Scusa Mauro davo per scontata questa info.
Levento Current è quello della tua Form. In Italiano trovi scritto Su 
Corrente come evento della maschera: ma viene tradotto in Form_Current se 
inserisci del codice (questo perkè VBA è tornato in Inglese!)
L'evento Form_Current si verifica ogni volta che cambia il record CORRENTE 
(current), quindi se ti sposti al record precedente o successivo. Esso si 
verifica quindi anche in apertura della maschera che fa diventare current 
il primo record possibile.
Se il record è nuovo (NEW) allora io so che non ho ancora associato una 
immagine (!!!) e quindi non tento di farla caricare alll'oggetto [imm].
Comunque capisco che non sia facile dominare questa materia così complessa, 
ma anche cervellotica( certe azioni sono eseguibili in automatico, altre 
devono essere pilotate da VBA e così via....) ma alla fine le soddisfazioni 
sono assicurate!
bf (Buona Fortuna) hf (have fun)  gl (good look)
-- 
-- 
      /)/)               IVAN                (\/)
     (  '.')         NMCBRMC         ( '.' )
  o(_('')('')                               (")(")_)*
Non Microsoft Certified But Regular
             Microsoft Consumer


sempre sul sito che ti ho indicato c'è un esempi per realizzare 
correttamente un archivio di immagini...
Ciao.
-- 
Sergio MAZZA 

 immagini da campi "oggetto OLE";
Il sito me lo sono scorso tutto (insieme a decine di altri), è molto
interessante, ma manca completamente di un settore 'newbie'. Lo stesso vale
per quasi tutti i contributi, in cui i commenti sono molto spesso scarni,
quando non mancano completamente. Questo li rende difficilmente
comprensibili (sempre per i principianti), peccato...
L'ho comunque aggiunto ai bookmark per quando avrò superato la fase di
iniziazione ;oP
ciao e grazie comunque :o)
 mauro

 ha scritto nel messaggio 
news:enYZd.1070246$35.39...@news4.tin.it...

Anche se parte dei tuoi pensieri posso condividerli, il settore "newbie" non 
può essere contemplato per chi vuole utilizzare certe tecniche (leggi: 
estrapolazione di immagini in campi OLE); il sito comune è un contenitore di 
esperienze ed esempi per chi vuole crescere, studiando... Ovviamente.
Preciso che la segnalazione del sito è data solo dalla tua richiesta: 
"...Vabbè l'importante è riuscire a recuperare le immagini. Magari qualcuno 
che ha del tempo da perdere mi spiegherebbe come farlo da Access?...", non 
certo per pubblicità o altro; ovviamente non ho tempo da perdere ma la 
segnalazione dove trovare la soluzione te lo data. E non avrai certo pensato 
che si risolveva tutto con una istruzione o magari una macro (brrr!!)?
Ciao.
-- 
Sergio MAZZA 

 che si risolveva tutto con una istruzione o magari una macro (brrr!!)?
A parte che non vedo niente di blasfemo se un novellino pensa che la
soluzione possa non essere complicata, il punto e il mio appunto non era
questo, era solo la richiesta, anzi la speranza, di avere spiegazioni
chiare, e sopratutto semplici, come si suppone si debba fare appunto con un
novellino.
Maneggio computer dai primi anni 80, per hobby mi dedicavo e spesso lo
faccio
ancora, al reverse engineering, so leggere e comprendere un listato in
assembler, in delphi e in C, anche se non mi sono mai dedicato ad
approfondire alla programmazione per mancanza di tempo. Ai bei tempi
conoscevo a memoria il kernel del commodore 64 e poi dell'Amiga. Questo per
dire che so bene che non ci si avvicina a questo nuovo (per me) argomento
coll'idea del tutto subito o del cotto e mangiato. Ma so anche per
esperienza che ci sono due modi di fare e spiegare le cose, uno semplice e
comprensibile, e uno complicato. Nel fare, l'importante è che il risultato
sia corretto, nello spiegare l'importante sarebbe farsi capire.
Detto questo mi spiace di averti in qualche modo piccato nel post
precedente, non era assolutamente nelle mie intenzioni fare delle critiche
negative, magari solo di dare qualche suggerimento per aumentare la
fruibilità da parte di chi si avvicina la prima volta, confermo la mia
opinione nella validità di questo NG e dei contenuti del sitocomune, oltre
che nella giustezza della tua opinione che niente possa sostituire lo
studio.
ciao mauro

 ciao mauro
HO programmato 10 anni l'assembler dal VIC20 all'AMIGA, ma dopo 10
anni di pausa, quando ho ripreso in mano il PC, che ho iniziato
con VisualBasic ho passato 6 mesi a studiare ed a leggere i Post
di 6 NG(Italiani ed Inglesi) senza partecipare.
Mi sono fatto un pò le ossa.
Le vecchie tecniche di programmazione non servono ad altro
che a capire alcuni concetti, ma la prorammazione attuale,
anche dell'assembler è estremamente complessa e diversa.
Ovviamente non parlo di scrivere 2 righe di un ciclo, ma di applicare
i concetti fondamentali del moderno, dal Polimorfismo all'ereditarietà
delle Classi(cosa che in VB/VBA) è ancora un sogno.
Relativamente al Reverse che hai citato era roba vecchia, fattibile
ancora ai tempi dell'orso YOGHI ora per parlare di Reverse senza
fare figuracce occorre stare attenti...!
In ogni caso, se hai una motivazione ed una buona base tecnica
lo stato di principiante si supera in qualche mese.
Per rimanere nel tuo Problema invece la tecnica che volevi usare
è estremamente Semplice quanto errata, non si appoggia
a campi MEMO ma a campi OLE, e sul SC cè sia come importare
che come esportare ed è tutto quello che ti server per fare
quanto hai richiesto...!!!
Cosa mancherebbe, vuoi sapere che il File viene scomposto in BINARY
DATA ed inglobato in un OLE...?
C'è scritto nel codice, visto che apre il File in modalità BINARY.
Detto questo se non trovi proprio il tuo ideale sviluppato 
ad OC non può essere una colpa del SC, ma un'incentivo per
te a studiare e magari realizzare un DEMO più semplice ed
inviarlo al SC.
Saluti
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 inviarlo al SC.
Ho quasi finito, nonostante capire come si faccia ad inserire un evento
current in una mascehra mi abbia richiesto quasi una settimana di ricerche,
il sitocomune non è l'unico posto in cui si dà per scontato che si sappiano
delle cose che sì sono elementari, ma che proprio per questo sono trascurate
da tutti, e il povero novizio ci perde la testa.
Realizzata finalmente la maschera di interrogazione, devo adesso cimentarmi
con una di inserzione e modifica, alla velocità a cui sto andando ci vorrà
un mese :o). Ma è una buona palestra. Si impara più da un errore che da
cento cose riuscite.
RTFM read the fu**ing manual? Eheheh vero non sarebbe male, se ne avessi il
tempo, e se fossero fatti come si deve, compresi gli help di Office, che
sono l'ultimo posto dove si riesca a trovare un'informazione.
L'idea del demo non è male, chissà che non serva ad evitare ad altri di
impazzire.
ciao mauro