Frontend mit MS-SQL-Server-Backend verbinden

Moderator: ModerationP

Frontend mit MS-SQL-Server-Backend verbinden

Beitragvon indscho1 » 26. Apr 2021, 19:48

Hallo zusammen,
ich habe folgende Funktion erstellt, mit der sich mein Frontend erfolgreich mit einem Backend auf einem MS-SQL-Server verbindet. Leider dauert die Verknüpfung zu den insgesamt 70 Views über 15 Sekunden bei einer guten Internetverbindung (200 MBits/Sec). Da es meiner erster Gehversuch auf diesem Gebiet ist würde ich mich freuen, wenn jemand eine Anregung hätte, wie sich die Geschwindigkeit der Funktion steigern lässt. Die Funktion wird beim Start des Frontends mit dem Start-Makro AutoExec angestoßen.

Code: Alles auswählen
Function connectODBC() As Boolean
'Verbindet das Access-Frontend mit dem MS-SQL-Backend

    Dim db As dao.Database
    Dim td As TableDef
    Dim strConnect As String
    Dim arrTables() As Variant
    Dim strTable As String
    Dim i As Integer
   
    On Error GoTo Err_Handler
   
    Set db = CurrentDb
   
    strConnect = "ODBC;DRIVER=SQL Server;SERVER=[SERVERPFAD];DATABASE=[DB-NAME];UID=[USERNAME];PWD=[PASSWORD]"
   
    connectODBC = False
   
    arrTables = getAllTables    'Ermittelt alle ViewNamen aus einer lokalen Tabelle
   
    For i = LBound(arrTables, 2) To UBound(arrTables, 2)
        strTable = CStr(arrTables(0, i))
        'Verknüpfte Tabelle löschen
        CurrentDb.TableDefs.Delete strTable
        Set td = db.CreateTableDef(strTable, dbAttachSavePWD, strTable, strConnect)
        CurrentDb.TableDefs.Append td
        db.Execute "CREATE INDEX PrimaryKeyIdx ON " & CStr(arrTables(0, i)) & "(" & CStr(arrTables(1, i)) & ") WITH PRIMARY"
    Next i
       
    connectODBC = True
   
    Set db = Nothing
   
Err_Exit:
    Exit Function
   
Err_Handler:
    MsgBox Err.Description
    Resume Err_Exit
   
End Function

Hat jemand eine Idee? Ich wäre sehr dankbar dafür.

Gruß Ingo
indscho1
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 107
Registriert: 16. Nov 2016, 11:14

Re: Frontend mit MS-SQL-Server-Backend verbinden

Beitragvon Bitsqueezer » 26. Apr 2021, 22:06

Hallo Ingo,

wo immer möglich, sollte man keine UserID/Passwort verwenden, sondern den Windows User mit Windows Authentication. Die SQL Server UserID nur dann, wenn diese Möglichkeit nicht besteht. Immer bedenken, daß im einfachsten Fall die Daten im Klartext übers Netz gehen.

Wozu aber verbindest Du alle Views jedesmal neu? Das brauchst Du nur, wenn Du mal was am Design änderst (und dann gibt es eh ein neues Frontend) oder auf einen anderen Server umswitchen willst. Im Regelfall ist das die Arbeit des Designers, nicht des Endusers. Maximal wäre das was für den ersten Start, wenn notwendig, danach nie wieder.

Die Verbindungszeichenfolge wird im Link hinterlegt, daher verbindet sich Access selbst, sobald die eingebundene Tabelle/View im Frontend verwendet wird.

Ach so und: "CurrentDb" in einer Schleife zu verwenden, ist grundsätzlich böse...
Das ist keine Objektvariable, sondern eine Funktion und die erstellt mit jedem Aufruf eine Kopie des Workspaces, sprich: Schnarchlangsam in einer Schleife.
Einfach VOR der Schleife einer Objektvariablen (als DAO.Database deklariert) zuweisen und dann die stattdessen in der Schleife verwenden.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8276
Registriert: 21. Jun 2007, 12:17

Re: Frontend mit MS-SQL-Server-Backend verbinden

Beitragvon indscho1 » 27. Apr 2021, 08:34

