• ベストアンサー

ACCESSのレポートに関して

ACCESSでのレポート出力に関して教えて下さい。 今、T_ABC というテーブルが存在し、そのテーブルのXという項目をレポート上のテキストに 表示したいと考えいます。 データは既に存在し、レポートの方へ以下のような記述をしましたが、#name?というエラーと なってしまいます。 何が考えられるでしょうか、、、 《記述内容》  コントロールソースへ  =[T_ABC]![X] 初歩的な質問で申し訳ありませんが、教えて下さい。 よろしくお願いします。

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

  • ベストアンサー
  • sora1515
  • ベストアンサー率58% (54/92)
回答No.4

>>コントロールソースへ  =[T_ABC]![X] 複数レコードをテキストボックスへ表示しようとしているのではないでしょうか。 テキストボックスへ表示したいのであれば、単一レコードを抽出しなければなりません。(DLookUp/DBLookUpなど) 複数レコードを表示したいのであればリストボックスなどを利用してみて下さい。

その他の回答 (3)

回答No.3

【補足】「T_ABC]の列[X]のレコードを特定する必要があります。 × SELECT X FROM T_ABC ○ SELECT X FROM T_ABC WHERE id=1 DLookup関数でなくDBLookup関数で示したのは、このことを伝えたかったからです。それが判っていれば、DLookup関数を利用されても構いません。ハードの性能は年々に向上しています。現実問題としては、シビアに処理速度を気にする必要はないからです。ただ、SQL文をダイレクトに書ける関数の方が利用範囲が多いことは多いとは思います。 念のために、図で参照設定の在り様を示しておきます。 質問者のSQL文の学習に寄与できれば幸いです。

回答No.2

【実行速度の比較】 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)
回答No.1

バージョンは? X だけではダメでしょうか? 2003の環境しかありませんが。

asamix_000
質問者

お礼

ppyama様、ご回答ありがとうございます。 環境を記載せずに申し訳ありません。 ACCESSは2000です。 Xだけでやってみましたがダメでした。。。。 何が原因でしょうか、、、

関連するQ&A