- 締切済み
マイクロソフトアクセス Dlookupの使い方
先日、同じ質問をした者です。別角度からのトライをしてみました。 (経緯) Table1とTable2を作りました。Table1には5レコードを入力済みです。 tabale2からFoam2を作りました。で、table2のField2にDlookupの定義を書いてみました。単純に、Field1を選んだらField2がコピーされてくるだけです。(予定では・・・) Foam2でField1を選ぶ事は出来るのですが、Field2に移動しても何も表示されません。Field3に移動するとエラーがでます。debugを選ぶとdlookup分が黄色に反転してます。 参考書片手に苦戦しましたが変化無しです。アドバイスをお待ちしています! ●エラー Run-time error'3464'. datatype mismatch in criteria expression ●書いた定義 Private Sub Text6_Click() If Not IsNull(bakk) Then Field1 = DLookup("Field1", "Table1", "Field1=" & Field1) End If End Sub ●テーブル定義 Table1 Field1 (Text) Fleld2 (Text) Field3 (Text) Table2 Field1 (Table1のField1をコンボボックスで選択) Field2 (Table1のField2を自動で表示したい) Field3 (自分でテキストを入力) データタイプはTextで10文字指定です。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
はっきりとしている点だけ! If Len(Me.controlname & "") Then Me.xxxxx = DLookup("fieldname", "tabalename", "fieldname='" & Me.controlname & '") End If または、 Me.xxxxx = DLookup("fieldname", "tabalename", "fieldname='" & Nz(Me.controlname) & '") fieldname=100 fieldname='aaaaa' fieldname=#2007/08/10# 列タイプが数字、文字、時刻・日付型でいわゆる WHERE 節の書き方が違います。 DLookup の実態は、 SELECT fieldname FROM tablename WHERE fieldname=100; SELECT fieldname FROM tablename WHERE fieldname='aaaaa'; SELECT fieldname FROM tablename WHERE fieldname=#2007/08/10# まあ、シングルクォーテーション(')が足りないということです。 <疑問> Private Sub Text6_Click() ・・・・・・ ・・・・・・ ・・・・・・ End Sub このイベントに書かれている理由が判りません。
補足
ご返事が遅くなり、申し訳ありません。 素人には先が長い話になりそうです。 <疑問>ですが、テストでFieldが増えてしまい、6番目のFieldを使ったためです。特に意識したわけでは・・・ まだまだ格闘が続きそうです。