Puedes hacerlo con split y dmax
Tienes que cambiar el valor de ese campo tras meter la Categoría, así que utilizarás el evento despues de actualizar categoría
Al poner un guión ya tenemos delimitador así que puedes tener una consulta (no es imprescindible, pero te vendrá bien tenerla) separando el tipo del número, con split(campo,delimitador) lo tienes, ej.:
split([IdArticulo],"-")(1) as NumArticulo
utilizando esa consulta puedes obtener el maximo para tu categoría y sumar 1,
Me.IdArticulo.defaultvalue=nz(dmax("NumArticulo","qryArticulos","TipoArticulo=" & me.TipoArticulo),0)+1
Leer las respuestas