Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [VB6] Errore di run-time 3265

    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.

  2. #2
    La spiegazione ufficiale del problema è qui

    Io ho risolto aprendo il recordset incriminato, con una nuova connessione al db.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.