いきなり実例で説明します。
このようなテーブルがあり「型番」列にいくつかのハイフン(-)が含まれています。
各レコードのハイフンのうち3番目のものは、文字列のそれぞれ何文字目に位置しているでしょうか。
Excelの場合はFIND関数とSUBSTITUTE関数による解法がありますが、AccessではInstr関数とReplace関数を用います。
デザインビューです。
次のような列を設けます。
3番目ハイフン位置: InStr(Replace([型番],"-","/",1,2),"-")
補足しますと、Replace関数により型番列の文字列のうち、左から2番目までのハイフンをスラッシュ(/)に置き換えています(「左から2番目まで」というのはReplace関数の第5引数により指定しています)。その結果をInStr関数に渡して最初のハイフンの位置を求めていますので、結果的に3番目のハイフンの位置がわかるというわけです。
4番目のハイフンの位置を知りたい場合は、式中の「2」を「3」に替えればOKです。
データシートビューです。
3番目のハイフンが存在しない場合、戻り値は0となります。