Excel Add-In for Salesforce

Build 24.0.9062

データの変更

VBA からの接続 を完了したら、マクロからSalesforce を更新できます。次のセクションでは、パラメータ化されたクエリを実行してデータを更新する方法について説明します。完全なマクロについては、パラメータ化されたクエリの実行 を参照してください。

Insert

Insert メソッドを呼び出して、SQL INSERT ステートメントを実行します。
public bool Insert(string queryString, object paramNames, object paramValues)

Insert メソッドはステートメント実行の成功または失敗を示すboolean を返し、 次のパラメータを受け入れます。

queryString実行するクエリ。例:INSERT INTO Account (Name) VALUES ('John')
paramNamesクエリで使用される名前付きパラメータを含む配列。パラメータクエリを使用する場合は、必須。
paramValuesパラメータ名に対応する値を含む配列。パラメータクエリを使用する場合は、必須。

次の例では、パラメータ配列で指定された値を挿入し、INSERT の成功または失敗を示すメッセージボックスを表示します。

Dim nameArray
nameArray = Array("Name", "Industry")
Dim valueArray
valueArray = Array("Jon Doe", "Floppy Disks")
Dim module As New ExcelComModule
module.SetProviderName ("Salesforce")
module.SetConnectionString ("AuthScheme=Basic;User=myUser;Password=myPassword;Security Token=myToken;")
Query = "INSERT INTO Account (Name, Industry) VALUES (@Name, @Industry)"
If module.Insert(Query, nameArray, valueArray) Then
  MsgBox "The insertion was successful."
  'lastInsertedRowIdentity = GetLastInsertedRowIdentity(module)
  'MsgBox lastInsertedRowIdentity
Else
  MsgBox "The insertion failed."
End If
module.Close

挿入に成功し、SCOPE_IDENTITY() がSalesforce プロバイダーでサポートされている場合、以下のVBA 関数例を呼び出して、最後に挿入された行のId を取得することができます。

Function GetLastInsertedRowIdentity(module) As String
  Dim lastInsertedRowIdentity As String
  lastInsertedRowIdentity = ""
  If module.Select("SELECT SCOPE_IDENTITY()", prmNames, prmValues) Then
    lastInsertedRowIdentity = module.GetColumnValue(0)
  End If
  GetLastInsertedRowIdentity = lastInsertedRowIdentity
End Function

Update

Update メソッドを呼び出して、SQL UPDATE ステートメントを実行します。

public bool Update(string queryString, object paramNames, object paramValues)

Update メソッドはステートメント実行の成功または失敗を示すboolean を返し、次のパラメータを受け入れます。

queryString実行するステートメント。
paramNamesクエリで使用される名前付きパラメータを含む配列。パラメータクエリを使用する場合は、必須。
paramValues対応するパラメータ値を持つ配列。パラメータクエリを使用する場合は、必須。

次の例では、パラメータ配列で指定された値を更新し、更新の成功または失敗を示すメッセージボックスを表示します。

Dim nameArray
nameArray = Array("Name", "Industry","Id")
Dim valueArray
valueArray = Array("Jon Doe", "Floppy Disks","1045625d-99ee-e011-a272-00155d01ad6b")
Dim module As New ExcelComModule
module.SetProviderName ("Salesforce")
module.SetConnectionString ("AuthScheme=Basic;User=myUser;Password=myPassword;Security Token=myToken;")
Query = "UPDATE Account SET Name=@Name, Industry=@Industry WHERE Id=@Id
If module.Update(Query, nameArray, valueArray) Then
  MsgBox "The update was successful."
Else
  MsgBox "The update failed."
End If
module.Close

Delete

Delete メソッドを呼び出して、SQL DELETE ステートメントを実行します。
public bool Delete(string queryString, object paramNames, object paramValues)

Delete メソッドはクエリの成功または失敗を示すboolean を返し、次のパラメータを受け入れます。

queryString実行するクエリ。例:SELECT BillingState, Name FROM Account WHERE Industry = 'Floppy Disks'
paramNamesクエリで使用される名前付きパラメータを含む配列。パラメータクエリを使用する場合は、必須。
paramValuesパラメータ名に対応する値を含む配列。パラメータクエリを使用する場合は、必須。

次の例では、キーで指定されたレコードを削除し、削除の成功または失敗を示すメッセージボックスを表示します。

Dim module As New ExcelComModule
module.SetProviderName ("Salesforce")
module.SetConnectionString("AuthScheme=Basic;User=myUser;Password=myPassword;Security Token=myToken;")
Dim nameArray
nameArray = Array("Id")
Dim valueArray
valueArray = Array("1045625d-99ee-e011-a272-00155d01ad6b")
Query = "DELETE FROM Account WHERE Id='1045625d-99ee-e011-a272-00155d01ad6b'"
If module.Delete(Query,nameArray,valueArray) Then
  MsgBox "The delete was successful."
Else
  MsgBox "The delete failed."
End If 
module.Close

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.9062