Newsgroup: it.comp.appl.access
Titolo: Ciclo su set di record

Un cordiale saluto a tutti.  A97
Sto quasi perdendo la testa perchè non riesco a capire dove sta l'errore.
Provo a spiegare: Da un pulsante di comando di una form continua lancio la 
routine che riporto sotto. Il problema è che al primo clic, dopo alcuni 
secondi di apparizione della clessidra, non succede niente. Al secondo clic 
tutto funziona perfettamente (esegue correttamente la procedura).
Vorrei che la cosa avvenisse al primo cli ma non riesco a risolvere.
Ringrazio chiunque vorrà dare un aiuto
Gabriele
DoCmd.SetWarnings False
DoCmd.OpenQuery "qEliminaImpegni", acNormal, acEdit
Me.Requery
DoCmd.GoToRecord , "", acGoTo, 1
Dim Counter
Counter = 0
While Counter < Testo10
Counter = Counter + 1
Do
DoCmd.OpenForm "FrmRepArtNum", acNormal, "", 
"[CodReparto]=[Forms]![FrmRepArticoli]![CodReparto]", , acHidden
DoCmd.SetWarnings False
DoCmd.OpenQuery "qAccodamAutom", acNormal, acEdit
DoCmd.GoToRecord , "", acNext
Exit Do
Loop
Wend
Debug.Print Counter
DoCmd.SetWarnings False
 DoCmd.OpenQuery "qAccodamDue", acNormal, acEdit
End Sub

 ha scritto nel messaggio 
news:463df59a$0$17949$4faf...@reader1.news.tin.it...

Hai provato a fare il controllo passo passo?
Può sembrare un consiglio sciocco -e forse lo è..-, ma perchè (visto che la 
seconda volta funziona) non lo fai eseguire due volte di seguito?
Ciao
Salvatore 

 Salvatore
Grazie Salvatore per l'interessamento.
E' proprio quello che avevo intenzione di fare ma a causa della mia scarsa 
conoscenza del codice non so cosa scrivere per far ripetere la procedura.
Magari è una cosa banalissima ...
Saluti
  Gabriele

 End Sub
Ciao

 ha scritto nel messaggio 
news:8Jn%h.26518$R_5.8...@twister1.libero.it...

Ringrazio di nuovo.
Purtroppo ho provato ma non va.
Non so dove intervenire.
  Saluti, Gabriele

 tutto funziona perfettamente (esegue correttamente la procedura).
Se lasci i warning abilitati Access che dice? Cmq dal codice non si
capisce cosa vuoi fare.
O meglio, si capisce che:
- apri la query di eliminazione "qEliminaImpegni"
- ricarichi la maschera
- vai al primo record
- esegui un ciclo <Testo10> volte che:
  - apre un ciclo non limitato che:
    - apre la maschera "FrmRepArtNum" in modalità nascosta
    - esegue una query di accodamento
    - va al prossimo record della maschera continua
    - esce dal ciclo non limitato
- ripeti il ciclo <Testo10>
- esegui la query "qAccodamDue"
Quindi:
- il ciclo "non limitato" a che serve? Apri una maschera, una query,
ed esci... "Do" e "Exit Do" a che servono?
- la maschera nascosta "FrmRepArtNum" si chiude da sé, dopo che l'hai
aperta? Se sì, OK. Se no, che senso ha aprirla <Testo10> volte senza
mai chiuderla?
- il ciclo "While Counter <Testo10" con relativi docmd.gotorecord,
serve solo per scorrere tutti i record della maschera continua? Se sì,
dovresti usare un ciclo differente, basato sulla proprietà
recordsetclone, da eseguire recordsetcount volte. Se no, a che serve?
- "While Counter <Testo10" Se Testo10 è il nome di un controllo, devi
referenziarlo in questo modo:
"While Counter < me.Testo10" (se questo codice è nel modulo di classe
della maschera. Se è in un modulo generico, devi mettere il
riferimento assoluto: "While Counter < [forms]![nomemaschera]!
[Testo10]"
- I setwarnings = false li hai messi perché Access ti dava degli
errori? Dovresti disabilitare nelle opzioni la richiesta di conferma
all'esecuzione delle query di comando, e quindi se Access ti dà degli
allarmi, leggi bene quello che dice invece di nasconderlo :-D
DoCmd.SetWarnings False
DoCmd.OpenQuery "qEliminaImpegni", acNormal, acEdit
Me.Requery
DoCmd.GoToRecord , "", acGoTo, 1
Dim Counter
Counter = 0
While Counter < Testo10
  Counter = Counter + 1
    Do
    DoCmd.OpenForm "FrmRepArtNum", acNormal, "",
    "[CodReparto]=[Forms]![FrmRepArticoli]![CodReparto]", , acHidden
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "qAccodamAutom", acNormal, acEdit
    DoCmd.GoToRecord , "", acNext
    Exit Do
  Loop
Wend
Debug.Print Counter
DoCmd.SetWarnings False
DoCmd.OpenQuery "qAccodamDue", acNormal, acEdit
Il codice qua sopra è quello che hai scritto tu, l'ho solo indentato
un po' per leggerlo meglio.
ciao,
Panathos

 ha scritto nel messaggio 
news:1178490535.2...@n76g2000hsh.googlegroups.com...












ciao,
Panathos
Ciao Panathos,
Il codice scritto è stato scopiazzato qua e la cercando e  mettendo insieme 
anche pezzi di macro convertite in Vb. Mi rendo conto che per un esperto è 
sicuramente un obbrobrio. Sicuramente avrai capito che la mia conoscenza di 
codice è quasi nulla e forse sto cercando di risolvere qualcosa che 
sicuramente va al di la delle mie capacità.
Quello che veramente non riesco a capire è che il tutto, al primo clic del 
pulsante, non funziona mentre al secondo funziona perfettamente. E' questo 
che mi ha indotto ad insistere perchè se non avesse mai funzionato 
probabilmente avrei rinunciato o trovato altre soluzioni ma il fatto che 
funziona solo al secondo clic, almeno per me, è inspiegabile.
Comunque, tanto per sintetizzare, io dovrei ripetere le funzioni che vedi 
scritte tra Do e Exit Do in tutti i record della form continua, mentre 
quello che è scritto prima di Do e dopo Exit Do una sola volta.
Ringrazio comunque per l'interessamento
Cordialmente
  Gabriele