OpenOffice で作る顧客名入りパンフレット(3)

さて、今度はパンフレットへのセールストークの入力ですが、これはプログラムでやってみることにします。
メニューの「ツール」-「マクロ」-「マクロの管理」-「OpenOffice Basic」を選択すると下記のような画面になります。

「編集」をクリックしてBasicが入力できる画面を開く。

Sub Mainに、下記を入力します。


Sub Main

   Dim DatabaseContext As Object     
   Dim DataSource As Object
   Dim Connection As Object
   Dim InteractionHandler As Object
   Dim Statement As Object
   Dim ResultSet As Object
   Dim Statement2 As Object

   DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
   DataSource = DatabaseContext.getByName("顧客パンフレット")

   If Not DataSource.IsPasswordRequired Then
      Connection = DataSource.GetConnection("","")
   Else
      InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
      Connection = DataSource.ConnectWithCompletion(InteractionHandler)
   End If

   Statement = Connection.createStatement()
   ResultSet = Statement.executeQuery("SELECT ""顧客名"", ""顧客フラグ1"", ""顧客フラグ2"" FROM ""パンフレット元データ""")
   If Not IsNull(ResultSet) Then
      While ResultSet.next
          Dim msg1 As String
          Dim msg2 As String
          If ResultSet.getString(2) = "独身男性" Then
             msg1 = "都会にも自然にもスマートに合うフォルム。大勢の仲間とレジャーに出かけるときも、最高の景色を独占しながら仲間とワイワイ騒ぐのも、自由にアレンジできるフレキシブルなシート。そんなミニバン、できました。"
          ElseIf ResultSet.getString(2) = "多家族" Then
             msg1 = "家族と出かけよう!子供と最高の時を楽しもう!どんどん大きくなっていく子供たちに、最高の思い出を。載せたいものは何でも載せて、このミニバンと共に、Pricelessな思い出を。"
          ElseIf ResultSet.getString(2) = "年配夫婦" Then
             msg1 = "子供たちが巣立った今だから。長年連れ添った二人が最高の時を共有するために。最高のセダンを、今、あなたのもとに。"
          End If
          If ResultSet.getString(3) = "来店待ち" Then
             msg2 = "当店には、いつでもお試しいただけるよう試乗車をご用意しております。各種ドリンクの無料サービスもございます。お気軽にご来店ください。"
          ElseIf ResultSet.getString(3) = "セールス訪問" Then
             msg2 = "長年当店をご愛顧いただき、誠にありがとうございます。日ごろのお礼も兼ねて、わずかばかりのプレゼントをお届けに伺いたいと思っております。"
          End If
          Statement2 = Connection.createStatement()
          Statement2.executeQuery("UPDATE ""パンフレット元データ"" SET ""差し替え文1"" = '" & msg1 & "', ""差し替え文2"" = '" & msg2 & "' WHERE ""顧客名"" = '" & ResultSet.getString(1) & "' ")
      Wend
   End If

   Connection.close()

   MsgBox "OK!"

End Sub

ここで注意したいのは、テーブル名やフィールド名はすべてダブルクォーテーションで囲まなければならないこと。これはOpenOffice Basicの特徴と言えます。

プログラムの作成が終わったら、ツールバーの黄緑色の右向き三角ボタンをクリックすると、Sub Mainが実行されます。これで、全顧客に対してのセールストークが入力されました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です