2017-02-13 11 views
0

少しのコードが残っています。 ボタンをクリックすると、選択したすべてのレコードが、そのレコードにリストされている電子メール受信者の電子メール本文に送信されるというフォームがあります。電子メールの文字列内の重複を削除する

次のように追加のセクション「へ」の見通しへのメールだ部分がある:あなたがコードを形成する見ることができるように

With rst 
     Do While Not .EOF 
    strTO = strTO & ![EmailAddress] & ";" 
     .MoveNext 
     Loop 
    End With 

    olItem.Display 
    olItem.To = strTO 

、それは文字列strTOを取り、記録に[EmailAddress]から値を追加しますループ内の次のレコードへの移動よりも;が発生します。 私の質問は、重複を取り除いた文字列を基本的にクリーンアップするコードのolItem.To = strTO部分を実行する直前に呼び出すことができるグローバル関数を作成する方法はありますか?

編集:私の質問を編集するのではなく、自分の答えを正しく投稿することができます。

+1

最高の方法は、重複を含まないレコードセットを作成することです。 SELECT DISTINCTをチェックします。それが合わない場合は、VBA InStrを見てください。そうすれば、アドレスを追加する前に確認することができます。 – Fionnuala

+0

コメントをいただきありがとうございます。残念ながら、私はそれらの複数の行を表示する必要があるので、別名は動作しませんが、Toバーに余分な電子メールアドレスを追加する必要はありません。 私はRemoveDupWords2と呼ばれるオンラインで見つかったコードを探しています 私は、タイプコールRemoveDupWords2(strTO)を呼び出す関数を呼び出す場合を除いて、私は何をしたいと思われる 私はByRef Arugment Mismatch Errorを取得します。だから今私はそれを見ている。 – vladyerus

+0

私が言及したようにInStrを使用するだけで、現在のコードをあなたの周りに巻き込むことができ、すばやく簡単です。 – Fionnuala

答えて

0

グローバルモジュールで次の関数を使用しました。

Public Function getUniqueString(txtToSearch As String) As String 
    Dim initStr() As String, endStr As String 
    Dim i As Integer, j As Integer, repInt As Integer 

    initStr = Split(txtToSearch, ";") 
    repInt = 0 
    For i = 0 To UBound(initStr) 
     For j = 0 To UBound(initStr) 
      If initStr(i) = initStr(j) Then repInt = (repInt + 1) Mod 2 
     Next 
     If repInt < 2 And InStr(endStr, initStr(i)) = 0 Then endStr = endStr & ";" & initStr(i) 
    repInt = 0 
    Next 
    getUniqueString = Right(endStr, Len(endStr) - 1) 
End Function 

この機能を使用すると、次のコードでボタンを押すとフォーム上に呼び出されます。

With rst 
     Do While Not .EOF 
      strTO = strTO & ![EmailAddress] & ";" 
      .MoveNext 
     Loop 
    End With 

    Dim strTOn As String 
    strTOn = getUniqueString(strTO) 

    olItem.Display 
    olItem.To = strTOn 

私の理解は、関数が実行されたときにstrTO文字列を受け取り、それを配列に変換することです。区切り文字が区切られると、配列内のすべての文字列を元の文字列と照合するより重複がある場合は、outlookアプリケーションのolItem.To関数が呼び出す新しい文字列strTOnにそれらを取り除きます。

関連する問題