Newsgroup: it.comp.appl.access
Titolo: RecordSet da ciclare

Ciao
Ho una forms che, in 6 controlli immagine, mi visualizza 6 immagini il cui
path è preso da una tabella.
io ho scritto,nell'OpenForm , in questo modo :
Dim dbs As Database
Dim rst_foto As Recordset
Dim s, nome As String
Dim path As String
Dim n As Integer
Set dbs = CurrentDb
path = Forms!VediSingolo!little_path
Set rst_foto = dbs.OpenRecordset(path)
n = rst_foto.RecordCount
If n > 6 Then Forms!Show!Fr_Fwd.Visible = True
With rst_foto
             s = rst_foto!NomeFile
             Forms!Show!Immagine1.Picture = path & s
             .MoveNext
              s = rst_foto!NomeFile
             Forms!Show!Immagine2.Picture = path & s
             .MoveNext
             s = rst_foto!NomeFile
             Forms!Show!Immagine3.Picture = path & s
             .MoveNext
             s = rst_foto!NomeFile
             Forms!Show!Immagine4.Picture = path & s
                        .MoveNext
             s = rst_foto!NomeFile
             Forms!Show!Immagine5.Picture = path & s
                        .MoveNext
             s = rst_foto!NomeFile
             Forms!Show!Immagine6.Picture = path & s
   End With
End Function
****************************************************************************
*************************************
Ora, al di la che il codice non è tra i migliori per funzionalità (accetto
volentieri consigli per migliorarlo), vorrei sapere questo.
Ho piu' di 6 immagini da visualizzare, ed ho messo 2 pulsanti nella form
(Fr_Fwd e Fr_Rew) che dovrebbero farmi "scorrere" un pacchetto di 6 foto.
Ma, e qui sta la difficoltà, nn so come far ripartire il recordset in modo
che mi visualizzi dalla settima immagine alla dodicesima .
E' da tener presente che le immagini sono decisamente tante.
Avete qualche idea?
grazie anticipate
Emilia

 Avete qualche idea?
C'è un esempio di gestore immagini che fa proprio questo sul sito comune ...
dagli un occhio.
Ciao: Silvio

 ...non riesco a trovarlo

 > ...non riesco a trovarlo
Sezione "General"; "Implementare un archivio d'immagini"
Ciao: Silvio

 Ciao: Silvio
ottimo lavoro, Silvio, complimenti, ma...volevo finire il mio modestissimo
database,e volevo informazioni sul recordset, se fosse possibile.
grazie
Emilia

 database,e volevo informazioni sul recordset, se fosse possibile.
Pardon: dato che il problema (ma forse ho frainteso) pareva analogo ...
credevo un esempio già pronto potesse far comodo!
Ciao: Silvio

 Emilia
Ciao,
Massimo
-- 
web: 
www.piubelli.net
Vuoi il mio indirizzo? Togli _cut_ per rispondermi

 ha scritto nel messaggio
news:3PWtc.360942$rM4.14...@news4.tin.it...

In realtà non potrebbe mai funzionare in questo modo, un Recordset
non si apre passando una Path, ma passando l'origine di una Tabella o
Queries....!
Presumo pertanto tu abbia una Tabella nella Quale abbia salvato il Path
Relativo e non Assoluto delle Immagini.
A questo punto l'apertura del Recordset si fà così:
Set rst_foto = dbs.OpenRecordset(NomeTabella)
Ora però il problema è che in questo modo hai estratto tutti i Records.
A questo punto spero tu abbia un Campo Numerico nella tabella.
In questo modo dovrai solo Aggiornare l'ultimo Riferimento aperto.
Salvi in una Variabile Statica nella Routine di Aggiornamento il Valore
dell'Ultimo
IdNumerico delle Foto.
Questo ti aiuta perchè all'inizio sarà=0 e potrai sfruttare una Query.
In pratica(mi permetto di ottimizzare la cosa in quanto odio gli sprechi di
codice:
Private Sub RefreshFoto()
Dim dbs As Database
 Dim rst_foto As Recordset
 Dim path As String
 Dim n As Integer
Static stLast as Integer
 Set dbs = CurrentDb
 path = Forms!VediSingolo!little_path
 Set rst_foto = dbs.OpenRecordset("SELECT * FROM NomeTAbella WHERE
IDNumerico>" & Nz(stLast,0))
'Controlla se esistono Records nella Tabella
If rst_foto.eof and rst_foto.bof then Msgbox"Nessuna Foto":Exit Sub
'Queste operazioni sono necessarie per essere sicuro che il RecordCount sia
Reale e dAggiornato
rst_foto.Movelast
rst_foto.MoveFirst
 n = rst_foto.RecordCount
 If n > 6 Then Forms!Show!Fr_Fwd.Visible = True
 n=0
 With rst_foto
        do until n<6
            n=n+1
            s = Nz(rst_foto!NomeFile)
            Forms!Show.Controls("Immagine" & cstr(n)).Picture = path & s
           stLast=rst_foto!IdNumerico
            .MoveNext
         loop
  End With
End sub
Poichè i Controlli immagine si chiamano tutti con il progressivo ho
accorciato il tutto
rendendo la cosa Automatica.
Ogni volta che esegui il Ciclo estrarrà le foto dall'Ultima precedente....!
Ciao.
@Alex.

   End With
tengo l'impressione che quell' until non sia troppo "performante". Che 
ne dici di un "while" <7 o un "until" >6
;<)

Alessandro Cara wrote:
p.s.
--
a.cara

Emilia Lorenzi wrote:

cara emilia (me lo permetto perche' e' il nome della mia ex consorte)
mi viene un piccolo dubbio.
Ma tu hai una tabella con i nomi e/o codici foto o le vuoi prelevare 
semplicemente dal "path"? Propendo per questa seconda ipotesi.
In questo caso il recordset non ti serve a nulla ma devi usare o l'fso o 
un ciclo di dir e farti un oggetto collezione da cui prelevare poi i 
vari nomi.
se erro corigeme
--
a.cara

 ha scritto nel messaggio
news:2hrkmoF...@uni-berlin.de...

Hai ragione.
@Alex.


Allora : innanzitutto grazie a tutti per l'interessamento
Forse č meglio che spieghi un po' meglio.In effetti il path deve aver
confuso,giustamente .
io apro una maschera A che contiente una scheda di un oggetto, (nel mio caso
una pianta).
Ed in questa maschera A io inserisco una foto .L'evento scrive in un
controllo nascosto il path ( tipo C:\varie\Immagini) .Facendo doppio click
su questa foto questa maschera si nasconde e si apre la maschera B con i 6
controlli-immagine che preleva il path dalla maschera A per creare una
tabella con i nomi dei file contenuti nel path.
Ora , visto che spesso le foto sono piu' di 6 , e nn sapevo come ciclarle
..ho chiesto.
Ora vado a rileggere i vostri interventi e vedo se č possibile ricavarci
qualcosa.
grazie ancora
Emilia