OK habe es selbst hinbekommen. Man installiert den ODBC SQL Server Client 11.0 und erstellt eine System-DSN. Als Ziel wählt man den Server aus und die Datennbank TIMECOLL.
Wenn das Einrichten der DSN fehlschlägt, liegt das meist an den Windows-Firewall-Einstellungen des Rechners, auf dem der Server läuft. Bei mit hat es geklappt, den TCP Port 1433 freizugeben und dem Programm C:\Programme\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe zu erlauben, durch die Firewall zu kommunizieren (genauer Pfad kann abweichen).
Hier dann eine Beispielprozedur, die zu einer bestimmten Ausweisnummer die Buchungen in einem Zeitraum sucht. Aufruf: buchungenholen 116879,cdate ("04.01.2017 0:00"),cdate("04.01.2017 23:59")
Sub buchungenHolen(ausweisnummer As Long, von As Date, bis As Date)
Dim rsPERSON As DAO.Recordset
Dim rsMITARBEITER As DAO.Recordset
Dim rsBUCHUNG As DAO.Recordset
Set rsPERSON = CurrentDb.OpenRecordset("SELECT * FROM dbo_PERSON WHERE AUSWEISNUMMER = " & ausweisnummer, dbOpenDynaset, dbSeeChanges)
If rsPERSON.RecordCount = 0 Then
Debug.Print "Mitarbeiter nicht gefunden"
Else
Set rsMITARBEITER = CurrentDb.OpenRecordset("SELECT * FROM dbo_MITARBEITER WHERE KEY_PERSON = " & rsPERSON!pk_person, dbOpenDynaset, dbSeeChanges)
If rsMITARBEITER.RecordCount = 0 Then
Debug.Print "Mitarbeiter-Key nicht gefunden"
Else
Set rsBUCHUNG = CurrentDb.OpenRecordset("SELECT * FROM dbo_BUCHUNG WHERE KEY_MITARBEITER = " & rsMITARBEITER!PK_MITARBEITER & " AND BUCHUNGSZEIT >= " & Format(von, "\#yyyy\-mm\-dd\ hh:nn:ss#") & " AND BUCHUNGSZEIT <= " & Format(bis, "\#yyyy\-mm\-dd\ hh:nn:ss#") & " ORDER BY BUCHUNGSZEIT", dbOpenDynaset, dbSeeChanges)
If rsBUCHUNG.RecordCount = 0 Then
Debug.Print "Keine Buchungen gefunden"
Else
Do While Not rsBUCHUNG.EOF
Select Case rsBUCHUNG!KEY_BUCHUNGSART
Case 359: Debug.Print rsBUCHUNG!buchungszeit & " KOMMEN"
Case 360: Debug.Print rsBUCHUNG!buchungszeit & " GEHEN"
Case Else:
End Select
rsBUCHUNG.MoveNext
Loop
End If
End If
End If
End Sub