none
MSSQL 2008 R2 - Verbindungsserver und Benutzer anlegen über VBA Access 2003

    Frage

  • Hallo zusammen

    Ich suche Information oder Ansätze wie ich über VBA eine Benutzer und Verbindungsserver in einem MS SQL Server 2008 R2 anlegen kann

    ACCESS 2003

    Danke

    Michael

    Freitag, 4. März 2011 09:48

Antworten

  • Kleiner Tipp, wie man solche Sachen angehen kann: In Ssms manuell anlegen und so konfigurieren, wie es sein sollte. Dann Rechte-Maus auf den Verbindungsserver => Script Verbindungsserver als => CREATE in => Neues Abfragefenster.

    So bekommst Du alle nötigen SQL Statements, um ein Objekt anzulegen; und das geht bei allen Objektarten.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    • Als Antwort markiert MCDPone Donnerstag, 10. März 2011 12:57
    Freitag, 4. März 2011 17:14

Alle Antworten

  • Hallo Michael,

    indem Du eine Ado Connection zum SQL Server öffnest und die entsprechenden T-SQL Statements ausführst, also CREATE LOGIN zum Anlegen eines Benutzers und die sp_AddLinkedServer aufrufst.

    Ansonsten gäbe es für die alte COM Welt noch Sql-Dmo, um Objekte im SQL Server anzulegen.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Freitag, 4. März 2011 10:15
  • Hallo Olaf oder andere

    ADO Connection aufbauen habe ich hinbekommen

    Damit benutzer anlegen auch

    aber der verbindungsserver - nö - ich bekomme noch nicht einmal eine fehlermeldung

    ' Neuen Verbindungsserver in der SQL-Datenbank erstellen
    Public Function SQLServerAddsVerbindungsserver(oConn As ADODB.Connection, _
     ByVal sVerbindungsserver As String, _
     ByVal sPfad As String) As Boolean
     
     On Error GoTo ErrHandler
     
     oConn.Execute "USE Master"
    
     oConn.Execute "EXEC sp_addlinkedserver @server = N" & sVerbindungsserver & ", @provider = N'Microsoft.Jet.OLEDB.4.0', @srvproduct = N'OLE DB Provider for Jet', @datasrc = " & sPfad
    
     On Error GoTo 0
     SQLServerAddsVerbindungsserver = True
     Exit Function
     
    ErrHandler:
     MsgBox "Beim Hinzufügen des Verbindungsserver ist ein Fehler aufgetreten." & vbCrLf & _
      CStr(Err.Number) & " " & Err.Description
    End Function
    
    
    Freitag, 4. März 2011 13:52
  • Hallo Michael,

    übergibst Du sVerbindungsserver & sPfad bereits mit einfachen Anführungszeichen; die vermisse ich sonst? Ich habs bei mir mal so abgeändert

    oConn.Execute "EXEC sp_addlinkedserver @server = N'" & sVerbindungsserver & "'" & _

                      ", @provider = N'Microsoft.Jet.OLEDB.4.0'" & _

                      ", @srvproduct = N'OLE DB Provider for Jet'" & _

                      ", @datasrc = '" & sPfad & "';"

    und getestet; es geht, der Linked Server wird angelegt. Ach, und in SSMS daran denken die Ansicht zu aktualisieren, damit Du den neuen Eintrag siehst, das geschieht nicht automatisch.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Freitag, 4. März 2011 14:23
  • D A N K E

    kaum macht man es richtig geht es

    an aktualisieren hatte ich gedacht aber danke auch dafür weil das immer die dinge sind die man nicht sieht/vergisst

    endlich kann ich das aus meiner datenbank anlegen das ist echt klasse

    Michael

     

    Freitag, 4. März 2011 14:44
  • Ein Problem habe ich doch noch - er erstellt den verbindungsserver aber in dem verbindungsserver unter sicherheit setzt er den haken bei

    - Im aktuellen Sicherheitskontext der Anmeldung verwenden

    benötige ihn aber in (weil sonst geht es nicht)

    - nicht in einem Sicherheitskontext verwenden

     

    wie kann ich das mit übergeben?

    Freitag, 4. März 2011 15:22
  • Hab es selbst gefunden - ein

      oConn.Execute "EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'" & sVerbindungsserver & "'" & _
                        ", @locallogin = NULL , @useself = N'False'"

     

    hinterher erledigt es

    Freitag, 4. März 2011 16:31
  • Kleiner Tipp, wie man solche Sachen angehen kann: In Ssms manuell anlegen und so konfigurieren, wie es sein sollte. Dann Rechte-Maus auf den Verbindungsserver => Script Verbindungsserver als => CREATE in => Neues Abfragefenster.

    So bekommst Du alle nötigen SQL Statements, um ein Objekt anzulegen; und das geht bei allen Objektarten.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    • Als Antwort markiert MCDPone Donnerstag, 10. März 2011 12:57
    Freitag, 4. März 2011 17:14