Hallo Christian,
die User/Passwort-Übergabe komme ich leider nicht herum. Alles andere ist natürlich richtig, was du schreibst. Das Neuverknüpfen beim Start war sinnbefreit. Keine Ahnung, was mich da geritten hatte. Und jedes mal ein currentDB in einer Schleife zu verwenden ebenso (zumal ich ja vor der Schleife bereits ein DAO.database-Objekt definiert hatte). Soweit alles verstanden.

Jetzt habe ich auf dem MS-SQL-Server mit dem Indizieren angefangen (ich will ja auf die Daten-Autobahn ;o). Jetzt habe ich aber das Problem, dass meine (nun bereinigte) Verbindungsfunktion zum Erstellen eines neuen Frontends beim Anlegen eines Index aussteigt ("Der Primärschlüssel ist bereits vorhanden."), wenn ich diesen (zu Fuß) bereits auf dem Server erstellt habe.

Code: Alles auswählen
Function connectODBC() As Boolean
'Verbindet das Access-Frontend mit dem MS-SQL-Backend

    Dim db As dao.Database
    Dim td As TableDef
    Dim strConnect As String
    Dim arrTables() As Variant
    Dim strTable As String
    Dim i As Integer
   
    On Error GoTo Err_Handler
   
    Set db = CurrentDb
   
    strConnect = "ODBC;DRIVER=SQL Server;SERVER=[SERVERPFAD];DATABASE=[DB-NAME];UID=[USERNAME];PWD=[PASSWORD]"
   
    connectODBC = False
   
    arrTables = getAllTables    'Ermittelt alle Tabellen
   
    For i = LBound(arrTables, 2) To UBound(arrTables, 2)
        strTable = CStr(arrTables(0, i))
        'Verknüpfte Tabelle löschen (NICHT: ltbl's !)
        db.TableDefs.Delete strTable
        Set td = db.CreateTableDef(strTable, dbAttachSavePWD, strTable, strConnect)
        db.TableDefs.Append td
        db.Execute "CREATE INDEX PrimaryKeyIdx ON " & CStr(arrTables(0, i)) & "(" & CStr(arrTables(1, i)) & ") WITH PRIMARY", dbFailOnError
    Next i
       
    db.Execute "UPDATE ltblSetting SET currentServer = 'online' WHERE setting_id = 1"
    connectODBC = True
   
    Set db = Nothing
   
Err_Exit:
    Exit Function
   
Err_Handler:
    MsgBox Err.Description
    Resume Err_Exit
   
End Function


Ich würde instinktiv vor der Zeile
Code: Alles auswählen
db.TableDefs.Append td

abfragen, ob der Index bereits besteht - und falls ja - den Index nicht anfügen. Aber wie stelle ich das an? Ich habe dazu nichts gefunden.
Oder ist das etwas unelegant (oder auch wieder sinnbefreit?)

Gruß Ingo
indscho1
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 107
Registriert: 16. Nov 2016, 11:14

Re: Frontend mit MS-SQL-Server-Backend verbinden

Beitragvon Bitsqueezer » 27. Apr 2021, 08:55

Hallo Ingo,

natürlich sollte jede Tabelle einen PK haben, das sollte aber sogar der SSMA schon für Dich erledigt haben, wenn Du damit migriert hast und die Access-Tabellen bereits einen PK enthielten.

Verlinkt man Tabellen direkt (nicht empfohlen), braucht man auch in den TableDefs nichts zu machen, das findet Access alleine raus.
Verlinkt man Views, die nur eine Tabelle zur Änderung anbieten (was nicht heißt, das nicht mehr als eine dort verwendet wird), sollte Access das üblicherweise auch selbst herausfinden können, solange das PK-Feld in der View enthalten ist.
Verlinkt man Views, bei denen Access nicht automatisch den richtigen PK findet, dann muß man das Feld manuell auswählen (wenn man die View manuell einbindet). Und nur genau für diese Views legt man den von Access geforderten Index an, der ja lokal angelegt wird (am Backend ändert sich nichts). Das probiert man für seine Views einmal aus und weiß dann, wo Access das braucht und wo nicht. Dann einfach den Namen des PK-Feldes mit in die lokale Tabelle aufnehmen, in der die Liste der zu verlinkenden Views steht, und dann brauchst Du auch nur für die den lokalen Index anlegen.

Ich würde das hier nicht automatisch per Code ermitteln lassen. Die Möglichkeit besteht natürlich, denn man kann alle Informationen über die Datenbank auf dem SQL Server mit den INFORMATION_SCHEMA-Abfragen herausfinden (die übrigens genormt sind, so daß sie in vielen DB-Servern gleich funktionieren).

