Ciao a tutti, Sib
Ho risolto aprendola come una query parametrica, anche se ero convinto che
una volta che il parametro fa riferimento a un controllo non c'era motivo di
gestire i parametri. A complicare ulteriormente le cose c'era anche che
l'operazione e' gestita da una routine che non sa se l'SQL passatole ha dei
parametri o no, comunque ho risolto cosi':
Public Sub RiempiCelle(Foglio As Object, stSQL As String, Optional stNote As
String, Optional stData As String, _
Optional stParametro As String, Optional vParametro As Variant)
Dim rst As Recordset
Dim qdf As QueryDef
Dim x As Integer, y As Integer
'Riempie le celle del foglio se sono presenti dati,
'altrimenti da un messaggio di errore
If IsNull(stParametro) Or stParametro = "" Then
Set rst = CurrentDb.OpenRecordset(stSQL)
Else
Set qdf = CurrentDb.QueryDefs(stSQL)
qdf(stParametro) = vParametro
Set rst = qdf.OpenRecordset(dbOpenSnapshot)
End If
If rst.EOF Then
MsgBox "Nessun presente al corso selezionato", vbCritical,
"Attenzione"
Else
rst.MoveFirst
Foglio.cells(2, 3) = rst!Corso & " - " & rst!Classe
Foglio.cells(2, 8) = stData
While Not rst.EOF
For x = 0 To 7
Foglio.cells(4 + y, 1 + x) = rst(x)
Next x
y = y + 1
rst.MoveNext
Wend
While y < 18
For x = 0 To 7
Foglio.cells(4 + y, 1 + x) = Null
Next
y = y + 1
Wend
Foglio.cells(24, 1) = stNote
Foglio.cells(25, 2) = rst.RecordCount
End If
rst.Close
Set rst = Nothing
Setqdf = Nothing
End Sub
Questa funz mi va a riempire determinate celle excel con i dati dell'SQL che
le passo.
Gestisce al massimo un parametro, ma basterebbe passare una patrice per
potere gestire n parametri.
Ciao, Sib
Mi sembra di aver già avuto il problema, se non ricordo male ho risolto il
tutto mettendo come paramentro una funzione invece del riferimento diretto
al campo della maschera (forms!nomeMask!campo). All'interno della funzione:
abc=forms!nomeMask!campo dove abc è la funzione.
Così ha funzionato sia aprendola con openrecordset sia come source della
maschera.
Ciao.