Ciao.
Quando attivo un form (MDIchild) funziona tutto regolarmente, anche chiudendo(unload) e riaprendo(load) il form di seguito, ma se clicco su una flexgrid presente nel form, poi chiudo il form stesso e lo riapro, mi da l'errore:
"Errore di run-time 3265. Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto"
Questo è il codice:
codice:
Public Cn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim RsClienti As New ADODB.Recordset
Dim q As String
Dim qClienti As String
Public IDFatt As Long
Dim IDCli As Long
Dim msg As Long
Private Sub cmdChiudi_Click()
Unload Me
End Sub
Private Sub FlexGridFatture_Click()
If (RsClienti.State = adStateOpen) Then
RsClienti.Close
qClienti = "SELECT * FROM Clienti,FatturaTestata WHERE Clienti.IDCliente = FatturaTestata.IDCliente"
RsClienti.Open qClienti, Cn, adOpenDynamic, adLockBatchOptimistic
'Filtro ulteriormente RS per prendere solo i dati relativi alla fattura selez.
RsClienti.Filter = "IDFattura=" & IDFatt
ScriviCampi
Else
qClienti = "SELECT * FROM Clienti,FatturaTestata WHERE Clienti.IDCliente = FatturaTestata.IDCliente"
RsClienti.Open qClienti, Cn, adOpenDynamic, adLockBatchOptimistic
RsClienti.Filter = "IDFattura=" & IDFatt
ScriviCampi
End If
SSTabFatturazione.Tab = 1
RsClienti.Close
End Sub
Private Sub Form_Load()
If Not (Cn.State = adStateOpen) Then
Cn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=InfoManager.mdb;"
Cn.CursorLocation = adUseClient
End If
q = "SELECT * FROM FatturaTestata"
Rs.Open q, Cn, adOpenDynamic, adLockOptimistic
Set FlexGridFatture.DataSource = Rs
FlexGridFatture.Refresh
cmbPagamento.AddItem ("Contanti")
cmbPagamento.AddItem ("Assegno")
cmbPagamento.AddItem ("Carta di Credito")
'Carico lista clienti nella ComboBox.
If RsClienti.State = adStateOpen Then
RsClienti.Close
End If
qClienti = "SELECT * FROM Clienti"
RsClienti.Open qClienti, Cn, adOpenDynamic, adLockOptimistic
With RsClienti
.MoveFirst
While Not .EOF
cmbCliente.AddItem !CognomeNome
cmbCliente.ItemData(cmbCliente.NewIndex) = RsClienti("IDCliente").Value
msg = msg + 1
.MoveNext
Wend
End With
End Sub
Private Sub Form_Unload(Cancel As Integer)
While Not msg = 0
cmbCliente.RemoveItem (All)
msg = msg - 1
Wend
If RsClienti.State = adStateOpen Then
RsClienti.Close
End If
If Rs.State = adStateOpen Then
Rs.Close
End If
If Cn.State = adStateOpen Then
Cn.Close
End If
End Sub
Mi restituisce l'errore sulla riga
codice:
RsClienti.Open qClienti, Cn, adOpenDynamic, adLockOptimistic
Spero non sia troppo incasinato.
Mi fate sapere?
Grazie.