Nicht vergessen, Deine Datenbank auch immer mit den Rechten der Benutzer zu testen, denn als Entwickler hat man ja üblicherweise wenigstens db_owner-Rechte, wenn nicht gar Sysadmin auf dem ganzen SQL Server (nicht verwechseln mit Admin auf dem darunterliegenden Windows). Der "einfache User", der im einfachsten Fall nur db_reader/db_writer"-Rechte braucht, kann u.U. nicht auf die Information-Views zugreifen.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8276
Registriert: 21. Jun 2007, 12:17

Re: Frontend mit MS-SQL-Server-Backend verbinden

Beitragvon indscho1 » 29. Apr 2021, 11:11

Hallo Christian,
ich hänge an einer Kleinigkeit fest. Es geht immer noch um die Fehlermeldung "Primärschlüssel bereits vorhanden", die bei einigen Views im Anschluss an die folgende Befehlszeile auftritt:
Code: Alles auswählen
   ...
   db.TableDefs.Append td
   ...

Du hattest dazu geschrieben:
Verlinkt man Views, bei denen Access nicht automatisch den richtigen PK findet, dann muß man das Feld manuell auswählen (wenn man die View manuell einbindet). Und nur genau für diese Views legt man den von Access geforderten Index an, der ja lokal angelegt wird (am Backend ändert sich nichts). Das probiert man für seine Views einmal aus und weiß dann, wo Access das braucht und wo nicht. Dann einfach den Namen des PK-Feldes mit in die lokale Tabelle aufnehmen, in der die Liste der zu verlinkenden Views steht, und dann brauchst Du auch nur für die den lokalen Index anlegen.


In meiner lokalen Tabelle für die Views habe ich neben dem Namen eine Spalte für den Primer Key. Ein Ausschnitt sieht so aus:

ID tabName / primKey
----------------------------------------------------------
...
56 view_frmProject / project_id
57 view_frmProjectImprovements / project_id
58 view_frmProjectParticipant / project_id
59 view_frmReportCenter / project_id
...
----------------------------------------------------------

Beim Durchlaufen der o. a. Funktion wird bei dem Datensatz mit ID = 57 die Fehlermeldung ("Primärschlüssel bereits vorhanden") erzeugt. Wenn ich die Verlinkung zu der betreffenden View lösche, ist die Fehlermeldung beim nächsten Funktionsdurchlauf weg. Verknüpfe ich sie erneut, fordert mich Access NICHT dazu auf einen Primärschlüssel auszuwählen. Und dann ist beim nächsten Funktionsaufruf die Fehlermeldung wieder da.

Ich bin ratlos. Hast du eine Idee?

Gruß Ingo
indscho1
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 107
Registriert: 16. Nov 2016, 11:14

Re: Frontend mit MS-SQL-Server-Backend verbinden

Beitragvon Bitsqueezer » 29. Apr 2021, 11:23

Hallo Ingo,

Du mußt in jedem Fall zuerst die Verlinkung löschen, bevor Du sie wieder neu verlinkst.
Der Indexname muß natürlich auch eindeutig sein, außerdem sollte der Index als UNIQUE erstellt werden, hier ein Auszug aus einer entsprechenden VBA-Funktion aus einem Projekt:

Code: Alles auswählen
db.Execute "CREATE UNIQUE INDEX [PK_" & pTable_name & "] ON [" & pTable_name & "] (" & pIndex_list & ") WITH PRIMARY"


Wie gesagt, würde ich hier vor allem jede der Views einmalig manuell einbinden und sehen, wo Access tatsächlich nach einem Index fragt und nur in dem Fall einen erzeugen. Denn ansonsten verwendet Access gleich selbst den richtigen und man muß keinen Hilfsindex erstellen.

Außerdem glaube ich kaum, daß in all diesen Views der Primary Key identisch ist. Wenn jede View auf eine Zieltabelle abzielt, z.B. "Participants", dann müßte es ja auch etwas sein wie "projectparticipant_ID" statt "project_id".

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8276
Registriert: 21. Jun 2007, 12:17

Re: Frontend mit MS-SQL-Server-Backend verbinden

Beitragvon indscho1 » 29. Apr 2021, 12:14

