Fout 3210 verbindingsreeks te lang

Status
Niet open voor verdere reacties.

handyhanky

Gebruiker
Lid geworden
12 jan 2010
Berichten
24
Ik wil gegevens ophalen met de Native client server en DAO.
Output in Excel.
Ik heb dit vaker gedaan en het werkte goed. Maar nu:
De connection string is ECHT korter dan 255 tekens en toch krijg ik de foutmelding dat deze te lang is.
Iemand een idee waarom? en wat hieraan te doen?


Code:
Sub ODBC_ophalen()

Dim db As DAO.Database
Dim rs As DAO.Recordset

Dim strDriver As String
Dim strServer As String
Dim strDatabase As String
Dim strUserId As String
Dim strPassword As String
Dim strConnect  As String
Dim strsql As String

strDriver = "SQL Server Native Client 11.0"
strServer = "tcp:gb2ffg5y0o.database.windows.net"
strDatabase = "xxxxx"
strUserId = "xxxxxx"
strPassword = "xxxxx"
strConnect = ""
strConnect = "ODBC;Driver=" & strDriver & ";SERVER=" & strServer & ";Database=" & strDatabase & ";UID=" & strUserId & ";Pwd=" & strPassword & ";Encrypt = yes"

Set db = OpenDatabase("", False, False, strConnect)
 
strsql = "TabelLeveranciers"

Set rs = db.OpenRecordset(strsql, dbOpenDynaset, dbSeeChanges)

If Not rs.EOF Then rs.MoveFirst
Do Until rs.EOF
ActiveCell = rs("Leveranciernaam")
ActiveCell.Offset(1, 0).Select


rs.MoveNext
Loop

End Sub
 
En je weet zeker dat er geen oneigenlijke tekens in UserID of wachtwoord zitten?
 
En vervolgens: ben je bekend met .copyfromrecordset ?
 
Beste Octafish
De userID bevat alleen numerieke en alfanumerieke tekens en underscores
In het wachtwoord zitten ook # en /
Beide hebben eerder gewerkt dus ik verwacht niet dat hier een probleem zit
 
Je laat je afleiden van je probleem :). CopyFromRecordset gaat je niet helpen als je niet eerst de connectie met de database voor elkaar krijgt.
Code:
    Set ws = ActiveSheet
    For iCols = 0 To rs.Fields.Count - 1
        ws.Cells(1, iCols + 1).Value = rs.Fields(iCols).Name
    Next
    ws.Range(ws.Cells(1, 1), ws.Cells(1, rs.Fields.Count)).Font.Bold = True
    ws.Range("A2").CopyFromRecordset rs
 
Kijk dan eerst eens naar het resultaat van:

Code:
msgbox "ODBC;Driver=" & strDriver & ";SERVER=" & strServer & ";Database=" & strDatabase & ";UID=" & strUserId & ";Pwd=" & strPassword & ";Encrypt = yes"

En besteed daarna ;) pas aandacht aan:

Code:
  redim  sn(rs.fields.count-1)

  For j = 0 To ubound(sn)
    sn(j) = rs.Fields(j).Name
  Next

  with activesheet.cells(1,ubound(sn)+1)
    .value=sn
    .font.bold=true
    .resize(1,1).offset(1).copyfromrecordset rs
  end with
 
Sinds wanneer zijn 10 regels korter dan 6? :). Volgens mij ook nauwelijks (meetbaar) sneller.
 
Meestal maak je code van anderen korter, niet langer :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan