SQL server driver en vba code

Status
Niet open voor verdere reacties.

richard99

Gebruiker
Lid geworden
17 apr 2010
Berichten
95
Wie kan mij helpen aan een link waar ik een sql server driver kan downloaden en deze kan aanroepen met stukje code.
Ik wil via mijn MS Access omgeving de volgende SQL server database connecten:
data source=DOMEIN;
initial catalog=DATABASENAAM;
user id=USERID;
password=WACHTWOORD;

Ik heb in vba wel een methode om mysql database te connecten:
ODBC;Driver=MySQL ODBC 5.1 Driver;SERVER=DOMEIN;UID=odbc;PWD=WACHTWOORD;DATABASE=DATABASENAAM;PORT=3306;DFLT_BIGINT_BIND_STR=1

Echter heb ik deze niet voor sql server.
Ik verwacht dat ik zowel een link nodig heb waar ik de driver kan downloaden en code nodig heb om deze aan te roepen.
 
Lijkt me stug dat je geen driver hebt, want die wordt standaard met Windows meegeleverd. Maar ik denk dat de link van bron wel zal helpen, en anders kun je bij Microsoft ook wel een driver vinden. De string die je zoekt is (vind ik) een stuk makkelijker te vinden, want daar is een mooie website voor: connectionstrings.com.
 
Lijkt me stug dat je geen driver hebt, want die wordt standaard met Windows meegeleverd. Maar ik denk dat de link van bron wel zal helpen, en anders kun je bij Microsoft ook wel een driver vinden. De string die je zoekt is (vind ik) een stuk makkelijker te vinden, want daar is een mooie website voor: connectionstrings.com.

Dit ga ik morgen uitproberen en je hoort van me als het gelukt is. Iig dank voor het snel reageren
 
Hi Octafish

Volgens mij zit er geen MySql odbc driver bij Windows, wel MSAccess en SQL-Server (Microsoft server??)

Ik gebruik W8.1 met W7 startknop, maar dit terzijde :) :)
 
Hi Octafish

Volgens mij zit er geen MySql odbc driver bij Windows, wel MSAccess en SQL-Server (Microsoft server??)

Ik gebruik W8.1 met W7 startknop, maar dit terzijde :) :)

Ik ben kennelijk onduidelijk geweest, ik zoek een driver en code om met een SQL server database te connecten.
Die van mysql heb ik al aan de praat (zie voorbeeld conectionstring) en was bedoeld om aan te tonen hoe ik dit connect via vba.
Zo'n zelfde code zocht ik voor SQL Server.
 
Bijvoorbeeld voor SQL Server 7
Driver={SQL Server};Server=myServerAddress;Database=myDataBase;Uid=myUsername;
Pwd=myPassword;
 
Laatst bewerkt:
Bijvoorbeeld voor SQL Server 7
Driver={SQL Server};Server=myServerAddress;Database=myDataBase;Uid=myUsername;
Pwd=myPassword;

Vraagje:
Moet ik uberhaupt een SQL server driver installeren of wanneer ik vanuit vba omgeving van MS Access de connectie instellingen invult maakt het een connectie?
Of moet ik sec wel een specifieke driver installeren eer ik deze code kan lanceren?
 
@ Richard: het is totaal onnodig om complete berichten te quooten. Als je reageert op een bericht, kun je gewoon gaan typen in het vak <Snel reageren>. Quooten doe je, de naam zegt het al, als je iets wilt citeren.
Dus graag ook alle oude quootes verwijderen. Bovendien maakt dat de lengte van de draad ook weer behapbaar, en bespaar je ons (en jezelf) een muisarm.
Een ODBC driver moet je gewoon al hebben, dus dit kun je zo instellen en uitvoeren.
 
Ik heb het volgende gedaan maar ik doe ergens want fout.
Het heeft te maken met wellicht de drivernaam of iets dergelijks: Driver={SQL Server}.
Ik gebruik een oude MS Access namelijk MS Access 2003 dus zal wellicht ook een oude drivernaam moeten noemen.
Kan iemand naar onderstaande code kijken en aangeven wat ik kennelijk fout doe.
Wellicht handig de juiste syntaxis erbij te plaatsen zodat ik deze direct kan kopieren en testen mocht iemand een oplossing weten.

