[VBA/MS SQL] SQL Native Client verbinding vanuit VBA

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Anoniem: 151967

Topicstarter
Hey,

Ik probeer vanuit excel VBA een connectie te maken met een MS SQL database om hier vandaan queries aan te roepen en data op te halen. Dit deed ik als volgt:

code: filename
1
2
3
4
5
6
7
Dim cnr As New ADODB.Connection
Dim rsl As New ADODB.Recordset

'Connectie maken

cnr.ConnectionString = "Driver={SQL Server};Server=myServerAddress;uid=myUserID;pwd=myPassword;Database=myDataBase"
cnr.Open


So far, so good.
Alleen wil ik graag met een veilige verbinding werken. Daarvoor wil ik de volgende connectiestring gebruiken:

code: filename
1
cnr.ConnectionString = "Driver={SQL Native Client};Server=myServerAddress;uid=myUserID;pwd=myPassword;Database=myDataBase;Encrypt=yes"


Helaas komt de connectie niet tot stand als ik simpelweg de connectiestring vervang. De volgende vermelding wordt bij de error gegeven:

"[Microsoft][ODBC-stuurprogrammabeheer] De naam van de gegevensbron is niet gevonden en er is geen standaardstuurprogramma opgegeven"

Ik heb al behoorlijk wat gezocht/geprutst om hem aan de praat te krijgen maar het wil niet echt lukken. Ik dacht dat het missen van de juiste ADO reference in VBA misschien het probleem was (ik heb office 2003) maar ik heb de juiste reference niet kunnen vinden. Via google vindt ik wel verschillende mensen die deze native client verbinding gebruiken maar volgens mij niemand met hetzelfde probleem.

Iemand enig idee waar dit aan ligt of hoe ik dit op kan lossen???

Alvast bedankt.

[ Voor 32% gewijzigd door Anoniem: 151967 op 31-10-2008 14:43 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Anoniem: 151967 schreef op vrijdag 31 oktober 2008 @ 09:51:
Ik heb al behoorlijk wat gezocht/geprutst om hem aan de praat te krijgen maar het wil niet echt lukken.
Zoals? Laat eens zien wat je allemaal geprobeerd hebt dan? En wat is "wil niet lukken"? Wat is de exacte foutmelding? En waarom heb je geen user en pwd in de connectiestring meer staan? Moet je dan niet ook trusted werken of alsnog die user en pwd meegeven? Kijk ook even in onze Programming Beleid Quickstart voor de volgende keer; zoals je ziet mis ik nogal het 1 en ander. En kijk dan meteen even naar code tags; die tables staan zo stom :P

[ Voor 30% gewijzigd door RobIII op 31-10-2008 10:12 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Anoniem: 113297

de foutmelding geeft aan dat de waarde {SQL Native Client} niet correct is. als ik even google op "Driver= .connectionstring sql native client" dan bulkt de eerste pagina met bruikbare links.
odbc begint wel wat verouderd gaan te worden, misschien kan je beter (weliswaar nog steeds binnen ADO) iets anders gebruiken, maar dat laat ik maar aan jou over om uit te zoeken.

Acties:
  • 0 Henk 'm!

Anoniem: 14829

Van MSDN:
Dim con As New ADODB.Connection
Dim rst As New ADODB.Recordset

con.ConnectionString = "Provider=SQLNCLI10;" _
& "Server=(local);" _
& "Database=AdventureWorks;" _
& "Integrated Security=SSPI;" _
& "DataTypeCompatibility=80;"
SQLNCLI10 gebruik je wanneer je de native client van MSSQL2008 gebruikt. Deze is downwards compatible met MSSQL2005 en 2000 (niet meer met MSSQL 7).
Voor native client 9 (die bij MSSQL2005 zit) is de identifier SQLNCLI.1.

Acties:
  • 0 Henk 'm!

Anoniem: 151967

Topicstarter
Hey,

Bij het gebruiken van de identifier SQLNCLI.1 krijg ik de melding "Kan de voorziening niet vinden. Mogelijk is deze niet juist geinstalleerd". Misschien dat dit iets met de shared SQL server waar ik op draai te maken heeft. Nadat ik las dat het waarschijnlijk aan de driver/provider lag ben ik wat verder gaan zoeken naar andere connectiestrings. Ik kwam hierbij oa de volgende OLE db string tegen.

code: filename
1
2
3
4
5
6
ConnectionString = "Provider = sqloledb;" & _
        "Data Source=myServer;" & _
        "Initial Catalog=myDatabase;" & _
        "User ID=myUsername;" & _
        "Password=myPassword;" & _
        "Encrypt=yes;"


Deze kan ik wel gebruiken met encrypted data. Iig bedankt voor de tips.

mvg,

Pim