CData Excel Add-In for USPS 2019J - Online Help

データのクエリ

CData Excel Add-In for USPS 2019J - Build 19.0.7354

VBA からの接続 後、Select メソッドを呼び出して、SQL SELECT ステートメントを実行します。

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

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

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

結果にアクセス

結果からフィールドを返すには、モジュールのGetColumnName およびGetValue メソッドを呼び出します。MoveNext を呼び出して結果を反復処理します。次の例には、シートに行を書き込むための追加のロジックも含まれています。

  • スプレッドシートの最初の行のカラムをリストします。
    Dim ColumnCount As Integer
    ColumnCount = module.GetColumnCount
    For Count = 0 To ColumnCount - 1
      Application.ActiveSheet.Cells(1, Count + 1).Value = module.GetColumnName(Count)
    Next 
  • スプレッドシートの2行目の各行の出力を開始します。Null 値と日付型の追加のロジックチェックを行います。
    Dim RowIndex As Integer
    RowIndex = 2
    While (Not module.EOF)
      For columnIndex = 0 To ColumnCount - 1
        If Conversion.CInt(module.GetColumnType(columnIndex)) = Conversion.CInt(vbDate) And Not IsNull(module.GetValue(columnIndex)) Then
          Application.ActiveSheet.Cells(RowIndex, columnIndex + 1).Value = Conversion.CDate(module.GetValue(columnIndex))
        Else
          Application.ActiveSheet.Cells(RowIndex, columnIndex + 1).Value = module.GetValue(columnIndex)
        End If
      Next
      module.MoveNext
      RowIndex = RowIndex + 1
    Wend

以下は、簡単なSELECT の例です。USPS を検索するマクロ例については、パラメータ化されたクエリの実行 を参照してください。
Sub DoSelect()
  On Error GoTo Error
  Dim module As New ExcelComModule
  module.SetProviderName ("USPS")
  Cursor = Application.Cursor
  Application.Cursor = xlWait
  Dim nameArray,valueArray

  Query = "SELECT FirstName, Phone FROM Senders LIMIT 10"
  module.SetConnectionString ("PostageProvider=ENDICIA;RequestId=11037;Password='zxczxqqtyiuowkdlkn';AccountNumber='11F0E7A';
PrintLabelLocation='C:\users\username\documents\mylabels';CacheLocation='C:\users\username\documents\uspscache';")
  If module.Select(Query, nameArray, valueArray) Then
    Dim ColumnCount As Integer
    ColumnCount = module.GetColumnCount
    For Count = 0 To ColumnCount - 1
      Application.ActiveSheet.Cells(1, Count + 1).Value = module.GetColumnName(Count)
    Next
    Dim RowIndex As Integer
    RowIndex = 10
    While (Not module.EOF)
      For columnIndex = 0 To ColumnCount - 1
        If Conversion.CInt(module.GetColumnType(columnIndex)) = Conversion.CInt(vbDate) And Not IsNull(module.GetValue(columnIndex)) Then
          Application.ActiveSheet.Cells(RowIndex, columnIndex + 1).Value = Conversion.CDate(module.GetValue(columnIndex))
        Else
          Application.ActiveSheet.Cells(RowIndex, columnIndex + 1).Value = module.GetValue(columnIndex)
        End If
      Next
      module.MoveNext
      RowIndex = RowIndex + 1
    Wend
    MsgBox "The SELECT query was successful."
  Else
    MsgBox "The SELECT query failed."
  End If
  Application.Cursor = Cursor
  module.Close
  Exit Sub
Error:
  MsgBox "ERROR: " & Err.Description
  Application.Cursor = Cursor
  module.Close
End Sub

 
 
Copyright (c) 2020 CData Software, Inc. - All rights reserved.
Build 19.0.7354.0