• ベストアンサー

Accessでこんなことできますか?

以下のようなテーブルがあったとします。 ファイル名,絶対パスを含むファイル名,スペースで区切られたkeyワードの羅列(メモ型)をそれぞれField_a,Field_b,Field_cとします。 この時に、Field_cをある語句(複数)で検索してマッチするものがあれば、そのレコードの内容を表示させる。更にその絶対パスを含むファイル名(Excel)をクリックすればExcelのデータを表示させたいのですが。

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

> Field_cをある語句(複数)で検索してマッチするものがあれば、そのレコードの内容を表示させる。 これにはクエリを使用します。 以下、Access2003での操作手順です: 1)Accessのメニューで、「挿入(I)→クエリ(Q)」を選択するなどして、『新しいクエリ』ダイアログを開く 2)上記ダイアログで「デザインビュー」を選択して、『OK』ボタンをクリック 3)『テーブルの表示』ダイアログが開くので、当該テーブルをダブルクリックするなどして追加した後、  『閉じる(C)』ボタンをクリックして、同ダイアログを閉じる 4)クエリのデザインビューの上半分の領域に表示された、指定したテーブルのフィールド一覧から、  「*」と「Field_c」をそれぞれダブルクリックするなどして、下半分の領域に追加 5)下半分の領域に『表示』チェックがあるので、「Field_c」のものだけチェックを外す  (「*」は全フィールドを表示するためのものなので、上記チェックをつけたままだと「Field_c」が   重複してしまうため) 6)「Field_c」の『抽出条件』欄に、以下のような式を入力  ・クエリ実行時にパラメータダイアログが表示される形でよい場合:   Like "*" & [検索条件は?] & "*"  ・『MF1』フォームの『検索条件』テキストボックスの値を参照する場合:   Like "*" & Forms!MF1!検索条件 & "*"  ※ここでの「*」は曖昧検索にするためのワイルドカード文字で、「4)」での「*」とは別物です。 7)適当な名前をつけて保存 ・・・以上です。 検索結果をフォームとして表示したい場合は、上記クエリをレコードソースとして、新規フォームを 作成してください。 【確認】 上記の式では、指定した条件に部分一致したものが抽出されることになります。 (Field_cのデータに「aaa bbb ccc」と「aa bb cc」がある状態で、検索条件に「aa」を指定すると、  双方が抽出される: 検索条件指定後の式が、「Like "*aa*"」(=「aa」を含むもの)になるため) スペース区切りの各Keyワードに完全一致した時に限定する場合は、「Like」の隣の「"*"」は 右側にスペースを追加して「"* "」に、右端の「*」は左側にスペースを追加して「" *"」にした上で、 当該テーブルのField_cに記録されたデータについても、左右の両端にスペースを追加しておく 必要があります。 (検索条件に「bb」を指定したとき、実際の式は「Like "* bb *"」(=「 bb 」を含むもの)となるため、  「bbb」を合致させずにおくことができるようになります。  また、データの両端に予めスペースを追加するのは、検索条件に「aa」を指定した場合に、  式が「Like "* aa *"」となり、「aa bb cc」のままではスペースの不足により非該当となるのを  防ぐためです) > 更にその絶対パスを含むファイル名(Excel)をクリックすればExcelのデータを表示させたい こちらについては、テーブルのデザインビューを開いて、Field_bのデータ型を「テキスト型」から 「ハイパーリンク型」にしてやるのが最も簡単です。 (現在のデータが、ハイパーリンク型とするために必要な形に自動的に変換されます)

y_japan
質問者

お礼

大変、丁寧な解説ありがとうございます。 Accessについては住所録作成などのサンプルを読んだくらいの知識しかないのですが、きっかけを教わりトライしてみたいと思います。

y_japan
質問者

補足

はじめてのAccessヨロヨロしながらも動かすことができました。 感謝です。きっかけを与えていただき本当にありがとうございました。

その他の回答 (1)

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.1

可能です・ フォームに検索するTextBOX とボタンをを用意します。 TextBOXに検索キーワードを入力し、ボタンが押されたら 該当するレコードを表示します。 該当するレコードは 帳票形式の一覧で 絶対パスを含むファイル名(Excel)をクリックすればExcel がフィールド(TEXTBOX) と対に、ボタンを表示させておけばよいわけです。 そのボタンが押されたらExcelのデータを表示するようにすればできます。 そんなに難しくはないですよ。

y_japan
質問者

お礼

回答ありがとうございました。

関連するQ&A

  • ExcelのシートをAccessで表示したい

    WindowsXPでAccess2002とExcel2002を使用しています。 AccessのフォームとレポートでExcelのシート内容を表示させたいと思いますが、OLEオブジェクトでそのまま挿入すると容量が大きくなりすぎます。そこで、過去の質問NO.605269のように、テーブルにExcelファイルのフルパスを格納するフィールドを1つ設け、そのパスをオブジェクトフレームコントロールのSourceDocプロパティに代入したのですが、うまくいきません。 連結オブジェクトフレームでは「OLEオブジェクトは空です」とメッセージが出てコントロールには何も表示されません。非連結オブジェクトフレームではどのレコードにも、最初にコントロールを設定したときに表示されるダイアログで指定したExcelファイルしか表示されません。 どうすればいいのか、アドバイスをお願いします。

  • Access2003で

    あるところから、受講者データをCSVファイルとしてもらっています。このCSVファイルのデータをアクセスのAテーブルに貼り付けて、採点業務をしたいと思います。 Aテーブルの1-1フィールドに「数学」や「国語」等が入力されています。(空白もあります) Bテーブルの1-1フィールドに「数学」と入力されており、その横の点数フィールドに「10」と入力しています。 AテーブルとBテーブルの1-1をリレーションで組み、クエリで1-1フィールドが数学ならば点数が10点と表示されるようにしました。 ここで質問なのですが、数学以外の語句(空白も含む)が入力されていれば、点数が0点と表示されるようにしたいのですが、どうすれば良いのでしょうか? よろしくお願いします。

  • Access テーブルにデータを取り込む際 下記の条件でやるには どうしたらよいでしょうか?

    テーブル名「テーブル1」で 中身が フィールド名1,値1 フィールド名2,値2 フィールド名3,値3 というデータがあったとします。 このデータを 名前,フィールド名1,フィールド名2,フィールド名3 というフィールドをもったテーブルに1レコードとして書き込んで行きたいのです。 簡単な方法あるでしょうか? 結果として 名前,フィールド名1,フィールド名2,フィールド名3 テーブル1,値1,値2,値3 というレコードになります。 次に2レコード目は また別の「テーブル2」を書き込みます。 よろしくお願いします。

  • Access テーブルの標題の使用方法

    おせわになります。 テーブルのフィールドプロパティの「標題」で、フィールド名の表示を変えられます。 この標題でフィールド名を変える必要性がわかりません。 ただ単に、テーブルのフィールド名を直接変更してもテーブル、クエリ、フォームおよびレポートのレコード名も自動的に変わります。 結果は同じように思われます。 この「標題」はどういう場合に使用するのでしょうか。 よろしくお願いします。

  • Access2007のエキスポートについて

    Access2007でマクロを使ってExcel2007のファイル(xlsx)形式へエキスポートします。その際、 ・「ワークシート変換」を指定 ・ワークシートの種類に「Excel Work book」 ・出力ファイルパスに「(絶対パス)\(ファイル名).xlsx」 としました。 既にAccess2007のテーブルには、65535行を超える200000行のレコードが入っていることが確認できてます。 マクロを実行すると、「指定範囲を広げることができません」とダイアログが出てしまい、マクロが中断し、異常終了してしまいます。 windowsXP SP2 pentium4を使用。 異常終了せず、全レコードをファイルにエキスポートする方法はありませんか? 宜しくおねがいいたします。

  • Accessではエクセルでのvlookupに近い物はありますか?

    例えば「担当者情報」というテーブルを作成して、フィールド名としてして、「担当者名」「担当者電話番号」「担当者内線番号」というフィールドを作成したとします。 そして別テーブルとして「担当者一覧」というテーブルを作成して、フィールド名として「客先名」「担当者名」担当者電話番号」「担当者内線番号」というフィールドを作成したとします。 その際に「担当者一覧」テーブル上の「担当者」フィールドのレコードとして、「担当者情報」テーブルの「担当者名」フィールドのレコードとして登録されている担当者を入力した場合、連動して「担当者一覧」テーブル上の「担当者電話番号」「担当者内線番号」フィールド上のレコードとして、「担当者情報」テーブルの「担当者電話番号」「担当者内線番号」が表示されるようには出来ますか? アドバイスの程お願い致します。

  • Accessでフィールドの結合

    Accessについて質問です。 例えばテーブルに都道府県、市区町村番地、マンション名のフィールドを作ります。 で、それらを入力すると3つとも結合されて同テーブル上にある別のフィールドに表示させたいと思っています。 ExcelではCONCATENATE関数を使えば結合して表示できるのですが、Accessでそのようにするにはどのようにすればよろしいでしょうか? また、市区町村番地とマンション名の間にスペースをつけたいと思っているのですが、スペースを入れる方法などはありますでしょうか?

  • ACCESS2000

    ACCESS2000を使用しています。 あるテーブルの50項目のデータをスクロールバーを使い、フィールド名&値を表示したいと思っていますが、方法がわかりません。 項目が多すぎるので、何とか省スペースで表示させたいのですが。。。 何かいい方法があれば教えてください。 よろしくお願いいたします。

  • アクセス フォームの設定

    テーブル【T-1】 フィールドA,主キー,数値型 フィールドB,テキスト型 フィールドC,テキスト型 フィールドD,テキスト型 フィールドE,テキスト型 フォーム【F-1】 テーブル【T-1】に入力用のフォーム,単票型 があります。 F-1でそれぞれのフィールドに対して入力スペースがあり(もちろんですが) A,B,C,D,Eと順番に入力していきます。 ここでエンターキーを押すと、次のレコードへ移るわけですが、 カーソルがEの位置にあるため、わざわざマウスでAの位置へ移動させないといけません。 同様に、入力項目がなく、A,B,Cと入力して次のレコードへ行くと、Cの位置にカーソルがあります。 これを、Aをホームポジションとして、次のレコードへ移ったときに 自動的にカーソルをAの位置にもってくるようにしたいのですが、 一体どうすればよろしいでしょうか?

  • アクセスのクエリで

    あるテーブルはエクセルからインポートしていますが、全てのフィールドが空白というレコードが多数存在します。 これをクエリで(他に方法があればどの様な方法でもよいです)全てのフィールドが空白のレコードは表示しない様にする事はできますか? これを更新クエリにして、新しく全て空白のフィールドのレコードが無いテーブルを新たに作ろうと考えています。 教えて下さい。よろしくお願いします。