Access - Ciclo con Do Loop

lunedì 04 agosto 2008 - 22.34

ghighi Profilo | Newbie

Ciao, primo post e ovviamente prima domanda magari stupida!
Provo a spiegarmi,
ho un db molto rudimentale in cui attraverso una maschera genero dei report in pdf, questi report sono filtrati in base ad un valore selezionato in una casella di riepilogo, il file pdf viene nominato con il nome filtrato. Per capirci, Seleziono Pippo nella casella combinata e cliccando su di un tasto mi esce un file che si chiama Pippo.pdf
Avendo un elenco lungo di voci nella casella di riepilogo volevo fare un ciclo do until loop in modo che la selezione delle voci nella casella di riepilogo e il "click" del pulsante sia fatto in automatico per tuttr le voci dell'elenco.

Spero di essere stato chiaro e ringrazio in anticipo chi voglia provare ad aiutarmi!!!

Ghighi

Dainesi Profilo | Senior Member

>Ciao, primo post

Benvenuto !

Inutile fare un ciclo Do until (a meno che tu stia leggendo un recordset). Usa invece un bel For ... Next che cicla tutti gli elementi contenuti nella lista.

Es.

Dim i as Integer
For i =0 to Lista.ListCount-1
'Metti qui la tua procedura di stampa
Call StampaPDF(Lista.ItemData(i))
Next

ghighi Profilo | Newbie

Ciao DAINESI e a tutti!
Grazie mille per la risposta.
Scusa se non ho più risposto ma ho avuto il pc in panne e con le ferie non ho potuto sistemarlo prima..
Non sono riuscito a risolvere, premesso che sono ignorantissimo in materia... Ok per il for next avendo i valori in una casella combinata, il mio problema ora è questo, il nome del file pdf si genera in base alla selezione che facevo nella casella combinata, come faccio a ottenere lo stesso anche nel ciclo senza il reale click sul nome?

Grazie ancora!!!

Dainesi Profilo | Senior Member

Sulla base dell'esempio che ti avevo postato puoi modificarlo così per ottenere il testo della scelta nella lista

Dim i as Integer
For i =0 to Lista.ListCount-1
'Metti qui la tua procedura di stampa
Call StampaPDF(Lista.List(i) & ".pdf")
Next

ghighi Profilo | Newbie

Sulla base dell'esempio che ti avevo postato puoi modificarlo così per ottenere il testo della scelta nella lista

Dim i as Integer
For i =0 to Lista.ListCount-1
'Metti qui la tua procedura di stampa
Call StampaPDF(Lista.List(i) & ".pdf")
Next
Spero di non abusare della tua gentilezza..
Questo è quello che ho:

Private Sub Comando32_Click()
Dim DESAGE As Integer
Dim blRet As Boolean
For NOMEFILE = 0 To CCNome.ListCount - 1
blRet = ConvertReportToPDF(Me.Scelta_RPT, vbNullString, CCNome.List(NOMEFILE) & ".pdf", False, False, , "", "", 0, 0)
Next
End Sub

Mi da errore: Impossibile trovare il metodo o il membro dei dati (errore 461)

Scusami se ti stresso...

Dainesi Profilo | Senior Member

Domanda: ma che versione usi di Access ?

ghighi Profilo | Newbie

ACCESS 2000

Sono un troglodita..

Dainesi Profilo | Senior Member

Access 2000 è fantastico! Non ti preoccupare.

Modifica il codice così:

Private Sub Comando32_Click()

Dim DESAGE As Integer
Dim blRet As Boolean

For NOMEFILE = 0 To CCNome.ListCount - 1
blRet = ConvertReportToPDF(Me.Scelta_RPT, vbNullString, CCNome.Column(1,NOMEFILE) & ".pdf", False, False, , "", "", 0, 0)
Next

End Sub

Purtroppo io uso sopratutto VB e il VBA di Access (chiamato anche "AccessBasic") è leggermente diverso.

ghighi Profilo | Newbie

Grazie mille!!! Ora funziona, sei stato gentilissimo! Ti chiedo un altro consiglio, per imparate ad usare decentemente VBA pensi sia meglio un libro o continuare ad usarlo e chiedere aiuto quando ci si pianta? Te lo chiedo perchè finora con i libri ho poco feeling, nel senso che non trovo mai quel che mi serve.

Grazie ancora,

Ghighi

Dainesi Profilo | Senior Member

Avere un manuale di riferimento è sempre meglio anche se poi nella pratica mancano sempre esempi per le cose che uno vorrebbe fare (i soliti casi particolari ...). Io di solito faccio così: vado in una libreria informatica, sfoglio parecchi libri simili sull'argomento e scelgo quello che mi sembra meno superficiale. Quando poi sorgono dei dubbi ... ci sono i forum!

P.S. Io personalmente preferisco i testi in lingua originale piuttosto che i tradotti (questi ultimi infatti molto spesso sono "accorciati", rimaneggiati e sopratutto sono "postumi")

ghighi Profilo | Newbie

>Avere un manuale di riferimento è sempre meglio anche se poi
>nella pratica mancano sempre esempi per le cose che uno vorrebbe
>fare (i soliti casi particolari ...).
Ah meno male non succede solo che a me!

>Io di solito faccio così:
>vado in una libreria informatica, sfoglio parecchi libri simili
>sull'argomento e scelgo quello che mi sembra meno superficiale.
>Quando poi sorgono dei dubbi ... ci sono i forum!
>
>P.S. Io personalmente preferisco i testi in lingua originale
>piuttosto che i tradotti (questi ultimi infatti molto spesso
>sono "accorciati", rimaneggiati e sopratutto sono "postumi")

Capisco... Vabbeh.. lo ammetto.. oltre che con vba sono una frana anche con l'inglese!!! Scherzi a parte, grazie mille sei stato utilissimo e gentile, seguirò il tuo consiglio!

A presto,

Ghighi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5