Основная оболочка того, что вы хотите сделать, выглядит следующим образом:
Option Explicit
Private empObj As Employee
Private Sub Form_Load()
Set empObj = New Employee
MsgBox empObj.getEmployee
End Sub
Public Function getEmployee() As String
getEmployee = ConnectSQL
End Function
Public Function ConnectSQL() As String
Set SQLMyconn = New ADODB.Connection
Set SQLRecset = New ADODB.Recordset
SQLMyconn.Open "Driver={MySQL ODBC Client Interface};ServerName=localhost;dbq=@testdb"
ConnectSQL = "data from your DB lookup"
End Function
Почти каждая строка отличается от того, что вы написали, поэтому внимательно посмотрите на код.
РЕДАКТИРОВАТЬ:
На основе комментария, вот как изменить код для возврата объекта подключения:
Option Explicit
Private empObj As Employee
Private Sub Form_Load()
Set empObj = New Employee
MsgBox empObj.getEmployee
Dim MyConnection As ADODB.Connection
Set MyConnection = ConnectSQL()
'you can grab and use the connection in your form, too.
End Sub
Public Function getEmployee() As String
Dim MyConnection As ADODB.Connection
Set MyConnection = ConnectSQL()
'use the connection to grab data
getEmployee = "data from your DB lookup"
End Function
Public Function ConnectSQL() As ADODB.Connection
Set ConnectSQL = New ADODB.Connection
ConnectSQL.Open "Driver={MySQL ODBC Client Interface};ServerName=localhost;dbq=@testdb"
End Function
Не забудьте закрыть ваше соединение после того, как вы закончитес этим. Чтобы суммировать изменения:
- empObj - вы должны объявлять и создавать экземпляры ваших объектов отдельно.
- MsgBox - нет необходимости в ().
- Функции против подпрограмм- первое возвращает данные, второе - нет. Убедитесь, что вы объявляете тип возвращаемого значения функции.
- return - этот оператор устарел и не выполняет то, что вы хотите. Вместо этого присвойте значение имени функции.