• 締切済み

アクセスでのVLOOKUPの代わりになる関数

今、職場でエクセルで管理しているデータ。 パソコンに強い人が作ったので、 関数もマクロもいっぱい!! 充分機能するのですが、やはり限界も感じるらしく アクセスで作り直してみない?と言われました。 これから、業務の関係で10日ほどはゆとりがあるからです。 6年ほど前に学校で学んだ知識を思い出しながら、 テーブルとフォームを作成しました。 でも、VLOOKUPのような関数はアクセスでは使えないのでしょうか? 金融機関を銀行・支店コードから引っ張ってきたいのです。 それと、郵便番号も地域が限られているので、 町名から引っ張ってきたいのですが、可能でしょうか? この質問をエクセルで作った本人が読んでいたら・・・ 恥ずかしいと思いつつ、できるだけ良いものを作りたいので 質問させていただきました。 よろしくお願いします。

  • knms
  • お礼率57% (19/33)

みんなの回答

noname#60992
noname#60992
回答No.4

No2です。 「AccessにはDLookUpがあります」の間違いでした。 申し訳ありません。

noname#140971
noname#140971
回答No.3

Access と Excel の重大な相違点の一つは SQL言語を使うことではないでしょうか? <ZipList> ZIP_________Address 1111111__大木町 1111112__天神町 1111113__坂下町 [イミディエイト] ? DBLookup("SELECT ZIP FROM ZIPLIST WHERE ADDRESS='大木町'") 1111111 ? DBLookup("SELECT ZIP FROM ZIPLIST WHERE ADDRESS LIKE '天神%'") 1111112 フォームの[イミディエイト] では、このように関数をテストすることが出来ます。 このテストで判るように、SQL文のSELECT文がVLOOKUPに匹敵すると考えることも出来ます。 クエリは、この機能を利用する仕組みのようなものです。 なお、DBLookup関数は、この回答のために書いたものです。 SQL文に堪能であれば、DBLookup関数で大概のことがやれると思います。 この回答は、現実には意味をなさないとは思います。 軸足は、「SQL文も課題ですよ」にあります。 Public Function DBLookup(strQuerySQL As String) As Variant On Error GoTo Err_DBLookup    Dim DataValue    Dim rst     As ADODB.Recordset    Set rst = New ADODB.Recordset    With rst      .Open strQuerySQL, _         CurrentProject.Connection, _         adOpenStatic, _         adLockReadOnly      If Not .BOF Then        .MoveFirst        DataValue = .Fields(0)      End If    End With Exit_DBLookup: On Error Resume Next    rst.Close    Set rst = Nothing    DBLookup = DataValue    Exit Function Err_DBLookup:    MsgBox "SELECT 文の実行時にエラーが発生しました。(DBLookup)" & Chr$(13) & Chr$(13) & _       "・Err.Description=" & Err.Description & Chr$(13) & _       "・SQL Text=" & strQuerySQL, _       vbExclamation, " 関数エラーメッセージ"    Resume Exit_DBLookup End Function

noname#60992
noname#60992
回答No.2

accessでがvlookupという関数があります。 が私はほとんど使いません。 他の機能を使うことが多いです。 連結フォームやコンボボックス、リストボックスのレコードソースのSQLを書き換えたり、 ADOなどで検索したりすることが多いです。 他のデータベースを参照したり、他のプログラムに書き換えるときにはそのほうが都合がよいと思います。

noname#182251
noname#182251
回答No.1

可能です。様々な実装が考えられますが、少し慣れればエクセルより遙かに手続きは簡単です。一つのポイントは「クエリー」を理解することです。これはリレーショナルデータベースの基本なので、アクセスと限らず、勉強することは大変有効です。 で、「具体的にどうするか」が一番知りたいところとは推察しますが、文字だけで表現するのは辛いものがあります。また実用的なフォームを完成させるためには、他にも色々な知識が必要になると考えます。お奨めしたいのは参考書の購入です。それを利用し、具体的に判らない箇所を質問すれば、具体的な回答が付くことと思います。

knms
質問者

お礼

ありがとうございます。 チャレンジしてみます

