プロが教えるわが家の防犯対策術!

テーブルのフィールドに特定の文字があります。
たとえば、@があったとすると、1フィールド内に何個@があるか調べるにはどうしたらよいのでしょうか。

宜しくお願いします。

A 回答 (3件)

個数を調べつ関数を作り、クエリから呼ぶようにすれば



よいと思います。

---
標準モジュール

Public Function cnt(wk As Variant) As Long

cnt = UBound(Split(wk, "@"))

End Function

SQL

SELECT cnt([フィールド]) AS 個数
FROM テーブル;
    • good
    • 2

式1: Len([field0])-Len(replace([field0],"@",""))


でいかがでしょうか。
なお、Accessのバージョンが不明ですが、2000の場合、クエリでreplace関数を使う場合、VBA6をアップデートする必要があります。
http://www.microsoft.com/downloads/ja-jp/details …
    • good
    • 4
この回答へのお礼

ありがとうございます。
なるほど、replaceで置き換えて文字数カウントですね。
大変参考になりました。ここみてみます。

バージョンは2007です。
書き足りず申し訳ありませんでした。

お礼日時:2012/02/02 08:56

同じく、VBAで自作の関数を作成します。

標準モジュールに

Function chrCount(FV As Variant, findChr As String) As Integer
  Dim i As Integer

  For i = 1 To Len(Nz(FV, ""))
    chrCount = chrCount - (Mid(FV, i, Len(findChr)) = findChr)
  Next

End Function

使い方
chrCount("asdfs","s") → 2
chrCount("asdfs","df") → 1
が返ります。
クエリならフィールドのところに、個数:chrCount([フィールド名],"探したい文字")
としてください。
    • good
    • 1
この回答へのお礼

自作関数はよくわからないので避けていましたが、こんな風にするんですね。
試してみます。

ありがとうございました。

お礼日時:2012/02/02 08:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A