2011-12-06 33 views
2

SQL Serverデータベースから取得したデータを使用して差し込み印刷機能を自動化したいと考えています。私が使用しているコードは次のとおりです。VBAを使用してSQL Serverに接続するにはどうすればよいですか?

Sub open_DSN() 

    Dim strConnection As String 

    ActiveDocument.MailMerge.CreateDataSource Name:="DB-NAME", _ 
     Connection:="Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=DB-NAME;Data Source=DATA-SOURCE", _ 
     SQLStatement:="select * from DataTable" 

    ActiveDocument.MailMerge.OpenDataSource Name:="DB-NAME" 

    If ActiveDocument.MailMerge.DataSource.Name <> "" Then _ 
     MsgBox ActiveDocument.MailMerge.DataSource.Name 
    ' – code lifted from MS Help within Word that seems the nearest to what I require 
    'With ActiveDocument.MailMerge 
    ' .MainDocumentType = wdFormLetters 
    ' strConnection = "DSN=MS Access Databases;" _ 
    '  & "DBQ=C:\Northwind.mdb;" _ 
    '  & "FIL=RedISAM;" 
    ' .OpenDataSource Name:="C:\NorthWind.mdb", _ 
    '  Connection:=strConnection, _ 
    '  SQLStatement:="SELECT * FROM Customers" 
    'End With 

    With ActiveDocument.MailMerge 
      .MainDocumentType = wdFormLetters 
      strConnection = "Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=DB-NAME;Data Source=DATA-SOURCE" 
     .OpenDataSource Name:="DB-NAME", _ 
       Connection:=strConnection, _ 
       SQLStatement:="SELECT * FROM DataTable" 
    End With 
End Sub 

残念ながら、このコードではデータを表示できません。私は間違って何をしていますか?

+0

RajendraNarine:どうぞよろしくお願いいたします。また、あなたがStackOverflowを初めて使用しているので、回答の横にあるチェックマークをチェックすることで一番の助けになった回答を受け入れることができることをお知らせしたいと思います。 –

答えて

0

"DB-NAME"と "DATA-SOURCE"を接続文字列の実際の値に置き換えましたか?

0

DB-Nameと呼ばれるデータベースを持つDATA-SourceというSQL Serverインスタンスがありますか?

おそらくありませんか?

もっとMyServerを\ MYINSTANCEとMyDatabaseというよう

0

私は、差し込み印刷を知らないので、私はあなたが接続を確立するために使用したコードにコメントすることはできません。
しかし、コードが大丈夫だと確信が持てば、接続文字列と思われます。

lots ofdifferent possibleconnection stringsがSQL Serverに接続するため、正しい解決方法はSQL Serverのバージョンとセットアップ(Windows認証またはSQL Serverの認証など)によって異なります。

このMSDN articleは、MailMergeがOLE DBとODBCをサポートしているため、これらのいずれかを使用できます。
SQL Serverのセットアップについて詳しくお知りになりましたら、ご使用のケースで正しい接続文字列を見つけることができます。

関連する問題