Hallo Christian,
ich binde jede View immer zunächst manuell ein. Und dabei wird ja auch immer von Access nach dem Primärschlüssel gefragt. Bei besagter View aber eben nicht (mehr). Der Primärschlüssel in meiner lokalen Tabelle ist identisch mit dem clustered index in der View auf dem MS--SQL-Server (siehe angehängte Bilder).
Auch das Löschen der Verbindung erfolgt stets vor dem neuerlichen Verbinden.
Code: Alles auswählen
   db.TableDefs.Delete strTable
   Set td = db.CreateTableDef(strTable, dbAttachSavePWD, strTable, strConnect)
   db.TableDefs.Append td
   db.Execute "CREATE UNIQUE INDEX PrimaryKeyIdx ON " & CStr(arrTables(0, i)) & "(" & CStr(arrTables(1, i)) & ") WITH PRIMARY", dbFailOnError


Was könnte man noch ausprobieren? Irgendwo muss Access den Primarschlüssel von der verlinkten View "view_frmProjectImprovements" speichern und augenscheinlich wird er nicht gelöscht, wenn die Verlinkung gelöscht wird. Kann man das evtl. abfragen und dann löschen?

Gruß Ingo
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
indscho1
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 107
Registriert: 16. Nov 2016, 11:14

Re: Frontend mit MS-SQL-Server-Backend verbinden

Beitragvon Bitsqueezer » 29. Apr 2021, 12:33

Hallo Ingo,

  • wie oben gesagt: Der Name des Index muß eindeutig sein, Du verwendest immer den gleichen Namen.
  • eine View hat per Default keinen Index, die werden üblicherweise auf der Tabelle definiert. Man KANN einen Index auf eine View legen, hat aber den Nachteil, daß die View dann schemabound definiert ist, was dann eine Designänderung der Tabelle(n) unterbindet, bis die Bindung wieder aufgehoben wird.
  • wenn ich mal davon ausgehe, daß "ProjectImprovements" eine 1:n-Tabelle ist, die mit einem Fremdschlüssel auf das zugehörige Projekt verweist, dann ist der Fremdschlüssel "project_id", was aber für DIESE Tabelle NICHT der Primary Key ist. Mal angenommen, daß dieser "ProjectImprovements_id" heißt, wäre das der PK, der hier zugewiesen werden müßte. Ansonsten wäre diese Tabelle eine 1:1-Tabelle, bei der es genau einen Datensatz zu einem Projekt gibt. Das wäre unnötig, dann können die Felder auch gleich in die Projekttabelle übernommen werden.
  • Bei "ProjectParticipant" etwa muß man davon ausgehen, daß es 1:n ist, würde ja sonst keinen Sinn machen. Erneut die Frage, warum hier der PK "project_id" verwendet werden soll, der kann niemals eindeutig und PK für diese Tabelle sein. Auch hier müßte es dann etwas wie "ProjectParticipant_id" sein.
  • Solltest Du die Views über den SSMA erstellt haben, empfehle ich, die Indizes auf die zugrundeliegende(n) Tabelle(n) zu verschieben, Schemabindung aufzuheben und den Index aus der View zu löschen.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8276
Registriert: 21. Jun 2007, 12:17

Re: Frontend mit MS-SQL-Server-Backend verbinden

Beitragvon indscho1 » 29. Apr 2021, 13:15

Hallo Christian,
vielen herzlichen Dank, das war der entscheidende Hinweis. Ich hatte meine View tatsächlich WITH SCHEMABOUND definiert um dort Indices zu erstellen. Die habe ich jetzt in die zugehörigen Tabellen verschoben und die Views als nicht SCHEMABOUND definiert. Und siehe da - es läuft.

Was mich zu diesem Thema abschließend noch umtreibt ist Folgendes: Ich verknüpfe meine DB bekanntlich mit der o. a. Funktion. Diese erzeugt den PK in der folgenden Zeile:
Code: Alles auswählen
        db.Execute "CREATE UNIQUE INDEX PrimaryKeyIdx ON " & CStr(arrTables(0, i)) & "(" & CStr(arrTables(1, i)) & ") WITH PRIMARY", dbFailOnError

Darin enthält arrTables alle verlinkten Views (Feld0 = tblName, Feld1 = PrimKey).
Jetzt kann ich aber als PK im Feld1 auch "Mümmelmann" eintragen, ohne das Access sich hier beschwert. Wozu dann diese Übung?

Gruß Ingo
indscho1
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 107
Registriert: 16. Nov 2016, 11:14

Re: Frontend mit MS-SQL-Server-Backend verbinden

Beitragvon Bitsqueezer » 29. Apr 2021, 13:24

Hallo Ingo,

na also...geht doch...:)

Weiterhin verwendest Du "PrimayKeyIdx" statt eines eindeutigen PK-Namens.

Warum "Mümmelmann" funktioniert, kann ich Dir nicht sagen, ich würde hier aber vermuten, daß der Fehler unterdrückt wird.
Ohne den Unique Primary Key sollte die View zwar abrufbar, aber nicht mehr editierbar sein (weil Access dann nicht herausfinden kann, welcher Datensatz bearbeitet werden soll).

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8276
Registriert: 21. Jun 2007, 12:17

Re: Frontend mit MS-SQL-Server-Backend verbinden

Beitragvon indscho1 » 29. Apr 2021, 13:58

Wenn ich mal groß bin, werde ich Programmierer.
Weiterhin verwendest Du "PrimayKeyIdx" statt eines eindeutigen PK-Namens.

Jetzt nicht mehr:
Code: Alles auswählen
db.Execute "CREATE UNIQUE INDEX idx_" & CStr(arrTables(1, i)) & " ON " & CStr(arrTables(0, i)) & "(" & CStr(arrTables(1, i)) & ") WITH PRIMARY", dbFailOnError


Danke noch mal für deinen großartigen Support.
indscho1
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 107
Registriert: 16. Nov 2016, 11:14

Re: Frontend mit MS-SQL-Server-Backend verbinden

Beitragvon indscho1 » 05. Mai 2021, 20:21

Hallo Christian,
ich muss nochmal auf das Verbinden mit dem SQL-Server zurückkommen. Ich hatte ja ursprünglich mal zum Programmstart alle Views neu verbunden. Du hattest dazu weiter oben geschrieben:
wo immer möglich, sollte man keine UserID/Passwort verwenden, sondern den Windows User mit Windows Authentication. Die SQL Server UserID nur dann, wenn diese Möglichkeit nicht besteht. Immer bedenken, daß im einfachsten Fall die Daten im Klartext übers Netz gehen.

Wozu aber verbindest Du alle Views jedesmal neu? Das brauchst Du nur, wenn Du mal was am Design änderst (und dann gibt es eh ein neues Frontend) oder auf einen anderen Server umswitchen willst. Im Regelfall ist das die Arbeit des Designers, nicht des Endusers. Maximal wäre das was für den ersten Start, wenn notwendig, danach nie wieder.

Die Verbindungszeichenfolge wird im Link hinterlegt, daher verbindet sich Access selbst, sobald die eingebundene Tabelle/View im Frontend verwendet wird.

Jetzt habe ich das so umgesetzt, dass meine Routine ConnectODBC (siehe weiter oben in diesem Blog) nicht bei beim Programmstart gefahren wird. Doch mit der neuen Version, die ich jetzt bei Usern ausprobiert habe kommt die Fehlermeldung (siehe auch Anhang) "The expression On Open you entered as the event property setting produced the following error: ODBC--connection to 'SQL Server XYZ.firma.com, 2441' failed"

Ich war davon ausgegangen, dass es ausreicht, wenn sich die Views über die jeweils hinterlegte Verknüpfung ohne weiteres Zutun mit dem Server verbinden, dies scheint aber nicht der Fall zu sein. Muss ich also zu Programmstart erst noch eine generelle Anmeldung durchführen? Vielleicht habe ich auch grundsätzlich nicht verstanden, was du mit Link meinst, "in dem die Verbindung hinterlegt ist". Ich war davon ausgegangen, dass Verknüpfung und Link in diesem Fall ein- und dasselbe sind.

Bitte keine weiteren Folgen Lindenstraße, mir ist noch schlecht vom letzten Mal. Das Thema ist einfach neu für mich.

Gruß Ingo
indscho1
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 107
Registriert: 16. Nov 2016, 11:14

Re: Frontend mit MS-SQL-Server-Backend verbinden

Beitragvon Bitsqueezer » 05. Mai 2021, 21:46

Hallo Ingo,

die Standardmethode einer DSNlosen Verbindung findest Du hier (Methode 1!):
https://docs.microsoft.com/de-DE/office ... kted-table

