• 締切済み

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

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

みんなの回答

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