Problema apertura recordset su query

di il
2 risposte

Problema apertura recordset su query

Ciao,
volevo sottoporvi questo problema di cui non riesco a venirne a capo: ho una query (qryReportContratti) che è una semplice query di selezione tra varie tabelle senza parametri e che aperta manualmente mi restituisce 8 record.
Avrei bisogno di aprire da codice questa query, dopodichè per ogni record eseguire alcune istruzioni. Da vba quindi ho scritto il seguente codice:
 
	Private Sub btnStampaContratti_Click()
	Dim  rsContratti as DAO.RecordSet
        Set rsContratti = CurrentDb.OpenRecordset("qryReportContratti")
        MsgBox ("Numero record: " & rsContratti.RecordCount)
            With rsContratti
                Do While Not .EOF
                    ....
                    .MoveNext
                Loop
                .Close
            End With
        Set rsContratti = Nothing
All'apparenza non ci vedo errori, ma i record risultanti (visualizzati con la MsgBox) sono solo 1.
Oltretutto se sostituisco a quella query un altra tanto per fare una prova o record risultanti sono corretti.
Allego anche la query specifica, perchè a questo punto il problema deve essere su quella:
SELECT tblContratti.IDcnt, tblContratti.Tipo, tblContratti.ContrApp, tblContratti.CessCred, tblCantieri.IDctr, tblCantieri.Nome, tblCantieri.CodFisc, tblCantieri.Residenza AS ResCan, tblAppaltatori.Denominazione AS DenApp, tblAppaltatori.Indirizzo, tblAppaltatori.ATECO, tblAppaltatori.REA, tblAppaltatori.NumRegImp, tblAppaltatori.Firma, tblSoggettiContratto.IDsc, tblSoggettiContratto.ContrNum, tblSoggettiContratto.ContrData, tblSoggettiContratto.ContrLuogo, tblSoggetti.IDsog, tblSoggetti.PF, tblSoggetti.Denominazione AS DenSog, tblSoggetti.CF, tblSoggetti.PIVA, tblSoggetti.Residenza AS ResSog, tblSoggetti.Domicilio, tblSoggetti.Nascita
FROM tblSoggetti INNER JOIN (((tblAppaltatori INNER JOIN tblCantieri ON tblAppaltatori.IDapp = tblCantieri.IDapp) INNER JOIN tblContratti ON tblCantieri.IDctr = tblContratti.IDctr) INNER JOIN tblSoggettiContratto ON tblContratti.IDcnt = tblSoggettiContratto.IDcnt) ON tblSoggetti.IDsog = tblSoggettiContratto.IDsog;
Ho provato anche a ricrearla da zero, ma niente, il recordset mi contiene sempre e solo il primo record..

2 Risposte

  • Re: Problema apertura recordset su query

    Devi aggiornare il Bookmark... altrimenti la proprietà RecordCount non è aggiornata, quindi lo fai scorrere fino alla fine e ritorni al primo.
    
            Set rsContratti = CurrentDb.OpenRecordset("qryReportContratti")
            rsContratti.MoveLast
            rsContratti.MoveFirst
            MsgBox ("Numero record: " & rsContratti.RecordCount)
                With rsContratti
                    Do While Not .EOF
                        ....
                        .MoveNext
                    Loop
                    .Close
                End With
            Set rsContratti = Nothing
  • Re: Problema apertura recordset su query

    Grazie Alex, mi aveva buttato fuori strada proprio quel RecordCount.. in realtà i record caricati sono corretti
Devi accedere o registrarti per scrivere nel forum
2 risposte