一回も披露したことのない豆知識

テーブルのフィールドにA1-1、B2-1、C5-10という様に
「アルファベット」+「数字」-「数字」と入力するフィールドがあります
コレを今帳票フォームで見れるようにはしました(ウィザードに従っただけです)
今は入力した順番に一列に並んでます
(1)アルファベットは最大3種類
(2)アルファベットの後の数字は限りなく増えていく
(3)-(ハイフン)の後の数字も限りなく増えていく
という条件なのですが
「アルファベット」+「数字」別に表示させてそれぞれの最後の数字が現状いくつまで使われているかを示すにはいったいどう作ればいいのか・・・・
皆目検討も付きません(^^;

Excelでいうところのオートフィルタのオプションで「○○から始まる」的なものです

何かヒントでもいいのでよい知恵があれば拝借いたしたく
よろしくお願いします。

A 回答 (2件)

やろうとされていることがハッキリわからないのですが、


質問文にあるようにA1-1、B2-1、C5-10のようなデータが入っていたとして、
(1)たとえば「A1」を指定したとして、A1-1以下、A1で始まるデータを抽出したいのか、
(2)抽出条件など指定せずに、A1のデータとB2のデータとC5のデータとそれぞれをグループで整列して登録されている全件を列挙したいのか、
(3)たとえば「A1」を指定したとして、A1が何番まで使われているか、つまりA1の中で最大の番号だけ分かればよいのか、
どれにあたるのでしょうか。

(1)のようにデータを抽出したいのであれば、
たとえばクエリの抽出条件に Like [抽出条件] & "*" というように条件を設定するような方法でできるはずです。

(2)のような場合では、
レポートの並べ替え/グループ化などを使用すればできるはずです。

(3)のような場合では、
たとえば、クエリの集計(MAX関数)を使ってフィールドの最大値を求めることもできるはずです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
言われてみて少し考えてみました
やりたい事はどれかと言えば(2)になるかと思います
フォームヘッダーでA~Cをまず選択し、選択したもの
例えばA1、A2、A3等を一覧に表示させる
そして最終番号をフッターに表示させるA5-10だったら(10が表示)
というイメージで作ろうと思います

とりあえずヒントを頂いたので作ってみようと思います
ありがとうございます

お礼日時:2012/03/28 09:59

A12-345 などとあって、


前の数字 = mid("A12-345",2,instr("A12-345","-")-2)
後の数字 = mid("A12-345",instr("A12-345","-")+1)
とすれば切り分けることが出来ますが、
この後があいまいです。
先の質問者さんも述べられていますが、
前の数字の最大値は、アルファベットごとの最大値ですか
それともアルファベットには関係なく単純な最大値なのでしょうか。
後の数字も同様です。
アルファベットごと、かつ、前の数字毎の最大値か、それとも。

以下蛇足の感もありますが、
>今は入力した順番に一列に並んでます
たとえば、
A1-1
A9-1
A11-1
とあってこれをソートすると文字コード順になるので
A1-1
A11-1
A9-1
となります。
また、一つのフィールド内に色々な意味を持たせると
後々加工するのに大変です。フィールドを三つに分解した方がよさそうです。
http://hatenachips.blog34.fc2.com/blog-entry-201 …
考えてみてください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます

最初にテーブルを作る段階でフィールドの分解も考えたのですが(実際A~Cの数は今50個程)
後ろのナンバーがどう整理すればいいのかわからなくなりそうなのでやめました
リンク先は参考にさせて頂きました
ありがとうございました

お礼日時:2012/03/28 10:02

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