この記事では、VBA スクリプトを使用して、Microsoft Dynamics GP で使用される Microsoft SQL データベースに接続する方法について説明します。
適用対象: Microsoft Dynamics GP
元の KB 番号: 892700
はじめに
この記事では、Microsoft Visual Basic for Applications (VBA) スクリプトを使用して、Microsoft Dynamics GP 9.0 および Microsoft Business Solutions - Great Plains 8.0 で使用される Microsoft SQL データベースに接続する方法について説明します。
詳細
次の VBA スクリプトの例は、Microsoft Dynamics GP アカウントのメンテナンス期間の Description_AfterGotFocus
イベントに使用できます。 このスクリプトは、Microsoft Dynamics GP サンプル TWO データベースに接続し、パスワードを使用してシステム管理者としてログオンします。 接続が確立されると、スクリプトによって、GL00105 アカウント インデックス マスター テーブルに格納されているデータのレコードセットが作成されます。 その後、このスクリプトは、アカウント のメンテナンス期間の User-Defined1 フィールドにアカウント インデックス値を返します。 スクリプトは、新しいアカウントを入力するか、 Account Lookup ボタンを使用すると、この値を返します。
サンプル スクリプトを使用するには、次の手順に従います。
Microsoft Dynamics GP で Account Maintenance ウィンドウを開きます。
[ Tools メニューの Customize] をクリックし、[現在のウィンドウを Visual Basic に追加 ] をクリック。
[ Tools メニューの Customizeをクリックし、 フィールドを Visual Basic に追加をクリックし、 Account Number フィールド、 Description フィールド、および User-Defined 1 フィールドをクリックします。
[ Tools メニューの Customizeをクリックし、 Visual Basic Editor をクリックします。
Visual Basic エディターで、[ グレート プレーンオブジェクトを展開し、 AccountMaintenance をダブルクリックして、 Account Maintenance コード ウィンドウを開きます。
次のコードをコピーし、 Account Maintenance コード ウィンドウに貼り付けます。
Private Sub Description_AfterGotFocus() Dim objRec Dim objConn Dim cmdString Set objRec = CreateObject("ADODB.Recordset") Set objConn = CreateObject("ADODB.Connection") objConn.ConnectionString = "Provider=MSDASQL;DSN=GreatPlains;Initial Catalog=TWO;User Id=sa;Password=password" objConn.Open cmdString = "Select ACTINDX from GL00105 where (ACTNUMST='" + Account + "')" Set objRec = objConn.Execute(cmdString) If objRec.EOF = True Then AccountMaintenance.UserDefined1 = "" Else AccountMaintenance.UserDefined1 = objRec!ACTINDX End If objConn.Close End Sub
また、Microsoft Business Solutions - Great Plains 8.0 のRetrieveGlobals_80.dll ファイルを使用して、このスクリプトの例で取得したのと同じ情報を取得することもできます。 適切な.dll ファイルを取得するには、 MBS CustomerSource の提供終了を参照してください。
Readme ファイルは、.dll ファイルの各バージョンに含まれています。 Readme ファイルには、変数を宣言する方法が記述されています。 たとえば、コードで変数を宣言し、接続文字列で変数を使用できます。