|
Результат функции объектного типа
|
|||
---|---|---|---|
#18+
Подскажите пожалуйста , новичку), можно ли результату функции присвоить значение объектного типа, например, мною написана функция , устанавливающая соединение с MySql Function toMySql() Dim MySqlCon As Object Set MySqlCon = New ADODB.Connection Set toMySql = MySqlCon MySqlCon.Open "DRIVER={MySQL ODBC 5.3 Unicode Driver};" & _ "SERVER=srv-mysql;" & _ "DATABASE=MIC1;" & _ "UID=test;" & _ "PASSWORD=123456;" & _ "PORT:3306;" & _ "charset=cp1251;" & _ "Option=3;" If MySqlCon.State = adStateOpen Then 'MsgBox "Connected! =)" toMySql = MySqlCon End If End Function Функция сама по себе работает , но при обращении к ней из процедуры Private Sub Workbook_Open() Dim V As Object If toMySql().State = adStateOpen Then MsgBox ("Привет") End If End Sub возникает 424 ошибка, я так понимаю связанная с описание объекта Сам пишу на С++ , вот пробую разобраться с VBA / Работает ли в VBA объектная модель в полном ее смысле слова? Заранее спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2017, 07:55 |
|
Результат функции объектного типа
|
|||
---|---|---|---|
#18+
То, что Вы написали, открывает соединение и... забывает о нём. Resource leak в полный рост... зачем? Сделайте нормально: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2017, 08:42 |
|
Результат функции объектного типа
|
|||
---|---|---|---|
#18+
Private Sub Workbook_Open() Dim V As New ADODB.Connection Set V = toMySql() If V.State = adStateOpen Then MsgBox ("Connected") End If Благодарю за совет. Не работает, по прежнему ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2017, 08:55 |
|
Результат функции объектного типа
|
|||
---|---|---|---|
#18+
Ошибка 424 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2017, 08:55 |
|
Результат функции объектного типа
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2017, 09:06 |
|
Результат функции объектного типа
|
|||
---|---|---|---|
#18+
Даниил Пакоvвозникает 424 ошибка, я так понимаю связанная с описание объекта Нам требуется угадать, на какой строке кода возникает ошибка и текст ошибки? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2017, 09:10 |
|
Результат функции объектного типа
|
|||
---|---|---|---|
#18+
Даниил Пакоv , As NEW у Вас категорически лишнее ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2017, 09:19 |
|
Результат функции объектного типа
|
|||
---|---|---|---|
#18+
Ошибка возникает в после вызова функции Set V = toMySql() ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2017, 09:24 |
|
Результат функции объектного типа
|
|||
---|---|---|---|
#18+
Даниил ПакоvОшибка возникает в после вызова функции Set V = toMySql()То есть текстом ошибки вы решили не делиться? После вызова функции - это на присвоении или на следующей строке? или вообще на любой следующей строке после вызова функции? Неужели нельзя четко и ясно описывать ситуацию, это ведь вам требуется помощь, а не нам требуется угадать, что у вас там происходит. Ошибка скорее всего тут Код: vbnet 1.
не хватает Set ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2017, 09:53 |
|
Результат функции объектного типа
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Функция toMySql должна быть размещена в common-модуле. А ещё в ней необходим обработчик ошибок. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2017, 10:01 |
|
Результат функции объектного типа
|
|||
---|---|---|---|
#18+
PS. Код - демо, так что MsgBox ("State <> adStateOpen") никогда не выполнится. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2017, 10:02 |
|
Результат функции объектного типа
|
|||
---|---|---|---|
#18+
Спасибо,заработало) Private Sub Workbook_Open() Dim V As ADODB.Connection Set V = toMySql() If Not V Is Nothing Then If toMySql().State = adStateOpen Then MsgBox ("State = adStateOpen") Else MsgBox ("State <> adStateOpen") End If Else MsgBox "Not connected." End If ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2017, 10:24 |
|
Результат функции объектного типа
|
|||
---|---|---|---|
#18+
Кстати можете встретить также ошибку если провайдер не поддерживает внешние запросы на порт 3306 . Это надо помнить. Есть солидные компании, а есть просто квартирый вариант, который будет тебе объяснять мол давайте так, а мы может то, а мы можем се. Вам нужно статический IP.... мы пропишем у себя и все оки. Меняйте провайдера чтоб не портить себе нервы. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2017, 21:20 |
|
|
start [/forum/topic.php?fid=60&msg=39508278&tid=2155220]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 267ms |
total: | 396ms |
0 / 0 |