Condividi tramite

Report Access in un loop

Anonimo
2015-06-24T17:29:55+00:00

Ho la necessità di stampare più report da una Form. Con un ciclo faccio scansionare i record della form uno ad uno e se il valore di un campo è a -1, deve stampare il report. Il codice è questo:

    A = Me.Testo17 'rileva una stringa

    For B = 1 To A

    DoCmd.GoToRecord , "", acGoTo, B

    If Me.KSC = -1 Then

    AZ = Me.IDS

    DoCmd.OpenReport "RW01", acViewNormal, " ", "[IDS] = '" & AZ & "'"

    DoCmd.Close acReport, "RW01"

    Else

    End If

    Next B

Il problema è che una volta trovato il record con valore -1 si blocca dandomi il messaggio d'errore: "Impossibile usare l'azione o il metodo VaiARecord su un oggetto in visualizzazione Struttura.

Non riesco ad uscirne. Come devo risolvere?

Grazie.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2015-06-24T18:14:07+00:00

ciao Luigi,

prova a vedere qui se ci siamo.... http://1drv.ms/1FBxG81  exportR.accdb.

crea una cartella in c:\ e chiamala reports, così esporti in pfd i report che crei.

Puoi modificare la routine per stamparli direttamente.

Concordo con Mimmo sulla strada da seguire l'esempio ricalca esattamente quel concetto.

ciao, Sandro.

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2015-06-24T17:57:23+00:00

Ciao Luigi,

potresti utilizzare il RecordsetClone della maschera o forse puoi fare una query sulla stessa origine dati della form con l'aggiunta della condizione KSC= -1.

Mimmo

La risposta è stata utile?

0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-06-24T19:15:10+00:00

    Grazie Mimmo, grazie Sandro,

    ho guardato l'esempio che però è un accdb mentre il mio è ancora un mdb ma ho compreso che il recordsetclone serve prorio a farmi evitare di cambiare record sulla form piuttosto che sul recordset.

    Mi è bastato aggiungere un Me.setfocus nel ciclo e il mio codice funziona alla perfezione.

    Grazie, siete sempre perfetti.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-06-24T18:09:58+00:00

    Ciao Mimmo, non posso fare quanto mi suggerisci. In effetti la Form è un resoconto nel quale mi evidenzia per ciascun Cliente (IDS è il suo codice stringa) il suo scaduto.

    KSC è una casella Sì/no che se cliccata significa voglio che mi stampi l'estratto dello scaduto di questo Cliente.

    Dopo aver selezionato (sì/no) i Clienti dei quali voglio la stampa, lancio il codice.

    I report prendono origine da tutt'altra query che si aggancia alla form mediante l'IDS.

    Il ciclo, passando da un record all'altro della Form, se il KDS è "sì" ne rileva l'IDS, lo aggancia alla query del report e stampa.

    Il problema, banale, è tutto nella stampa del report (apertura del report, stampa, chiusura del report) e passare al successivo. Ritengo che ci sia qualcosa che sbaglio nel codice di stampa.

    La risposta è stata utile?

    0 commenti Nessun commento