
フォームにテキストボックスAがあり、そこに入力した文字(下記テーブルのフィールド1の文字)をクエリーの「抽出条件」にし、同じフォーム上のテキストボックスBに表示しようと思っています。
クエリを開くとパラメータの入力を求めてきて、入力するとうまく抽出されます。
テーブルは
フィールド1|フィールド2
A | 10
B | 20
C | 30
D | 40
のような簡単なものです。
テキストボックスBのコントロールソースに
「=[○×クエリ]![フィールド2]とやっても「#Name?」と表示されてしまいます。
どのようにやればよいのでしょうか?
No.1ベストアンサー
- 回答日時:
クエリは必要ありません。
フォームのレコードソースに無いデータを表示させる
場合には DLookUp を使います。
テキストボックスBのコントロールソースに
=DLookUp("フィールド2","テーブル名","フィールド1='" & [テキストボックスA]) & "'"
上記は「フィールド1」が文字列型の場合です。
数値型の場合は次のようになります。
=DLookUp("フィールド2","テーブル名","フィールド1=" & [テキストボックスA])
DLookUp 関数は コントロールソースに限らず
VBA でも使用し、Access では、非常に使用頻度の高いものです。
ヘルプで調べて、ぜひマスターしてください。
もし Access でなかったら、このレスは無視して下さい。
bonaron様
解答有り難うございます。
DLookUp関数の関数のことは知りませんでした。
これからもよく使用していくことになりそうなのでマスターしようと思います。
ありがとうございました。
No.2
- 回答日時:
No1さんの回答が基本。
実行速度を重視するならばADODB を利用する次のステップへ。
=DBLookUp("フィールド2","テーブル名","フィールド1='" & [テキストボックスA] & "'")
Public Function DBLookup(ByVal strField As String, _
ByVal strTable As String, _
Optional ByVal strWhere As String = "", _
Optional ByVal ReturnValue = Null) As Variant
On Error GoTo Err_DBLookup
Dim DataValue
Dim strQuerySQL As String
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
strQuerySQL = "SELECT " & strField & " FROM " & strTable
If Len(strWhere) > 0 Then
strQuerySQL = strQuerySQL & " WHERE " & strWhere
End If
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 = Nz(DataValue, ReturnValue)
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
s_husky様
解答有り難うございます。
まだaccessを始めたばかりなのでモジュール関連はもう少し勉強してから使用したいと思います。
そのときには参考にさせて貰います。
今回は有り難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Access2013。テキストボックスにクエリの値を表示したい。 ①テーブル「受注情報」 フィールド
Access(アクセス)
-
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
クエリーの結果をフォームに表示させたい(Access2000)
その他(データベース)
-
-
4
access テキストボックスの値取得
Access(アクセス)
-
5
Access サブフォームでの選択行の取得
その他(データベース)
-
6
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
7
[至急]accessクエリ結果を入力フォームに出力
その他(Microsoft Office)
-
8
access別のテーブルを参照してテキストボックスに値を表示、編集したい
Access(アクセス)
-
9
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
10
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
11
どこにもフォーカスを当てたくない
Access(アクセス)
-
12
ACCESSのクエリで抽出したデータをテキストボックスに貼り付けるには
Access(アクセス)
-
13
ACCESS クエリの抽出条件に他のテーブルの値を参照する方法
Access(アクセス)
-
14
2つ目のレコードの値を取得するには?
Access(アクセス)
-
15
「#エラー」の回避
Access(アクセス)
-
16
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
17
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
18
ACCESS2010のVBAでフォーム内クエリのフィールド値を取得したい
Visual Basic(VBA)
-
19
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
20
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスで追加した項目に全て...
-
アクセスのクエリ 1文字以上を...
-
Accessで、テーブルに入力した...
-
テーブルでメモ型になっている...
-
Access:値が求めたい値の2倍...
-
Accessで、1つの項目に複数の...
-
Accessのテーブルのフィールド...
-
アクセス クエリのフィールド...
-
access フォームを開くと「パ...
-
Access で 特定の文字の個数を...
-
Access 選択クエリで「テーブ...
-
accessでの文字列の混ざった連...
-
AccessのDLookUpの第3引数の値...
-
Accessを開きなおすとテキスト...
-
途中で改行されたCSVをAccessに...
-
クエリの計算結果をテーブルに...
-
Access2002の重複クエリで大文...
-
Accessの電話番号フィールド
-
【急】Access 4桁の数字の頭...
-
フォームで入力された文字をク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで、1つの項目に複数の...
-
アクセスで追加した項目に全て...
-
Accessのテーブルのフィールド...
-
テキストボックスにクエリ結果...
-
Accessを開きなおすとテキスト...
-
テーブルでメモ型になっている...
-
アクセスのクエリ 1文字以上を...
-
Accessで、テーブルに入力した...
-
アクセス クエリのフィールド...
-
Access:値が求めたい値の2倍...
-
access フォームを開くと「パ...
-
Access で 特定の文字の個数を...
-
追加クエリで特定フィールドの...
-
ACCESSで2つフィールドの日付...
-
accessvba 複数条件でFilterを...
-
Access 選択クエリで「テーブ...
-
アクセスのクエリに「PHONETIC...
-
「[Microsoft][ODBC SQL Server...
-
途中で改行されたCSVをAccessに...
-
Accessの電話番号フィールド
おすすめ情報