関連するQ&A

  • アクセスにはVLOOKUP関数はないのですか?

    エクセルのVLOOKUP関数に代わるものがアクセスのDLOOKUP関数ということでしょうか?

  • ExcelのVlookupでアクセスを参照したい

    質問があります。 掲題の通りですが、ExcelのVlookupでACCESSのクエリを参照してレコードを取得したいです。 今まで、ACCESSのクエリをExcelにエクスポートして、それをExcelでVlookupで持ってきていました。それを、Accessから直接Vlookupでもってきたいです。 ADO+VBAでやるだろうとは理解していますが、どうも難しくわからないです・・・。コードの記述を含めてやり方を教授して頂けると幸いです。 画像をアップロードしたのでよろしくお願いいたします。 画像のA1-D5がExcelで、下のテーブルはACCESSのものです。 ACCESSのテーブルをExcelのシートにコピペしてVlookupすれば良いのですが、後学のため、それと応用を利かすためにAccessのクエリを直接参照してデータを取得する方法を知りたいです。 よろしくお願いいたします。 それと、もし、その他オフィスの項目で聞くべきでしたら教えて頂ければ幸いです。 よろしくお願いいたします。

  • MSアクセスにおけるSUMIF関数やIF関数、VLOOKUP関数について

    アクセスにおいてエクセルでいう、SUMIFやIFやVLOOKUPなどに類似(もしくは同じ)関数はありますか? もしもあるとしたら、使用方法などアドバイス頂けたら嬉しいです。 宜しくお願いします。

  • ACCESSにて、EXCELみたいにVLOOKUP

    ACCESS2007にて、EXCELに近いイメージ操作でVLOOKUP関数機能を使うには、どのようにしたら宜しいでしょうか? ・フィールド構成(テーブル1,2共通) ID、会社名、電話番号、住所、業種 テーブル1の電話番号フィールドをキーにして、テーブル2に同一電話番号が有ったら、 テーブル1の業種データをテーブル2の空欄の業種フィールドに引用したい と言う様な機能リクエストです。 簡単に出来る方法有りますでしょうか?

  • AccessでExcelのvlookup

    AccessでExcelのvlookupのようにほかのテーブルの情報を吸い出したいです。 具体的には、受注テーブルに、商品マスタテーブルの情報と、商品価格テーブルの情報を吸い出したいです。 受注テーブルの商品コードが検索元です。 わかる方教えて頂けないでしょうか。 Access2003です。

  • AccessでVlookup関数のようなものがあるの???

    教えてください。お願いします。 Accessがあまりよくわかっていないので、質問の仕方が変かもしれませんが、よろしくお願い致します。 Accessの中で、ExcelでつかうVLOOKUP関数のようなものが使えるかどうか教えてください。 例えば、次のようなものを作りたいのですが、どうしたらいいでしょう。 以下のようなクエリAを作成し、コード番号を見れば、誰が何曜日の何時間目を選択しているか識別できるようにしました。 「クエリA」 (フィールド) 個人ID :3桁の個人ID番号です 氏名 :生徒の名前   科目ID :選択科目のID 選択科目 :選択科目名 曜日 :月曜=1 火曜=2 水曜=3・・・・で入力 限目 :1時間目=1 2時間目=2 3時間目=3・・・・で入力 コード :[個人ID]×100+[曜日]×10+[限目] の数式で6桁表示 このコードを使って1レコードに1個人の選択科目の時間割が表示されるようなクエリBを作成したいのですが、どうしたらいいでしょうか。ExcelのVLOOKUP関数のようなものが使えれば出来るような気がするのですが。 「クエリB」 (フィールド) 個人ID :3桁の個人ID番号です 氏名 :生徒の名前 getu1 :[個人ID]×100+11 月曜1時間目 : ←関数 getu2 :[個人ID]×100+12 月曜2時間目 : ←関数 getu3 :[個人ID]×100+13 月曜3時間目 : ←関数 ka1 :[個人ID]×100+21 火曜1時間目 : ←関数 ka2 :[個人ID]×100+22 火曜2時間目 : ←関数  ・・・ ←関数の所に、例えば、月曜1時間目のところには、[getu1]と同じものが「クエリA」の[コード]フィールドにあれば「クエリA」の[選択科目名]を返す といったような関数を入れたいのですが、どうしたらいいですか? こんな説明では解りにくいと思いますが、よろしくお願い致します。

  • VLookUp関数?

    エクセルでの質問です。 1 りんご 2 みかん 3 メロン というような表があったとします。どこかのセルに「りんご」と 入力すると隣のセルに「1」というように表示させる方法は何か ありますでしょうか…? VLookUp関数なのかな?と思いつつ見てみたのですが、 使い方がわからず、この関数で合っているかどうかもわかりませんでしたので…。 宜しくお願いします!

  • VLOOKUP関数の範囲を自動変更させる

    VLOOKUP関数の範囲を自動変更させる データベースをエクセルで作成し下方に1行づつ増やすしていきたい。 VLOOKUP関数の(検索値、範囲、列番号、検索方法)の内で、範囲の設定部分を超えるとVLOOKUP関数の結果が合わなくなってしまします。 EXCEL2007では、テーブルとして書式設定を選びそれを範囲に選ぶか或いは名前付き定義を付けると範囲が自動で増えるのですが、同じことをEXCEL2002と2003でもできるようにはならないでしょうか?

  • アクセスの関数で

    アクセスの関数で エクセルのFINDに該当する関数はありますでしょうか? あるテーブルの文字列の/の文字を探したいのですが エクセルならFIND関数でokなのでそのまま使えるかと思ったんですがアクセスでは使えないようで アクセスで特定文字を探しだし その桁数を出したいのですがわかりましたらお願いいたします。

  • ExcelのVLOOKUP関数

    ExcelのVLOOKUP関数について質問があります。 複数のシートのデータを検索することはできますか? できるとすれば、どうすればいいのでしょうか?