KleinerTipp zu ConnectionString (ADO / VBA) im SQL Server - Updated

english Version at the end

Ein kleiner Tipp zum (VBA / ADO) Connection-String des SQL Servers (getestet mit: Win10 64bit / Access 2013 32-bit / SQL Server 2017):

' ADOConn.ConnectionString = "Driver={SQL Server};Server=localhost\SQLEXPRESS;Database=Northwind;Trusted_Connection=Yes;APP=MeinName\MeinPC\MyApp1;"
' ADOConn.ConnectionString = "Provider='sqloledb';Data Source='localhost\SQLEXPRESS';Initial Catalog='Northwind';Trusted_Connection=yes;APP=MeinName\MeinPC\MyApp2;"
' ADOConn.ConnectionString = "Provider=SQLNCLI11;Server=localhost\SQLEXPRESS;Database=Northwind;Trusted_Connection=yes;APP=MeinName\MeinPC\MyApp3;"
' ADOConn.ConnectionString = "Driver={SQL Server Native Client 11.0};Server=localhost\SQLEXPRESS;Database=Northwind;Trusted_Connection=Yes;APP=MeinName\MeinPC\MyApp4;"

' ADOConn.ConnectionString = "Driver={SQL Server};Server=localhost\SQLEXPRESS;Database=Northwind;User ID=sa;Password=MyPW;APP=MeinName\MeinPC\MyApp5;"
' ADOConn.ConnectionString = "Provider='sqloledb';Data Source='localhost\SQLEXPRESS';Initial Catalog='Northwind';User ID=sa;Password=MyPW;APP=MeinName\MeinPC\MyApp6;"
' ADOConn.ConnectionString = "Provider=SQLNCLI11;Server=localhost\SQLEXPRESS;Database=Northwind;User ID=sa;Password=MyPW;APP=MeinName\MeinPC\MyApp7;"
' ADOConn.ConnectionString = "Driver={SQL Server Native Client 11.0};Server=localhost\SQLEXPRESS;Database=Northwind;User ID=sa;Password=MyPW;APP=MeinName\MeinPC\MyApp8;"

SELECT App_Name()

abrufen. 

Achtung: Überschreibt den APP-Wert der "normalerweise" übergeben würde.

Idee: Auch wenn man mit "normalisierten" Logins arbeitet, so kann man, wenn man pro User einen individuellen Connection-String zusammenbastelt, diesen an den SQL Server übergeben und man hat dann immer den "richtigen" Computer\Usernamen , so als ob man mit Trusted Connection arbeiten würde. Finde ich praktischer, als jedesmal in der Abfrage den Usernamen explizit übergeben zu müssen ... Zudem kann es einem die Fehlersuche auf dem SQL Server wesentlich erleichtern ...

Funktioniert mit allen oben angegebenen Connectionstrings

------------------------------------------ english Version ------------------------------------------

Small tip for using VBA ADO connection-string for SQL Server: (Tested in Win10 64bit / Access 2013 32-bit / SQL Server 2017)

' ADOConn.ConnectionString = "Driver={SQL Server};Server=localhost\SQLEXPRESS;Database=Northwind;Trusted_Connection=Yes;APP=MeinName\MeinPC\MyApp1;"
' ADOConn.ConnectionString = "Provider='sqloledb';Data Source='localhost\SQLEXPRESS';Initial Catalog='Northwind';Trusted_Connection=yes;APP=MeinName\MeinPC\MyApp2;"
' ADOConn.ConnectionString = "Provider=SQLNCLI11;Server=localhost\SQLEXPRESS;Database=Northwind;Trusted_Connection=yes;APP=MeinName\MeinPC\MyApp3;"
' ADOConn.ConnectionString = "Driver={SQL Server Native Client 11.0};Server=localhost\SQLEXPRESS;Database=Northwind;Trusted_Connection=Yes;APP=MeinName\MeinPC\MyApp4;"

