Newsgroup: it.comp.appl.access
Titolo: Controllo Immagine

Buongiorno,
 
Volevo risolvere questo problema (se ci riesco)
 
Ho un controllo Immagine (Immagine10) che mi permette di visualizzare 
l'immagine del prodotto corrente sulla form, da una cartella  \Immagini\  .
 
su corrente della maschera ho:
 
Private Sub Form_Current()
On Error GoTo 10
 
mydir = CurrentProject.PATH
mypath = mydir & "\Immagini\" & Me.CodiceProdotto.Value & ".jpg"
Me.Immagine10.Picture = mypath
GoTo 20
 
10 'errore per foto non trovata
mydir = CurrentProject.PATH
mypath = mydir & "\Immagini\" & "no.jpg"
Me.Immagine10.Picture = mypath
 
20 'tutto ok
 
End Sub
 
ora il problema è che ho dei  CodiceProdotto 30 40 anche 50  che hanno sempre la stessa immagine
per non inserire sempre la stessa immagine nella cartella " \Immagini\" quindi appesantirla inutilmente
come si può ovviare ? 
 
esempio ( sono delle corone trasmissione con dentature diverse )
Codice Prodotto 
1022 32
1022 33
1022 34
1022 35
dove 1022 è sostanzialmente il codice del prodotto e 32-33-34-35 sono il numero dei denti
ma l'immagine è sempre la stessa .
 
puoi vedere questa pagina :
https://we.tl/t-A3VIgYSYV9
 
 
Giuseppe


io per una ferramenta ho risolto cosi, magari può essere uno spunto:
 
Ho un archivio articoli con relativa jpeg che come nel tuo caso hanno 
nome=a codice articolo
 
ho un archivio categorie al quale associo una foto che vale per tutta la 
categoria.
 
nel programma se presente una foto a livello di singolo articolo la 
visualizzo, se non presente vedo se è disponibile quella a livello di 
categoria, se manca pure quella non mostro nulla
 
nel tuo caso quindi abbineresti alla categoria "corona" una jpeg 
generica. Che verrà mostrata solo nel caso non sia presente la foto 
specifica del articolo
 
 
ciao
BFS
 
 
 
 
 
 
 
 
 

 BFS
 
 
Si avevo fatto una CategoriaImmagine 
ma come procedo per stabilire quale immagine vedere , dopotutto 
l'istruzione per vedere l'immagine è:
 
su corrente della maschera 
 
Private Sub Form_Current()
On Error GoTo 10
 
mydir = CurrentProject.PATH
mypath = mydir & "\Immagini\" & Me.CodiceProdotto.Value & ".jpg"
Me.Immagine10.Picture = mypath
GoTo 20
 
10 'errore per foto non trovata
mydir = CurrentProject.PATH
mypath = mydir & "\Immagini\" & "no.jpg"
Me.Immagine10.Picture = mypath
 
20 'tutto ok
 
Giuseppe


supponendo che la jpg della categoria abbia come nome file idcategoria.jpg
 
con un if then else nidificato
 
 
If l'immagine del articolo esiste then
	mydir = CurrentProject.PATH
  	mypath = mydir & "\Immagini\" & Me.CodiceProdotto.Value & ".jpg"
  	Me.Immagine10.Picture = mypath
 
else
	'se entri qui vuol dire che l'articolo non ha una foto	
	if la categoria ha una immagine  then
		 mydir = CurrentProject.PATH
		 mypath = mydir & "\Immagini\" & me.idcategoria   & ".jpg"
  		 Me.Immagine10.Picture = mypath
 
	else
		 mydir = CurrentProject.PATH
		 mypath = mydir & "\Immagini\" & "no.jpg"
  		 Me.Immagine10.Picture = mypath
 
	end if
 
end if
 
per testare se un file esiste usi la funzione Dir
 
https://support.office.com/it-it/article/funzione-dir-1a1a4275-f92f-4ae4-8b87-41e4513bba2e
 
 
esempio
 
If Len(Dir("c:\pippo.mdb")) = 0 Then
    Msgbox "esiste"
Else
    Msgbox "non esiste"
End If
 
 
BFS

 
 
Scusami ma io ho pochissime conoscenze del VBA  
 
Ciao  Giuseppe


intendo che se hai una tabella categorie con id e nome tipo
 
1	catene ducati
2	pignoni ducati
3	corone ducati
 
 
puoi mettere nella tua cartella  una immagine generica per tutti i 
pignoni e la chiami 2.jpg
quella delle catene 1.jpg
quella delle corone 3.jpg
 
quando richiami l'articolo se non è presente il file immagine 
dell'articolo, vai a caricarti quello della sua categoria. se manca pure 
quello carichi il tuo no.jpg
 
 
per testare se il file immagine esiste nella cartella usi la funzione Dir
 
mydir = CurrentProject.PATH
If Len(Dir(mydir & "\Immagini\" & Me.CodiceProdotto.Value & ".jpg" )) >0 
then
	    Me.Immagine10.Picture = mydir & "\Immagini\" & 
Me.CodiceProdotto.Value & ".jpg"
     else
     	If Len(Dir(mydir & "\Immagini\" & Me.idcategoria.Value & ".jpg" )) 
 >0  then
                 Me.Immagine10.Picture = mydir & "\Immagini\" & 
Me.idcategoria.Value & ".jpg"
             else
                 Me.Immagine10.Picture = mydir & "\Immagini\" & "no.jpg"
         endif
 
end if
 
se non si capisce l'indentazione vedi qui
 
https://ibb.co/6Z5WSzY
 
 
BFS
ciao
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 ciao
 
Perfetto  funziona benissimo come previsto
 
Grazie mille Giuseppe