Access97での行選択についての質問

このQ&Aのポイント
  • Access97のデータシートやテーブルでも、Excelと同様の方法で隣接しない複数の行を選択することはできないようです。VBAを使用すれば可能性はありますが、知識が必要です。
  • 質問者は、Accessで特定の条件でレコードを抽出し、その中から一部のレコードを除外したり、特定の顧客を抽出したいと考えています。現在はクエリーの抽出条件に顧客IDを直接入力していますが、より便利な方法を模索中です。
  • 質問者はAccessのVBAについての知識が不足しており、今のところ解決方法がわからない状況です。ゆっくり勉強していきたいと思っています。
回答を見る
  • ベストアンサー

できそうでできない・・・

 こんにちは!  Access97にて、お聞きします。  例えばExcelで、隣接しない複数の行を選択するのに、Ctrlキー + 行番号をクリックすれば好きな行を好きなだけ選択できますが、 Accessのデータシート(テーブルでもデータシート形式のフォームでも何でもいいです)でも、同じようなことはできないでしょうか? Accessの本でもよくそう書いてあるのですが、やっぱりできないようです。Ver.97だからなのでしょうか???  一応、何がしたいのかといいますと・・・ ある条件でレコードを抽出し、そのうちの(任意の)2~3件だけ対象から外したい、とか、 約1000件ほどの顧客リストから、AさんとBさんとCさんと・・・(と、20人くらい)を抽出したい、とか・・・etc  後者に関しては、現在はクエリーの抽出条件に、顧客IDを直接入力しています(ID1 Or2 Or3 Or・・・と20人分)が、 ここで、上記の方法がとれれば便利だな、と思ったりしています。  VBAでプログラムを組めばできそうですが、何分知識が乏しく、今のところ方法がわかりません。ゆっくり勉強していくつもりなので、「VBAでないとできないのなら今のままでいいか」という程度の気持ちです。  こんな質問ですが、よろしくお願いします!

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

> ボタンをクリックすると、全レコードをYesやNoに > するとか、 全レコードをYesにするというのは、  条件を絞り込まない=クエリで条件を指定しない のと同じ状態だと思います。 ので、チェックボックスにチェックをさせなくても、 一発で全部表示してくれるクエリを用意すればいいので はないかと思います。 どうしても視覚的に見せたいなど、チェックさせたい 場合は、更新クエリを使うという手があります。 > グループ名AのレコードだけYesにするとか・・・ これもVBAを使うか、 更新クエリでいけると思います。

kojirouap
質問者

お礼

 度々ありがとうございます!  そうですね、条件を絞り込まない=クエリで条件を指定しない 、ということになるのですね!この条件で抽出、抽出・・・と考えているうちに、そのことが見えなくなっていたようです。 ボタンに割り当てたかったのは、自分以外のユーザーがわかりやすく使えるようにしたかったからでした。ボタンで操作できたら便利だな、と思うので(^O^)  いろいろありがとうございました、頑張ってやってみます!

その他の回答 (1)

回答No.1

単純に一列追加して、  抽出するかしないかを判断するFLAG列を  用意する というのはいかがでしょうか? データ型はYes/No型にしておいて、クエリーの条件 ではTrue(False)で絞り込めば良いのではないかと 思います。  ※テキスト型で1,0などで区別しても   良いのですが。 マスターなどに手を加えるのが気持ち悪い場合は、 別のテーブルに持ってもよいかと思います。

kojirouap
質問者

補足

ご回答ありがとうございます! なるほどそうですね、その方法がよさそうです。 (マスターファイルに作ってもよいのですね、安心しました) あの、ご迷惑ついでといっては何ですが、もう一つお聞きしてもいいですか・・・? 現在、グループ名をコンボボックスで選択し、対象レコードの一覧がサブフォームで表示されるようなフォームがあります。この一覧へフラグ列を追加し、このYes/Noを一斉に切り替えられるコマンドボタンをつけたいと思っています。 ボタンをクリックすると、全レコードをYesやNoにするとか、グループ名AのレコードだけYesにするとか・・・ そういうことって、可能でしょうか? すみません、よろしくお願いします!

