• 締切済み

Access97でデータのカウント

Access97のお話です。 アルファベット26文字がランダムに並んでいるテーブルがあるとします。 ここで「A」は上から数えて何番目にあるか?、 というクエリーを作成したいのですが・・・ テーブル C B D A クエリー 「A」は「4」番目

noname#5002
noname#5002

みんなの回答

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.2

#1でshigatuさんが仰るように、通し番号のフィールドを作成する方がより現実的な解決策になると思いますが、とりあえず、VBAを使えば仰る処理が実現できると思います。 VBAが分からないとのことですが、とにかくモジュールを新規作成しまして、何も考えずに以下のコードを貼り付けてください(笑)。 '***ここから*** Public Function 何番目(Expr As String, Domain As String, Criteria As Variant) As Long  Dim RST As DAO.Recordset  On Error Resume Next  Set RST = CurrentDb.OpenRecordset(Domain, dbOpenSnapshot)  If IsNull(Target) Then   RST.FindFirst Expr & "IS NULL"  Else   RST.FindFirst Expr & "=" & Criteria  End If    If RST.NoMatch Then   何番目 = 0  Else   何番目 = RST.AbsolutePosition + 1  End If End Function '***ここまで*** んで、クエリ中に、関数を記述するのと同じ要領で 何番目("検索するフィールド","テーブル/クエリ名",検索する値) って感じで記述してやれば出来ると思います。 …あ、この質問は、ひょっとして、#14674の質問(参考URL(^^))の関連項目ではないでしょうか? この方法で、レコードの位置を取得しておいて、マクロのレコード移動で飛ばそうと(笑) それでしたら、こんなややこしいことをせずとも、何とかなります。 明日は、ちょっと朝早いので、今すぐには解答つけれませんが、明日あたり#14674の方に答えたいと思います。(既に他の方が答えておられなければ、ですが) 質問等ございましたら、補足をお願いします!

参考URL:
http://www.okweb.ne.jp/kotaeru_reply.php3?q=14674
noname#5002
質問者

お礼

詳しい説明ありがとうございます。 おっしゃるとおり#14674関連です(笑) #14674が無理ならこの方法で場所だけをメッセージとして表示し手動で移動してもらおうと思ったのですが。 もし#14674ができるのであれば即全て解決です。 お手数ですがよろしくお願いします。 ちなみにモジュールってどのように使用するのでしょうか?

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.1

もう一つフィールドを作って、通し番号を入れておくってのはだめですか? そもそもデータベースってテーブル内での並び順はあまり気にしないもんだと思うんですけど・・・たいがいクエリーの結果ってソートしたりするし。 Excelの方がそういうの得意ですよね。

