Nie można połączyć się z programem SQL Server za pomocą programu Excel 2007

10

Usiłuję połączyć się z Microsoft SQL Server 2008 R2 z Excel 2007. Podczas próby połączenia pojawia się błąd:

[DBNETLIB] [ConnectionOpen (Invalid Instance ()).] Niepoprawne połączenie.


Kroki ku reprodukcji

  • Na karcie Dane w grupie Uzyskaj dane zewnętrzne kliknij opcję Z innych źródeł , a następnie kliknij opcję Z programu SQL Server :

wprowadź opis zdjęcia tutaj

  • wpisz nazwę komputera z programem SQL Server w polu Nazwa serwera .

  • Aby wprowadzić nazwę użytkownika i hasło do bazy danych, kliknij Użyj następującej nazwy użytkownika i hasła , a następnie wpisz swoją nazwę użytkownika i hasło w odpowiednich polach Nazwa użytkownika i Hasło :

wprowadź opis zdjęcia tutaj


Dodatkowe informacje

  • I może połączyć się z SQL Server z SQL Server Management Studio :
    wprowadź opis zdjęcia tutaj

  • I może połączyć się z SQL Server telnet:

    C:\Users\Ian>telnet avenger 1433
    
  • SQL Server jest nasłuchuje na porcie 1433:
    wprowadź opis zdjęcia tutaj

  • Excel robi connect i odbierać ruch odpowiedzi z serwera SQL:
    wprowadź opis zdjęcia tutaj

  • I może ping serwer:

    C:\Users\Ian>ping avenger
    
    Pinging avenger.newland.com [192.168.1.244] with 32 bytes of data:
    Reply from 192.168.1.244: bytes=32 time=1ms TTL=128
    Reply from 192.168.1.244: bytes=32 time<1ms TTL=128
    Reply from 192.168.1.244: bytes=32 time<1ms TTL=128
    Reply from 192.168.1.244: bytes=32 time<1ms TTL=128
    
    Ping statistics for 192.168.1.244:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
        Minimum = 0ms, Maximum = 1ms, Average = 0ms
    
  • Próba połączenia według adresu IP (a nie nazwy) nie przynosi żadnego efektu:
    wprowadź opis zdjęcia tutaj

  • Zapora systemu Windows nie działa na serwerze:
    wprowadź opis zdjęcia tutaj

Ian Boyd
źródło
1
Chociaż minęło trochę czasu, dziękuję za uwzględnienie tak wielu szczegółów.
ta.speot. jest

Odpowiedzi:

11

Zaryzykowałbym przypuszczenie, że faktycznie używasz nazwanej instancji, a SQL Native Client pozwala ci uniknąć używania AVENGERnazwy serwera, ale DBNETLIB(moim zdaniem jest to stary klient SQL) jest bardziej wymagający.

Jesteś pewien, że tak nie jest AVENGER\SQLEXPRESS,1433?

ta.speot.is
źródło
Okazuje się, że to jest to. Należy zauważyć, że po prostu AVENGER\SQLEXPRESSnie działało; I miał do włączenia portu (standard).
Ian Boyd
Bardziej niebezpieczne domysły, ale komputer, na którym działa program Excel, nie może komunikować się z usługą SQL Browser na serwerze (lub usługa nie jest uruchomiona).
ta.speot.is
0

Miałem ten sam problem.

Stara aplikacja zarejestrowała starą wersję SQLOLEDB.DLLw

C:\Windows\System32

Naprawiono przez uruchomienie następujących poleceń:

regsvr32 "c:\Program Files\Common Files\System\Ole DB\sqloledb.dll"  

i

del c:\WINDOWS\system32\sqloledb.dll
Arnstein Woldstad
źródło
0

Użycie nazwy serwera danych serwera SQL naprawiło to dla mnie w programie Excel 2013

  1. Połącz się z serwerem bazy danych za pomocą SQL Server Management Studio
  2. Kliknij prawym przyciskiem myszy serwer w Eksploratorze obiektów
  3. Wybierz Właściwości
  4. Użyj wartości Nazwa wymienionej na stronie Właściwości ogólne serwera
Jon
źródło
0

Miałem ten sam problem podczas łączenia z Access 2007 do SQL Server 2016. Rozwiązaniem w moim przypadku było włączenie protokołu TCP / IP (w SQL Server Configuration Manager).

Razvan Socol
źródło