関連するQ&A

  • VBAで検索条件式の書き方教えて下さい。

    access2000で作っています。 売上TBに 顧客ID,売上日付,商品名,単価,数量・・・とデザインされていて既に数十件データが登録されています。 別のフォームからこのデータを参照する部分を どうしてもVBAで書かなければならなくなりました。 条件はフォームに入力された顧客IDと入力された年月と売上日付の年月が一致しているもの(日は無視)の抽出 というものです。 条件式で下記の rs.Find "[顧客ID]=' & "Me![顧客ID] & "' & and " 顧客IDだけが同じという所まではわかるのですが 年月日が登録されている物に対して年月だけ一致したものを条件式に加えるにはどのようにすればよいのでしょうか?よろしくお願いします。

  • VBAのデータ抽出(間引き)について

    VBAのデータ抽出(間引き)について 当方VBA初心者なのですが、 VBA(EXCEL2007)を使用してグラフ作成をしようと思っています。 元データの書式は以下の通りでデータ行は30秒間隔で 一カ月分(8万行)あります。 2010/08/01 01:00:34     1112.83 2010/08/01 01:01:04     1110.43 2010/08/01 01:01:34     1111.87 2010/08/01 01:02:04     1112.23 2010/08/01 01:02:34     1112.43 2010/08/01 01:03:04     1112.03 2010/08/01 01:03:34     1110.83 2010/08/01 01:04:04     1112.43 2010/08/01 01:04:34     1110.63 ・・・ データ量が多すぎるので間引きしようと思っています。 間引き(抽出)条件は以下の様に考えています。 10行毎(5分毎)に値の最大値の行を抽出して別シートへコピー。 VBAマクロで処理するにはどの様な コードで実現可能でしょうか? 教えて頂きたく。よろしくお願いします。

  • シートを串刺しで抽出したいのですがそれはマクロですか?

    こんにちは。 エクセルの串刺し集計ではなく、串刺し抽出のことでわからないので 教えて下さい。 ・同じブック内に顧客20件のデータが管理されています。 ・1シート毎が1顧客の単価帳になっています。 ・A1に顧客の名前(同じくシート名もこれと同じく顧客の  名前をつけています。) ・抽出したいのは顧客20件の各シートのA50:B53です。 同じブックの新規シートに「A1の顧客名」と(どれを抽出したか わからなくなってしまうから必要なのかな?と思います。) 20シート全ての「A50:B53」を抜き出すことは可能でしょうか? 抜き出したいセル番地は20シート一緒です。 それぞれのシートはA2からA49までの抽出しなくてもいいセルは、  不規則にだらだらと製品名や個々の単価が入力されています。 転職した会社でデータ管理がなされていなくてビックリしています。 とは言え私もマクロなどは経験がなく、なにをしたらできるのかが さっぱり分かりません。 でも確か前の会社ではできていたのに・・・? あれはアクセスだったのかなぁ? などという状態です。 VBAマクロの本を読みあさりましたが よくわかりませんでした。 とっかかりを教えていただければありがたいです。 よろしくお願いします。

  • 印刷するページを自動で増減したいのですが・・・

    エクセル2000です。 シート1で入力したデーターをシート2に抽出して印刷する際に、条件によって印刷ページを増減する方法はありませんか?   データーが、1~10件なら1ページ、11~20件なら2ページ・・・、 と言う具合なのですが、条件分岐がうまくいかなくて困っています(VBA)。

  • Excel VBAでオートフィルタで抽出したデータの一部だけ貼り付けるには

    いつもこのコーナーでは皆様にお世話になっております。以下のVBAマクロが組める方ご教示ください。 Sheet2にあるデータに複数条件でソートをかけ、ある数字(1から18まで)を入れたら、オートフィルタでE列のデータの選択部をSheet1のある部分に1行貼り付けるという作業です。以下のInputBoxに数字を入れるところからです。 (ソート後、どの数字を入れるか判断) ↓ InputBoxにある数字"○"(1から18まで)を入れる ↓ オートフィルタE列「"○-"で始まる」or「"-○"で終わる」 ↓ 抽出されたデータのE列(1列だけ)のデータ(上から17個分)を選択 ↓ 選択部をコピー ↓ Sheet1を選択。Sheet1の"K5"セルに行列を入れ替えて貼り付け という流れなのですが・・・ わかる方教えてください。よろしくお願いします。

  • Select文を教えて下さい

    select文についてお教えください。環境はAccess2003,Win XPで動かしています。 TABLE ID(INT),STOCK(INT) 001,100 001,200 001, 002,200 002,300 002,400 003,100 上記のようなテーブル、データがあります。 ■抽出したい行 001,100 001,200 ■抽出条件 STOCKに空がはいっている。 STOCKに空がはいっている行は選択しない。 STOCKに空がはいっているIDで、同一IDでSTOCKにデータがある行を抜き出したいです。 どのようにSQLを組み立てればよいかわかりません。 宜しくお願い致します。

  • Accessでの電話番号重複チェック

    Accessでの電話番号重複チェック 10万件ほどの顧客データが入ったcsvがあります。 「ID」「電話番号(1)」「電話番号(2)」「電話番号(3)」 とデータが並んでおり、この「電話番号(1)(2)(3)」が1つでも他のIDのものと 重複しているものを抽出したいのですが、方法はありますでしょうか。 10万件でExcelが使えなくなってAccessで出来るかなと思い立ったのですが、 あまりにも勝手が違い困り果てています。 とりあえず重複クエリで(1)と(2)(3)の重複は出せたのですが、 (2)が(3)と重複しているものや、(1)同士・(2)同士・(3)同士が重複しているデータの、 重複元・重複先全てのIDを抽出したいのです。 抽出する方法はあるのでしょうか。 宜しくお願いいたします。

  • 【ExcelVBA】日計から個別帳票へ転記したい

    sheet1からsheet2へデータを転記したいです。 参考画像を添付します。 sheet1には、日計の情報があります。 A列に月、B列に日、C列にID、D列に氏名、E列に備考、F列に項目1、G列に項目2です。 1ヶ月分のデータを入力すると、1500~2000行程度のデータ(ID数は200前後)になります。 (サンプル画像は20数件のデータに対して15件ほどのIDです) sheet2には、各ID毎の月間データを作成し、印刷したいです。 sheet2の、C2にID、G2に氏名、L2に年、N2に月を。 更にその下に日付け毎の記録(実施、項目1、項目2)をつけたいです。 「実施」については、該当日に実施記録があれば◎をつけたいです。 sheet1のC列をVBAで抽出し、K列に重複しないIDを表示させるところまではできました。 sheet1のK列に抽出されたID毎にsheet2を繰り返し処理で完成させれば良いと思うのですが、 「対応表」を眺めていると、セルの配置に規則性がある(?)ので、 何か効率的なVBA記述が出来るのではないかとも思います。 また、sheet2の印刷時、A4用紙1枚に1件の印刷ではなく、2~3件分印刷出来ると望ましいです。 複数のIDをまとめて印刷するのは可能でしょうか? こういった場合、どのような処理(マクロ記述)をするのが望ましいでしょうか? お知恵を頂ければ幸いです。

  • Accessレポートの質問です。

    Access2010のレポートで複数レコードのデータを1行に出力しようとしています。 具体的には各レコードに顧客名と金額がはいっており、 それを以下のように印刷したいと考えてます。   顧客1 10,000   顧客2 20,000 顧客3 30,000 顧客4 40,000  顧客5 50,000 合計 5件 150,000 VBAを使って処理すれば、できるのかもしれませんが、VBAでレポートを作成した ことがないので止まっています。(フォーム内でのデータ処理でVBAを使ったこと はありますが) どなたか知恵をお貸しいただければ幸いです。 宜しくお願いいます。

  • エクセルでデータベースを集計したい。

    アクセスにランダムに入力されたデータがあります。 (会社名が縦に並び、詳細が横に並んでいます) それをエクセルに移して、会社ごとに整理し、シートごとにまとめたいのですが、 より簡単に、正確に、早く行う方法はあるでしょうか? 詳細の項目は一部分で全部ではありません。 現在行っている方法は、 1.アクセスを全部、範囲選択して、テキストとしてエクセルにコピー・ペーストしています。 1700件(1700行&30列程度)なので時間がかかります。 また、行の高さがめちゃくちゃになり、汚いです。 2.オートフィルタをかけ、抽出したものを、別のシートにコピー・ペーストしています。 見直しをしてみたところ、数件の行の高さがなくなり、一見わからない状態に なっていました。 作業は、ここまでなのですが、 新たに問題が・・・。 アクセスが日々更新されてしまうのです。 エクセルの方でも更新分だけを追記しなくてはなりません。 更新の追記作業は、2~3日に一度くらい行うので、 こちらも簡単・正確・短時間で行いたいです。 ちなみに、シートへの振り分けは15シートくらいになり、 中にはどこのシートへも抽出されないもの(行)もあります。 アクセス・エクセルは、共に97です。 エクセルは扱えますが、アクセスは超ド級初心者です(汗) 大変わかりづらい説明になってしまいましたが、 どうか宜しくお願い致します。