Olá,
Estou tentando fazer um Select no VBA e exibir o resultado, seja em uma folha de dados, uma ViewPreview.
O meu código está da seguinte maneira na função Function ConsultaSQL(codS):
Function ConsultaSQL(codS As Integer)
Dim connector As ADODB.Connection
Dim rs As ADODB.Recordset
Dim SQL As String
Set connector = New ADODB.Connection
connector.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = H:\Projeto Acces\bdAltAdm.mdb;"
'Verifica se a conexão foi efetivamente efetuada
If connector.State = adStateOpen Then
'MsgBox " Conexão ativa "
Else
MsgBox " Não foi possível efetuar a Conexão com o banco de dados! "
End If
Set rs = New ADODB.Recordset
rs.ActiveConnection = connector
rs.Open "TEL"
Set rs = connector.Execute("SELECT NOME, EMPRESA FROM TEL where situacao = codS;")
SQL = SQL & rs("NOME") & " - " & rs(EMPRESA)
'Do While rs.NextRecordset
' SQL = SQL & rs("NOME") & " - " & rs(EMPRESA)
'Loop
rs.Close
ConsultaSQL = SQL
Set rs = Nothing
connector.Close
Set connector = Nothing
End Function
-------------------------------
e faço a chamada da função:
Private Sub Comando2_Click()
Dim teste As Integer
me.nomeResult = ConsultaSQL(Me.codS)
End Sub
-------------------------------
Estou passando como parâmetro o código da situação, mas é gerado o erro: Nehum valor foi fornecido para um ou mais parâmetros, na linha;
Set rs = connector.Execute("SELECT NOME, EMPRESA FROM TEL where situacao = codS;")...
Mas se eu colocar o código da situação direto no SELECT e liberar o trecho do código:
'Do While rs.NextRecordset
' SQL = SQL & rs("NOME") & " - " & rs("EMPRESA")
'Loop
aí ocorre o erro de que "O provedor atual não oferece suporte para retornar vários conjuntos de registros de uma única execução.".
Eu sei que posso fazer através de uma consulta no Access e exibir no openQuery, mas o meu objetivo está no VBA.
Quem puder me ajudar eu agradeço.
Estou tentando fazer um Select no VBA e exibir o resultado, seja em uma folha de dados, uma ViewPreview.
O meu código está da seguinte maneira na função Function ConsultaSQL(codS):
Function ConsultaSQL(codS As Integer)
Dim connector As ADODB.Connection
Dim rs As ADODB.Recordset
Dim SQL As String
Set connector = New ADODB.Connection
connector.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = H:\Projeto Acces\bdAltAdm.mdb;"
'Verifica se a conexão foi efetivamente efetuada
If connector.State = adStateOpen Then
'MsgBox " Conexão ativa "
Else
MsgBox " Não foi possível efetuar a Conexão com o banco de dados! "
End If
Set rs = New ADODB.Recordset
rs.ActiveConnection = connector
rs.Open "TEL"
Set rs = connector.Execute("SELECT NOME, EMPRESA FROM TEL where situacao = codS;")
SQL = SQL & rs("NOME") & " - " & rs(EMPRESA)
'Do While rs.NextRecordset
' SQL = SQL & rs("NOME") & " - " & rs(EMPRESA)
'Loop
rs.Close
ConsultaSQL = SQL
Set rs = Nothing
connector.Close
Set connector = Nothing
End Function
-------------------------------
e faço a chamada da função:
Private Sub Comando2_Click()
Dim teste As Integer
me.nomeResult = ConsultaSQL(Me.codS)
End Sub
-------------------------------
Estou passando como parâmetro o código da situação, mas é gerado o erro: Nehum valor foi fornecido para um ou mais parâmetros, na linha;
Set rs = connector.Execute("SELECT NOME, EMPRESA FROM TEL where situacao = codS;")...
Mas se eu colocar o código da situação direto no SELECT e liberar o trecho do código:
'Do While rs.NextRecordset
' SQL = SQL & rs("NOME") & " - " & rs("EMPRESA")
'Loop
aí ocorre o erro de que "O provedor atual não oferece suporte para retornar vários conjuntos de registros de uma única execução.".
Eu sei que posso fazer através de uma consulta no Access e exibir no openQuery, mas o meu objetivo está no VBA.
Quem puder me ajudar eu agradeço.