Usuário com melhor resposta
Conexão VBA com SQL - Excel Travando

Pergunta
-
Estou com o seguinte problema, segue o código
Dim strSQL As String
Dim rsTabela As New ADODB.Recordset
Dim cnDB As New ADODB.Connection'instancia objeto rs
Set rsTabela = New ADODB.Recordset
Set cnDB = New ADODB.Connection'--------------------------------------------------------------------------------
'abre conexao com o banco de dados
'--------------------------------------------------------------------------------
MyNode = GetLocalNode()If MyNode = "SRV_01LT" Then
ConnName = "LITO-SERVER01"
' ConnName = "UNI-ENG01"
ElseIf Mid(MyNode, 1, 4) = "TERM" Then
ConnName = "192.168.0.1"
Else
ConnName = "192.202.1.4"
End If'''''CONEXÃO COM O BANCO DE DADOS SQL'''''''''
'Cria a conexão ADO com o histórico
Set cnDB = New ADODB.Connection
'Conecta ao database
DSNtest = "DRIVER={SQL Server};SERVER=" & ConnName _
& "\SQLEXPRESS;UID=;PWD=;DATABASE=FG_SAM_LITO"
cnDB.Open DSNtest
'--------------------------------------------------------------------------------'monta a string de pesquisa SQL
strSQL = "Select * FROM FG_FOLHAS_FTL.dbo.T_CAD_FTL_LITO05 Order By Rótulo"'executa SQL query
rsTabela.CursorLocation = adUseClient
rsTabela.Open strSQL, cnDB, adOpenStatic, adLockReadOnly, adCmdTextAo executar esta última linha o excel trava (Não Responde).
O nome do banco está correto.
Não sei mais o que testar, o que pode estar ocorrendo?
Respostas
-
Experimente utilizar as configurações padrões de conexão. Troque:
rsTabela.CursorLocation = adUseClient rsTabela.Open strSQL, cnDB, adOpenStatic, adLockReadOnly, adCmdText
por:
Set rsTabela = cnDB.Execute(strSQL)
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator terça-feira, 31 de dezembro de 2013 23:09
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator terça-feira, 31 de dezembro de 2013 23:09
Todas as Respostas
-
Estou com o seguinte problema, segue o código
Dim strSQL As String
Dim rsTabela As New ADODB.Recordset
Dim cnDB As New ADODB.Connection'instancia objeto rs
Set rsTabela = New ADODB.Recordset
Set cnDB = New ADODB.Connection'--------------------------------------------------------------------------------
'abre conexao com o banco de dados
'--------------------------------------------------------------------------------
MyNode = GetLocalNode()If MyNode = "SRV_01LT" Then
ConnName = "LITO-SERVER01"
' ConnName = "UNI-ENG01"
ElseIf Mid(MyNode, 1, 4) = "TERM" Then
ConnName = "192.168.0.1"
Else
ConnName = "192.202.1.4"
End If'''''CONEXÃO COM O BANCO DE DADOS SQL'''''''''
'Cria a conexão ADO com o histórico
Set cnDB = New ADODB.Connection
'Conecta ao database
DSNtest = "DRIVER={SQL Server};SERVER=" & ConnName _
& "\SQLEXPRESS;UID=;PWD=;DATABASE=FG_SAM_LITO"
cnDB.Open DSNtest
'--------------------------------------------------------------------------------'monta a string de pesquisa SQL
strSQL = "Select * FROM FG_FOLHAS_FTL.dbo.T_CAD_FTL_LITO05 Order By Rótulo"'executa SQL query
rsTabela.CursorLocation = adUseClient
rsTabela.Open strSQL, cnDB, adOpenStatic, adLockReadOnly, adCmdTextAo executar esta última linha o excel trava (Não Responde).
O nome do banco está correto.
Não sei mais o que testar, o que pode estar ocorrendo?
Microsoft SQL Express 2005 e Excel 2003
-
Experimente utilizar as configurações padrões de conexão. Troque:
rsTabela.CursorLocation = adUseClient rsTabela.Open strSQL, cnDB, adOpenStatic, adLockReadOnly, adCmdText
por:
Set rsTabela = cnDB.Execute(strSQL)
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator terça-feira, 31 de dezembro de 2013 23:09
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator terça-feira, 31 de dezembro de 2013 23:09