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..