Dim ws As Workspace
Dim db As Database
Dim Tdef As TableDef
Dim strConnection As String

Set ActiveDB = CurrentDb()
strConnection = "Driver={SQL Server};Server='DOMEINNAAM';Database='DATABASENAAM';Uid='GEBRUIKERSNAAM';Pwd='WACHTWOORD';"

Set db = CurrentDb()
Set Tdef = db.CreateTableDef("tblBedrijf")
Tdef.Connect = strConnection
Tdef.SourceTableName = "tblBedrijf"
db.TableDefs.Append Tdef
 
Ik zag dit ergens (ik heb het niet getest).
- Maak een leeg tekstbestand met de naam DATALINK.UDL
- Dubbelklik erop en vul alle gegevens in, waarschijnlijk kies je ODBC.
- Als alles is ingevuld sluit je het venster met OK.
- Open nu DATALINK.UDL in Kladblok en je vindt de string.

*** edit: misschien moet je eerst een ODBC gegevensbron maken, maar ik denk dat je 'm al hebt.
 
Laatst bewerkt:
Thanks dat heb ik gedaan maar hoe kan ik dan mijn vba code koppelen?
Liefst onderstaande syntaxis aanpassen

Dim ws As Workspace
Dim db As Database
Dim Tdef As TableDef
Dim strConnection As String

Set ActiveDB = CurrentDb()
strConnection = "Driver={SQL Server};Server='DOMEINNAAM';Database='DATABASENAAM';Uid='GEBRUIKERSNAAM';Pwd='WACHTWOORD';"

Set db = CurrentDb()
Set Tdef = db.CreateTableDef("tblBedrijf")
Tdef.Connect = strConnection
Tdef.SourceTableName = "tblBedrijf"
db.TableDefs.Append Tdef .[/COLOR]
 
Voor degene die ook tegen dit probleem aanlopen.
Was even goed zoeken maar dan vind je wat...

Code:
Sub ConnectSQLserverDB()
Dim strServerName As String
Dim strSQLDatabaseName As String
Dim strSQLUsername As String
Dim strSQLPassword As String
Dim strTable As String
Dim tdfLinked As TableDef
    
    On Error GoTo connect_tables_err
    
    strServerName = "SERVERNAAM"
    strSQLDatabaseName = "DATABASENAAM"
    strSQLUsername = "GEBRUIKERSNAAM"
    strSQLPassword = "WACHTWOORD"
    
    strTable = "tblBedrijf"
    strConnectString = "ODBC;Driver={SQL Server};SERVER=" & strServerName & _
                        ";DATABASE=" & strSQLDatabaseName & _
                        ";UID=" & strSQLUsername & _
                        ";PWD=" & strSQLPassword
    
    Set tdfLinked = CurrentDb.CreateTableDef(strTable)
    tdfLinked.Connect = strConnectString
    tdfLinked.SourceTableName = strTable
    CurrentDb.TableDefs.Append tdfLinked
    
connect_tables_err:
If Err.number > 0 Then
    MsgBox Err.Description & " - " & Err.number
End If 
End Sub
 
Laatst bewerkt:
Zou je de code willen opmaken met de CODE knop? Maakt hem een stuk leesbaarder.
 
Laatst bewerkt:
Kan je me vertellen waar de "d code" knop staat? Heb het voor je willen aanpassen maar kon het niet vinden.
 
Voor typfouten hebben we helaas geen knop, voor CODE gelukkig wel :). Die zit in de werkbalk. Of, dat doe ik meestal, ik typ de code ervoor en erachter. Voor je code typ je dan [ code ], en achter [ /code ]. Ik heb er nu spaties tussen getypt, omdat de code niet moet worden toegepast. Maar achter [ zit dus geen spatie, en voor ] ook niet.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan