none
Conexão VBA com SQL - Excel Travando RRS feed

  • 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, adCmdText

    Ao 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?

    quinta-feira, 15 de agosto de 2013 20:14

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

    quinta-feira, 15 de agosto de 2013 23:49
    Moderador

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, adCmdText

    Ao 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

    quinta-feira, 15 de agosto de 2013 20:16
  • 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

    quinta-feira, 15 de agosto de 2013 23:49
    Moderador