Sowohl in dem Link wie auch in Deinem Code wird der Treiber "SQL Server" verwendet, was die schlechteste Lösung ist. Die ist zwar in jedem Windows enthalten, aber auch der langsamste. Für Access-Formular sollte es stattdessen SQLOLEDB sein und für alle direkten Abfragen besser SQLNCLI (das muß aber extra installiert werden).

Beste Quelle für alle Sorten von Connectionstrings ist: www.connectionstrings.com

Mit Link ist natürlich Verknüpfung gemeint, die Verbindung jedoch ist eine Verbindungszeichenfolge, die Du siehst, wenn Du mit der Maus über eine Verknüpfung fährst oder in den Eigenschaften.

Die Korrektheit der Verknüpfung kannst Du ja leicht testen: Einfach per Doppelklick öffnen und dann siehst Du, ob Du die Tabelle/Abfrage, auf die hier zugegriffen werden soll, geöffnet werden kann. Warum also keine Verbindung zustandekommt, mußt Du da selbst herausfinden. Für gewöhnlich sollte aber ein Erstellen einer solchen Verknüpfung per VBA bereits nicht funktionieren, wenn der Server nicht erreichbar ist.

Dann muß auch sichergestellt sein, daß der Server von dem betreffenden Standort aus erreichbar ist. U.a. ist in einem Domänennetzwerk wichtig, den FQDN des Servers zu verwenden, nicht einfach nur den Namen. In einem großen Netzwerk wird der Server ansonsten einfach nicht gefunden, je nach Konfiguration der Domäne und der Netzwerk-Komponenten. Auch nicht zu vergessen, daß weiter entfernte Standorte u.U. einen höheren Timeout-Wert benötigen.
Daher nach wie vor meine Empfehlung für weltweit verteilte Standorte, lieber einen (oder mehrere) zentrale Terminalserver verwenden, die "nah am SQL Server" sind und damit immer performant mit dem DB-Server arbeiten, während die externen Standorte selbst nicht mal ein Access installiert haben müssen, sondern per RemoteApp auf den Terminal Server zugreifen.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8276
Registriert: 21. Jun 2007, 12:17

Re: Frontend mit MS-SQL-Server-Backend verbinden

Beitragvon indscho1 » 06. Mai 2021, 19:12

Hallo Christian,
ich komme leider mit dem Connection-String nicht weiter. Mit folgendem String
Code: Alles auswählen
strConnect = "Provider=sqloledb;Server=myServerName,1433;Database=myDatabaseOnSQLServer;User Id=myUSER;Password=myPW

erhalte ich immer folgende Fehlermeldung
Installierbares ISAM nicht gefunden.

Ich möchte natürlich die bestmögliche Verbindung herstellen, aber das muss im Windowsstandard funktionieren weil meine User keine Treiber installieren sollen respektive können.

Was mache ich noch falsch?

Gruß Ingo
indscho1
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 107
Registriert: 16. Nov 2016, 11:14

Re: Frontend mit MS-SQL-Server-Backend verbinden

Beitragvon Bitsqueezer » 06. Mai 2021, 22:17

Hallo Ingo,

ich habe wohl zuviel ADO intus, SQLOLEDB ist laut MS für ADO gedacht, während für DAO ODBC verwendet werden sollte. Außerdem gilt SQLOLEDB als deprecated und soll für neue Projekte nicht mehr eingesetzt werden.

https://docs.microsoft.com/de-de/sql/ad ... rver-ver15

Aktuelle Informationen und Zugriffsmethoden sind hier beschrieben:
https://support.microsoft.com/en-us/off ... c556f139ea

Der Link enthält auch Informationen, welche Treiberversion für welchen SQL Server eingesetzt werden soll und die Download-Links.

Um eine Installation der Treiber kommst Du natürlich nicht herum. Das sollte aber auch für die IT kein Problem sein, die Treiber muß man nur einmal installieren und können dann für alle SQL Server verwendet werden.

Ansonsten bleibt Dir halt nur der "SQL Server" Treiber, der steinalt ist und langsam.

"myServerName" sollte, wie gesagt, die Domain ebenso beinhalten. Eine Portnummer mußt Du nicht angeben, wenn 1433 verwendet wird, was der Standardport ist.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8276
Registriert: 21. Jun 2007, 12:17

Nächste

Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste