У вас есть функция, которая утверждает, что ее тип возвращаемого значения равен ComboBox
, но я не вижу нигде, где вы когда-либо устанавливали возвращаемое значение. Поскольку возвращаемое значение никогда не устанавливается, оно будет Nothing
, следовательно, ваша ошибка при обращении к нему.
Исходя из предоставленного вами варианта использования, я думаю, что вам нужна вспомогательная подпрограмма, которая работает с существующим комбинированным списком. Так вы бы назвали это так:
' Fill the combobox
FillComboBoxFromMDB(frmMyForm.cmbMyCombo, _
"Database.mdb", _
"SELECT MyTable.MyText FROM MyTable")
и сама подпрограмма будет иметь такую подпись:
Private Sub FillComboBoxFromMDB (ByVal cbo As ComboBox, _
ByVal sDBName As String, _
ByVal sSQL As String)
(обратите внимание, что это Sub
, а не Function
). В теле подпрограммы, где у вас есть
Call FillComboBoxFromMDB.AddItem(DBRecordset.Fields(0).Value)
вместо
cbo.AddItem(DBRecordset.Fields(0).Value)
для действия с ComboBox
, переданным в подпрограмму.