У меня проблема с VB6. У меня есть форма с несколькими объектами ComboBox. Я хочу заполнить ComboBoxes с помощью функции, которая принимает SQL-запрос в качестве параметра. Таким образом, код выглядит так:«Объектная переменная или с переменной блока не задана» ошибка времени выполнения в VB6
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
Я вызываю функцию следующим образом.
Private Function Test()
' Fill the combobox
frmMyForm.cmbMyCombo = FillComboBoxFromMDB("Database.mdb", _
"SELECT MyTable.MyText FROM MyTable")
End Function
Так что в основном я понимаю, что это сводится к созданию экземпляра, но я не нашел в нем ничего полезного в Интернете. Новое ключевое слово не работает, как работает в VB.Net. Как создать экземпляр выпадающего списка FillComboBoxFromMDB, чтобы функция работала? Возможно ли это?
Заранее благодарен!
Поздравляем! Вы столкнулись с одним из двух сообщений об ошибках VB6! (Единственный другой - «нет метода« ~ »на объекте« ~ ».) –
Не забывайте« Ошибка ActiveX 429 »:) – AakashM
Ну, это один из самых забавных, да. Мне просто нравится получать эти старые проекты с 2000 года, чтобы добавить функции .... – Gert