' ADOConn.ConnectionString = "Driver={SQL Server};Server=localhost\SQLEXPRESS;Database=Northwind;User ID=sa;Password=MyPW;APP=MeinName\MeinPC\MyApp5;"
' ADOConn.ConnectionString = "Provider='sqloledb';Data Source='localhost\SQLEXPRESS';Initial Catalog='Northwind';User ID=sa;Password=MyPW;APP=MeinName\MeinPC\MyApp6;"
' ADOConn.ConnectionString = "Provider=SQLNCLI11;Server=localhost\SQLEXPRESS;Database=Northwind;User ID=sa;Password=MyPW;APP=MeinName\MeinPC\MyApp7;"
' ADOConn.ConnectionString = "Driver={SQL Server Native Client 11.0};Server=localhost\SQLEXPRESS;Database=Northwind;User ID=sa;Password=MyPW;APP=MeinName\MeinPC\MyApp8;"

If having a user individual APP=MeinName\MeinPC\MyAppN;

then one can fetch that with

SELECT App_Name()

Pay Attention: Overwrites the "original" APP value (which "normally" would be passed)

 Idea behind: Using an indiviual ADO Connection-String per user with VBA is simpler than passing the computer\user each time as parameter. So one is able to have the same information for "computer\user" even if not working with Trusted_connection but with "normalized" login-strings, without transmitting each time explicit user-name parameter ... Additionally it eases the debugging a lot as you know exactly which user etc ...

Does work with all shown ConnectionStrings 

Maybe helpful ?

SSIS und SQL Server Express

English translation at the end of the german part

Im Gegensatz zu manchen Aussagen ist es durchaus LEGAL möglich, SSIS Pakete mit einer Express-Edition zu managen:

D.h. man entwickelt ein Paket und deployt es auf den SQL Server Express und führt das Paket mittels einer Stored-Procedure aus.

Bei SSIS muss man zwischen Paket-Entwicklung, Paket-Deployment und Paket-Ausführung unterscheiden.

Im Verzeichnis in meinem Onedrive sind im Unterverzeichnis SSIS alle notwendigen Scripte gespeichert
In einem weiteren Unterverzeichnis davon sind weitere wichtige Links zu SSIS und Powershell vorhanden
Da das gesamte Verzeichnis SSIS sehr klein ist, empfielt es sich, das Verzeichnis als Gesamtes downzuloaden
Um das Handling zu erleichtern, habe ich alle scripts mit der zusätzlichen Endung .txt versehen.

 SSIS-Entwicklung

Es werden SSIS-Pakete mit Visual Studio entwickelt. 
Minimalvoraussetzungen zur Entwicklung sind: 

  • Visual Studio 2015 oder besser 2017 (Community Edition reicht)
  • SQL Server Data Tools dazu
  • Hinweis dazu: ssis-designer-is-now-available-for-visual-studio-2017
  • SQL Server (Express oder Developer Edition) <mit den Anwendungsdaten>
  • Hinweis: Der SQL Server muss Version 2012 oder größer sein.
  • SQL Server 2017 Management Studio (kann mit allen gängigen älteren SQL Server Versionen zusammenarbeiten)
  • Das KnowHow, SSIS-Pakete zu erstellen
  • -  Absolut kompletter, 19-teiliger (englischsprachiger) SSIS-Kurs von Wise-Owl in Youtube - Meines Erachtens ein echter 5-Sterne *****-Kurs

SSIS-Deployment

Seit SQL Server 2012 kann man vorhandene SSIS-Pakete im SQL Server in die spezielle Catalog-Datenbank SSISDB deployen 
und von dort aus mit eigenen Stored Procedures starten
Minimalvoraussetzungen dafür sind:

  • SQL Server Management Studio 2017 (installiert die notwendige SSIS IntegrationServices.dll automatisch mit 
  • und kann mit allen gängigen älteren SQL Server Versionen zusammenarbeiten)
  • SQL Server <Express> (Zugriff mit SA Rechten)
  • Hinweis: Der SQL Server muss Version 2012 oder größer sein.
  • Powershell größer gleich Version 4 (Ausführung als Admin)

Doing: 

a) Einmalig: SQL-Script "SQL SQL Server auf CLR enabled setzen.sql" ausführen
da für das folgende Script der Server auf CLR enabled = Yes stehen muss

b) für jedes neue Paket:
Ein Powershell-Script, das einem die Catalog-Datenbank im SQL-Server-Express erzeugt und die Pakete in die Catalog-Datenbank deployt
"PS SSIS Catalog and Project Deployment with PowerShell___Als_Admin_ausführen.ps1" als Admin ausführen
Erklärungen Inline