関連するQ&A

  • ACCESS2003単純計算方法

    ACCESSの質問お願いいたします。 ACCESS初心者です。 テーブルにA、B、C、Dの項目を作成し テーブルDにA-BやB-Cなどの計算を実行して Dのテーブルに代入する方法を教えてください。 クエリを使う課と思いますが、記述式は テーブル名でしょうか? よろしくお願いします。

  • Accessのクエリが編集できない

    Access2016で添付画像のようなクエリを作成しました。 しかし、そのクエリが編集できるようにならず困っています。 ・クエリDを削除して、テーブルA・B・Cだけにすると編集できるようになります。 ・クエリDを直接開くとクエリD自身は編集できます。 どうぞご指導ください。

  • Accessのクエリ実行について

    すみません。ご存知でしたら、教えてください。 まず一点、基本(?)を確認させてください。 下記のように数個のテーブルとそれらを使用した数個のクエリがあったとします。 下記の場合に、もしどれかのテーブルを更新したとします。 その場合、アクセスを立ち上げて、クエリ3を実行するだけで、結果には反映されているのでしょうか?それとも、アクセスを立ち上げて、 クエリ1を実行し閉じ、クエリ2を実行し閉じ、最後にクエリ3を実行しないと、反映されていないのでしょうか? --------------------------------------------------------- テーブルリンクA 、テーブルリンクB、テーブルリンクC、テーブルリンクD ↓↓ テーブルAとテーブルBでクエリ1(マッチング)を作成 テーブルCとテーブルDでクエリ2(マッチング)を作成 ↓↓ クエリ1とクエリ2でクエリ3(マッチング)を作成 ------------------------------------------------- 続いて、もし上記でいちいち途中のクエリを実行しないと、 最後のクエリに反映されない場合、すべてをACCESSを立ち上げたと同時に自動実行し、自動で最後のクエリ(この場合、クエリ3)をエクスポートしたいと考えています。可能でしょうか? 素人な質問ですみません。 何卒よろしくお願いいたします。

  • Access クエリについて

    Accessのテーブル1に、フィールド「コード」「回数」があり、レコードとして A,32 B,20 C,13 ・・・というように、ランダムなコードと回数がセットされているとします。コードは主キーです。 このテーブル1を元にしたクエリで A,1 A,2 A,3 ・・・ A,32 B,1 B,2 ・・・ B,20 C,1 C,2 ・・・ C,13 というように、コードごとに「回数」と同じ数のレコードがクエリ上に生成されるようにしたいのですが、こういうことは出来るのでしょうか?出来ればSQLで回答いただけないでしょうか。

  • アクセス テーブル、クエリーについて

     アクセスでソフト作成中です。そこで教えてほしいことがあります。 たとえば下記のように2つのテーブルがあります。 テーブル1   テーブル2   フィールドA    フィールドB  a1       10  b1       20  c1       30          テーブル1の数値は固定します。そこで下記のようなクエリーを作成したいのです。 クエリー1 フィールドA フィールドB a1 10 b1 20 c1 30 テーブル2に数字を入れていくと テーブル1   テーブル2   フィールドA    フィールドB  a1       10  b1       20  c1       30           40 クエリー1 フィールドA フィールドB a1 40 b1 20 c1 30 このように数字が上書きされていくようなクエリーは作成できないでしょうか。(あくまでテーブル1の数値は固定、フィールドAとフィールドBにリレーションシップは設定されていない。) よろしくおねがいします。

  • アクセスによるデータの結合

    マイクロソフトアクセス2003で下記のような2つのテーブルを結合してひとつのデータとすることができるでしょうか(データ量が膨大でエクセルでの作業には無理があります。)。詳しい方がおられたらご教示お願いします。(このことが説明されているサイトでも結構です。)よろしくお願いします。 (データ1)01:A       02:B       03:C (データ2)01:A       02:B       04:D       05:E →上記データの結合によりデータ3を作成 (データ3)01:A       02:B       03:C       04:D       05:E ※例は簡略化していますが、コードの後の情報は、アルファベット以外にも複数ありますので念のため。

  • ACCESSのフィールドの更新

    マイクロソフトACCESSフォームAでテーブルBのCフィールドの更新は出来るのですが、フォームDから連結でテーブルBのCフィールドの更新が出来ません。(同じようにして2個作成したシステムのうち1個は出来たのですが、もう1個がどうしても出来ません:テーブル,クエリ,フサブフォーム,フォームの違いを捜しているのですが見当たりません。)

  • accessでデータ抽出?の方法

    アクセスの初心者です。 テーブル1 生徒  教科    点数    A    国語   90   A    算数   88 B    国語   89 B    算数   97 C    算数   79 テーブル2 生徒  教科 A   算数 B   国語 テーブル1のデータをもとに、テーブル2における点数を抽出するにはどのようにクエリを作成すればよいのでしょうか。どうぞよろしくお願いします。

  • Accessで連続データってできますか?

    Aテーブル(データベース)からBテーブルに必要なレコードを抽出して、Bテーブルで編集しています。 Bテーブルで編集したレコードをCテーブルに移動する際に、連続データのフィールドが必要になったので、テーブルのオートナンバー型フィールドを一つ追加しましたが、うまくいきません。 追加クエリでB→Cに移動させるんですが、キー違反がでてクエリが動きません。 できれば、クエリで連続データを作成して、Cテーブルに追加させたいんですが、クエリで連続データって作れるものなのでしょうか?

  • ACCESS 比較後の抽出

    テーブル1 a_b テーブル2 c_d クエリ1 a&b:[a]+[b] c&d:[c]+[d] クエリでiif([a&b]=[c&d],"○","×") としたとき抽出条件に○としてもパラメータクエリが出てしまいます。 サブクエリを使うのでしょうが今一使い方が分かりません。 ご教授お願いします。

専門家に質問してみよう