2016-04-28 5 views
0

Я создал инструмент в Excel VBA, который должен подключаться к Teradata и получать детали заказа на поставку. Он работает правильно на моем ноутбуке, но когда я делюсь инструментом с другими, строка подключения ниже не соединяется. в то время как устранение неполадок на своем ноутбуке я видел, что пользователь может подключиться к Teradata с помощью SQL-помощника. Но строка Excel VBA не соединяется вообще.Excel VBA - строка подключения к Teradata не работает

ниже функция ран и CN.state всегда возвращает «0»

Function Connect(Server As String, Database As String) As Boolean 

    Set CN = New ADODB.Connection 
    On Error Resume Next 
    Dim UserId As String 
    Dim Password As String 

    Call CenterLoginWindow 

    'Input UserID and Password here 
    UserId = Login.Username 
    Password = Login.Password 

    With CN 
     ' Create connecting string 
     .ConnectionString = "Data Source=" & Server & ";" & _ 
      "Database=" & Database & ";" & _ 
      "Persist Security Info=True;Session Mode=ANSI;" & _ 
      "Uid=" & UserId & ";" & _ 
      "Pwd=" & Password & "" 
     .CommandTimeout = 0 
     ' Open connection 
     .Open 
    End With 
    ' Check connection state 
    If CN.State = 0 Then 
     Connect = False 
    Else 
     Connect = True 
    End If 

End Function 
+0

Использование TD Auth Мех, я использую строку соединения: 'SessionMode = Teradata; Driver = Teradata, DBCName = ; Database = ; CharSet = ASCII; Uid = ; PWD = ', который сильно отличается от ваша. У меня никогда не было проблем с этим. Я не уверен, как вы уходите, не указав драйвер в своей строке. – JNevill

ответ

0

У меня есть несколько вопросов к вам: 1. Являются ли пользователи в какой-либо другой области, что бы потребовать их с использованием другой строки подключения? 2. Какую ошибку вы получаете, когда пытаетесь подключиться? Я не вижу ошибок в приведенном выше коде. 3. Я вижу, что у вас очень короткий тайм-аут. Вы пробовали удлинить его?

+0

Не могли бы вы придерживаться этого в комментарии к вопросу OP, поскольку это не ответ. – JNevill

+0

Я бы хотел, но я еще не 50-летний уровень. – Karlomanio