• ベストアンサー

Dlookup関数の使い方 (Access2007)

まったくのAccess初心者です。Dlookup関数の使い方がどうやってもわからないので教えてください。 車種というテーブルには[車番]と[全長]というフィールドがあります。 データというテーブルに[車番]やその他([定員]や[車高]など)のフィールドがあり、フォーム入力で車番を入れると車種テーブルから全長を引っ張ってくるようにしたいのですが、どうすればいいでしょうか。 ネットや参考書で調べていますが、=dlookup(  )の中をどう書けばいいかさっぱりわかりません。 質問の書き方もおかしいかもしれませんが、よろしくお願いします。

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.4

> >抽出条件に指定した"[車番] = '" & Me.車番入力欄 & "'" > そのままコピペしたのですが、「指定した式の構文が正しくありません。たとえば、演算子がないときにオペランドを指定しています。」というエラーがでました。 上記 "[車番] = '" & Me.車番入力欄 & "'" は、[車番]がテキスト型の場合です。 [車番]が数値型の場合には、"[車番] = " & Me.車番入力欄 のようにします。 違いは、比較する文字(Me.車番入力欄の値)を ' で囲むかどうかです。 > =DLookUp("[ドライバー]","車番") この場合には、条件が設定されていないので、たまたま先頭にあったデータが拾われます。 DLookupは、ヘルプにあるように、 DLookup(抽出したいフィールド,テーブル名,抽出条件式 )になります。

beachman
質問者

お礼

30246kikuさん もう一度最初からやり直してみたところ、やっとできました。何度もアドバイスいただいて感謝しています。勉強をつづけていきます。ありがとうございました。

その他の回答 (3)

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.3

> 車種のテーブルにはほかのフィールドもあったのですが、それを削除して車番と全長のみにするとできました 例で挙げたもの ( DLookup("[全長]","車種","[車番] = '" & Me.車番入力欄 & "'") ) は、[車番](テキスト型)がMe.車番入力欄のものの「全長」を持ってくる ことになるので、他のフィールドがどうであろうが関係ありません。 できなかった時の、「車種」テーブルの内容と、 抽出条件に指定した"[車番] = '" & Me.車番入力欄 & "'"を提示できますか。 こちらでもやってみます。 ただし、私の確認できる環境は Access2007+Vista Ultimate です。

beachman
質問者

お礼

30246kikuさんありがとうございます。実は前回「できました」としましたが、どうやらできていなかったようでした。 >できなかった時の、「車種」テーブルの内容 ここでどうかけばいいかわかりませんが・・・ ID | 車番 | ドライバー 1 | 100 | 山本 2 | 113 | 岡崎 3 | 2005 | 本田 というかんじです。([全長]ではなく[ドライバー]にしました) >抽出条件に指定した"[車番] = '" & Me.車番入力欄 & "'" そのままコピペしたのですが、「指定した式の構文が正しくありません。たとえば、演算子がないときにオペランドを指定しています。」というエラーがでました。 ヘルプを見て自分なりに解釈したのが↓です。 =DLookUp("[ドライバー]","車番") これでいけたと思ったのですが、[車番]テーブルのいちばん最初のデータしかひろってきませんでした。 質問下手ですみません。

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

ヘルプは見ない方のようですね。 例 DLookup("[全長]","車種","[車番] = '" & Me.車番入力欄 & "'") とか、 DLookup("[全長]","車種","[車番] = " & Me.車番入力欄 ) とか

beachman
質問者

お礼

何度もありがとうございます。ヘルプは見たんですがピンとこなくてここで質問しました。車種のテーブルにはほかのフィールドもあったのですが、それを削除して車番と全長のみにするとできました。同じテーブルに複数のフィールドをおいて、そこから選択することができないのでしょうか?とにかく、ありがとうございました。

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

DLookup("[全長]","車種","[車番] = XXX") 車種テーブルから、車番=XXX のものの全長が戻り値として得られます。 詳しくはヘルプで、DLookup 検索してみてください。

beachman
質問者

お礼

ありがとうございます。説明不足でした。 車番を入力するごとに結果を変えたいのですが、フォームに「車番入力欄」がありますが、そこに対応するデータを表示させたいと思っています。 教えていただいた"[車番]=XXX"にするとXXXのものしか表示されないかと思うのですが、どうすれば他の車番にも対応できるのか、すみませんが教えていただけませんか。

関連するQ&A

専門家に質問してみよう