c) da diese Checkbox bei der Express Edition fehlt:
There is a checkbox when you create an SSIS catalog which says "Enable automatic execution of Integration Services stored procedure at SQL Server startup"
Einmalig: SQL-Script "SQL SET SQL Server Enable automatic execution of SSIS Startup SP.sql" ausführen, um diese Checkbox via SQL auf ON zu setzen

Hilfreich: SQL-Script "SQL SET XP_CommandShell_Ole Automation Procedures_Start.sql" um XP Commandshell zu erlauben (nicht notwendig)
Hilfreich: Ein SQL-Script, das einem hilft, die SPs auszuführen

SSIS-Ausführung

Die in der SSISDB-Datenbank liegenden Pakete werden via Stored Procedures ausgeführt.
Da der SQL Server Express keinen eigenen Scheduler hat, empfiehlt es sich, für automatische Tasks den in Windows eingebauten Taskmanager zu verwenden.
Um automatisch Dinge zu schedulen, bietet sich an, Powershell-scripts im Taskmanager ausführen zu lassen ...
Eine Verknüpfung (auf dem Desktop) zum Taskmanager finde ich hilfreich:

Name: Taskmanager

Ziel: %SYSTEMROOT%\System32\taskschd.msc
Ausführen in: %windir%\System32
Erweitert: Als Administrator ausführen

Hilfreich: Ein SQL-Script, das einem den Status der Ausführung eines Paketes anzeigt
Hilfreich: Ein SQL-Script, das einem hilft, die SPs auszuführen
Hilfreich: Einige Links zum Zusammenspiel mit Scheduler, Powershell und dem SQL Server

 

------------------------------------------------------------------------------------------------

English Version

SSIS and SQL Server Express

Unlike some statements, it is quite possible to manage legally  SSIS packages within an SQL Server Express edition:

You develop a package and deploy it to the SQL Server Express and run the package using a stored procedure.

For SSIS, one generally must distinguish between package development, package deployment, and package execution.

In the directory in my onedrive all necessary scripts are stored in the subdirectory SSIS
In a further subdirectory there are other important links to SSIS and Powershell
As the entire directory SSIS is very small, it is recommended to download the directory as a whole.
For easier handling, all scripts have an additional .txt ending ... 

SSIS Development

SSIS packages are developed with Visual Studio.
Minimum requirements for development are:

  • Visual Studio 2015 or better 2017 (Community Edition is enough)
  • SQL Server Data Tools
  • Note: ssis-designer-is-now-available-for-visual-studio-2017
  • SQL Server (Express or Developer Edition) <with the application data>
  • Note: SQL Server must be version 2012 or larger.
  • SQL Server 2017 Management Studio (can work with all common older versions of SQL Server)
  • The know-how to create SSIS packages
  • - Absolutely complete, 19-part (English language) SSIS course from Wise-Owl in Youtube - In my opinion, a real 5-star ***** course

SSIS Deployment

Beginning with SQL Server 2012, you can deploy existing SSIS packages in SQL Server to the special catalog database named SSISDB
and from there start the packages with own stored procedures
Minimum requirements for this are:

  • SQL Server Management Studio 2017 (automatically installs the necessary SSIS IntegrationServices.dll
  • and can work with all common older versions of SQL Server)
  • SQL Server <Express> (access with SA rights)
  • Note: SQL Server must be of version 2012 or larger.
  • Powershell greater than or equal to version 4 (starting as admin)

Doing:

a) One-time: SQL script "SQL SQL Server set to CLR enabled.sql"
because for the following script the server must be CLR enabled = Yes

(b) for each new package:
A Powershell script that creates the Catalog database in the SQL Server Express and deploys the packages into the Catalog database
"PS SSIS Catalog and Project Deployment with PowerShell ___ As_Admin_Execute.ps1" as Admin
Explanations Inline

c) On larger Editions of SQL Server you have "There is a checkbox when you create an SSIS catalog that says "SQL Server startup" which is missing in Express Edition.
Therefore - One-time (SSISDB already must exist): SQL-Script "SQL SET SQL Server Enable automatic execution of SSIS Startup SP.sql" to set this checkbox to ON via SQL

Helpful: SQL script "SQL SET XP_CommandShell_Ole Automation Procedures_Start.sql" to allow XP Commandshell (not necessary)
Helpful: An SQL script that helps you run the SPs

SSIS execution

