複数値を持つフィールドから値を削除する
複数値を持つフィールドからの値の削除は、DELETE文(削除クエリ)で行えます。このとき、削除対象のレコード(1件)と削除する値の2つを条件(WHERE句)に指定するのがポイントです。VBAで行うときは、DAO、ADOのどちらのコネクションでも可能です。
複数値を持つフィールドから値を削除する例
次のプログラムは、VBAを使い複数値を持つフィールドから特定の値を削除する処理のサンプルです。DAOを使い追加クエリ(DELETE文)を実行しています。複数値を持つフィールドは「仕入れ先」です。

「@どのレコードの複数値フィールドにある」「Aどの値を削除するか」は、WHERE句を指定しています。また、複数値の一つだけを削除するため、DELETE文の後に複数値フィールドを指定しているのもポイントです。なお、複数値を持つフィールドはValueプロパティを使い「フィールド名.Value」と記述します。

Sub Sample(pFindKey As String, pAddData As Long)

    Dim objMDB  As DAO.Database
    Dim strSQL  As String

    Set objMDB = Application.CurrentDb

   strSQL = "delete  取引先.Value" _
         & "   from  商品マスタ" _
         & "  where  商品コード= " & pFindKey _
         & "    and  仕入れ先.Value = " & pDelData

    objMDB.Execute strSQL

    Set objMDB = Nothing

End Sub

参考までに、削除対象の値があるレコードの条件(pFindKey)、削除する値(pAddData)は、いずれも引数で指定しています。また、コネクションはDAO(DAO.Database)を使用しています。
Copyright(C) 1999-2006 結城圭介。 All rights reserved