Существует ли базовый способ создания соединения с базой данных в одном модуле/форме, а затем иметь возможность доступа к тому же соединению с базой данных (оставлено открытым) из другого модуля?Share adodb Соединение между модулями VBA
У меня есть форма, которая появляется с запросом SQL-сервера, а затем из нее собираются базы данных для выбора пользователем. Затем, когда я пытаюсь использовать соединение, он не подключается к объявленному db Public в другом модуле?
Это имеет смысл, и если так, то есть вокруг?
Public conn As ADODB.Connection
Public Function openConnection(Optional DB As String)
Dim str As String
str = "Provider=SQLOLEDB;Server=" & Me.tbx_serverName.Text
If (Not IsEmpty(DB)) Then
str = str & ";Database=" & DB
End If
str = str & ";UID=" + tbx_dbuser.Text + " ;PWD=" + tbx_dbpass.Text + ";"
On Error Resume Next
If conn Is Nothing Or conn.Status = 0 Then
Set conn = New ADODB.Connection
conn.Open str
End If
If (conn.State = adStateOpen) Then
If (Not IsEmpty(DB)) Then
Me.lbl_connecteddb.Caption = "Connected to Database:" + DB
Else
Me.lbl_connecteddb.Caption = "Connected to Database:" + Me.ComboBox1.SelText
End If
Else
Me.lbl_connecteddb.Caption = "Error"
End If
End Function
Это моя открытая функция соединения, но я не могу получить доступ (правильно) сопп в другом модуле, IE установлен Rs = conn.execute ("SELECT * FROM Бла")
благодарит за помощь! Могу ли я быть в состоянии, кроме Sub Then_Here в другом модуле, и все еще иметь возможность называть его и передавать соединение? – Lacko
@ Lacko - Похоже, вам нужно провести некоторое исследование по публичной и частной подписке. – Jeeped
yup, просто понял, что я спросил! извините и спасибо за помощь! – Lacko