The packages located in the SSISDB database are executed via stored procedures.
Because the SQL Server Express does not have its own scheduler, it is recommended to use the task manager built into Windows for automatic tasks.
In order to automatically schedule things, it is recommended to run Powershell scripts in the task manager ...
I find a link (on the desktop) to the task manager helpful:

Name: Taskmanager

Target:% SYSTEMROOT% \ System32 \ taskschd.msc
Run to:% windir% \ System32
Advanced: Run as administrator

Helpful: An SQL script that shows the status of the execution of a package
Helpful: An SQL script that helps you run the SPs
Helpful: Some additional links to explain scheduler, PowerShell and SQLServer

 

 

SQL Server 2017 - Kumulatives Update CU1 verfügbar.

Hi,

David Peter Hansen hat eine beachtliche Liste "SQL SERVER PERFORMANCE TROUBLESHOOTING FREE SCRIPTS AND TOOLS LIST" zusammengetragen.

Der vorletzte Eintrag ist der Eintrag zur Seite Microsoft SQL Server Version List 

Diese zeigt (wenn man weiter runter blättert)  an, dass es für den SQL Server 2017 seit dem 23.10.2017 ein neues kumulatives Update gibt, das einige wichtige Fehler behebt. 

Microsoft hat die Strategie dahingehend geändert, dass es ab der SQL Server Version 2017 keine traditionellen Servicepacks mehr gibt, sondern nur noch "kumulative Updates", wie hier nachzulesen ist.

Daher würde ich dringend empfehlen, diese jeweils nach Erscheinen zu installieren. 

Meines Wissens sind diese Updates nicht in den automatisch installierten Windows-Updates enthalten, müssen also immer "manuell" downgeloaded und  installiert werden.

mfg

Klaus

Office Offline Hilfe verfügbar

Hi,

vielen ist die MSAccess - Uservoice - Site bei Microsoft, bei der man seine Wünsche bzgl. Access (es gibt für viele andere Produkte auch eine solche User-Voice site) "eintüten" kann, nicht bekannt. 

ABER: Oh Wunder, manchmal hört MS auch auf die Wünsche der User. Dies habe ich in https://access.uservoice.com/ gefundenden:

Offline Help

https://access.uservoice.com/forums/319956-access-desktop-application/suggestions/11174049-access-help

PLEASE give us back Access Help like it used to be in Access 2003!

9
votes
Vote
10 comments · Other
DONE! · Access TeamAccess Team (Admin, Microsoft) responded
The Help system is actually a shared piece of engineering owned by a different team and surfaced within all of the Office applications. As such, this isn’t really an action item that the Access development team can take in isolation of the existing Office system. 
We have passed on this feedback to the right team for their consideration. They did ask us to forward on the following information to you:
You can download an Access 2016 VBA CHM file on GitHub for offline use. You can find it here:
https://github.com/OfficeDev/VBA-content/blob/master/README.md 

You can find 2013 version of VBA documentation here:
https://www.microsoft.com/en-us/download/details.aspx?id=40326 

WOW - ich bin platt. Weiter so Microsoft.

Der einzige Wermutstropfen: Ich habe es (noch) nicht geschafft, diese Hilfe mit F1 zu verknüpfen ...

ADO - Abkündigung der Abkündigung <g> - die unendliche Geschichte

Hi,

Announcing the new release of OLE DB Driver for SQL Server 

dieser Microsoft Blogeintrag (hier ein großes Danke an Bernd Jungbluth für die Info) besagt, dass MS ADO nun doch weiterentwickelt wird.

Ich habe von Anderen bisher noch keine Rückmeldung erhalten, aber es sieht so aus, dass man "mit gutem Gewissen" mit ADO (Weiter-)Entwickeln kann, und man bei MS Access < - > SQL Server auf ADO setzen könne.  Ich habe aufgrund der "Depreciation von ADO" daher bisher ausschliesslich DAO verwendet ... 

Da sogar der Blog-Eintrag der "Depreciation selbst" (von 2011) hier mit einer Headline versehen wurde, scheint MS das wohl ernst zu meinen.

Was meint Ihr dazu ?

Nachtrag:

Eine Bestätigung / Reaktion zu diesem Artikel kam von der internationalen Access-User-Group (Juan e Soto), der den positiven Einfluss auf Access bestätigte

Access Expert Artikel

mfg

Klaus Oberdalhoff