“Variable objet ou variable bloc with non définie” erreur d'exécution en VB6

J'ai un problème avec VB6. J'ai un formulaire avec plusieurs zone de liste déroulante des objets. Je souhaite pour remplir les zones de liste modifiables via une fonction qui prend une requête SQL en tant que paramètre. Ainsi, le code ressemble à ceci

Private Function FillComboBoxFromMDB(ByVal sDBName As String, _
                                     ByVal sSQL As String) As ComboBox
    '/*
    ' * Execute SQL in MDB and fill the ComboBox with the results
    ' * Returns filled ComboBox
    ' */
    Dim DB As Database
    Dim DBRecordset As Recordset

    On Error GoTo FillComboBoxFromMDB_ErrHandler

    Set DB = OpenDatabase(sDBName, False, False)

    If Not DB Is Nothing Then
        Set DBRecordset = DB.OpenRecordset(sSQL)
        If Not DBRecordset Is Nothing Then
            If DBRecordset.RecordCount > 0 Then
                Call FillComboBoxFromMDB.AddItem(DBRecordset.Fields(0).Value)
                ' ^^ This row gives the "Object variable or With block variable not set"
            End If
        Else
            Call WriteLog("Unable to execute " & sSQL)
        End If
        DB.Close
    Else
        Call WriteLog("Unable to open " & sDBName)
    End If

    Exit Function
FillComboBoxFromMDB_ErrHandler:
    Call WriteLog("FillComboBoxFromMDB() error: " & Err.Number & " " & Err.Description)
End Function

J'ai appeler la fonction comme ceci.

Private Function Test()
    ' Fill the combobox
    frmMyForm.cmbMyCombo = FillComboBoxFromMDB("Database.mdb", _
                                               "SELECT MyTable.MyText FROM MyTable")
End Function

Donc, fondamentalement, je comprends que cela revient à l'instanciation, mais je n'ai pas trouvé quelque chose d'utile en ligne. Le Nouveau mot-clé ne fonctionne pas comme il fonctionne dans VB.Net. Comment puis-je créer une instance de la FillComboBoxFromMDB combobox, de sorte que la fonction va travailler? Est-il même possible?

Merci d'avance!

Félicitations! Vous avez exécuté dans l'un des VB6 deux messages d'erreur! (La seule autre est "il n'y a pas de méthode '~' objet '~'".)
N'oubliez pas 'ActiveX erreur 429' 🙂
Eh bien, c'est l'un des plus amusantes, ouais. J'adore ces anciens projets à partir de l'année 2000 pour ajouter des fonctionnalités....
Nous avons tous été là, Gert, nous sentir votre douleur. 🙂

OriginalL'auteur Gert | 2009-07-30