- ベストアンサー
ACCESSのレポートに関して
ACCESSでのレポート出力に関して教えて下さい。 今、T_ABC というテーブルが存在し、そのテーブルのXという項目をレポート上のテキストに 表示したいと考えいます。 データは既に存在し、レポートの方へ以下のような記述をしましたが、#name?というエラーと なってしまいます。 何が考えられるでしょうか、、、 《記述内容》 コントロールソースへ =[T_ABC]![X] 初歩的な質問で申し訳ありませんが、教えて下さい。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>>コントロールソースへ =[T_ABC]![X] 複数レコードをテキストボックスへ表示しようとしているのではないでしょうか。 テキストボックスへ表示したいのであれば、単一レコードを抽出しなければなりません。(DLookUp/DBLookUpなど) 複数レコードを表示したいのであればリストボックスなどを利用してみて下さい。
その他の回答 (3)
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
【補足】「T_ABC]の列[X]のレコードを特定する必要があります。 × SELECT X FROM T_ABC ○ SELECT X FROM T_ABC WHERE id=1 DLookup関数でなくDBLookup関数で示したのは、このことを伝えたかったからです。それが判っていれば、DLookup関数を利用されても構いません。ハードの性能は年々に向上しています。現実問題としては、シビアに処理速度を気にする必要はないからです。ただ、SQL文をダイレクトに書ける関数の方が利用範囲が多いことは多いとは思います。 念のために、図で参照設定の在り様を示しておきます。 質問者のSQL文の学習に寄与できれば幸いです。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
【実行速度の比較】 DLookup() ------- 0.261秒 DBLookup() ------ 0.005秒 AccessがサポートしているDLookup関数を使えば表示されます。 AODBで同じ働きをする関数を自作しても可能です。 その場合、実行速度は52倍速になります。 【Dlookup関数】 http://office.microsoft.com/ja-jp/access-help/HA001228825.aspx DLookup 関数 指定されたレコードのセットから、特定のフィールドの値を返します。 レポートのレコード ソースにないフィールドの値を表示する場合に使用できます。 (http://ofic.microsoft.comより) 【Dblookup関数】 Public Function DBLookup(ByVal strQuerySQL As String, Optional ReturnValue As Variant = 0) As Variant On Error GoTo Err_DBLookup Dim V Dim rst As ADODB.Recordset Set rst = New ADODB.Recordset With rst .Open strQuerySQL, _ CurrentProject.Connection, _ adOpenStatic, _ adLockReadOnly If Not .BOF Then .MoveFirst V = IIf(IsNull(.Fields(0)), ReturnValue, .Fields(0)) End If End With Exit_DBLookup: On Error Resume Next rst.Close Set rst = Nothing DBLookup = V 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 ※DBLookup関数が動作するには、[参照設定]のセットが必要です。 http://www.happy2-island.com/access/gogo03/capter00307.shtml
- ppyama
- ベストアンサー率12% (48/399)
バージョンは? X だけではダメでしょうか? 2003の環境しかありませんが。
お礼
ppyama様、ご回答ありがとうございます。 環境を記載せずに申し訳ありません。 ACCESSは2000です。 Xだけでやってみましたがダメでした。。。。 何が原因でしょうか、、、