プロが教える店舗&オフィスのセキュリティ対策術

ACCESSでのレポート出力に関して教えて下さい。

今、T_ABC というテーブルが存在し、そのテーブルのXという項目をレポート上のテキストに
表示したいと考えいます。

データは既に存在し、レポートの方へ以下のような記述をしましたが、#name?というエラーと
なってしまいます。

何が考えられるでしょうか、、、

《記述内容》

 コントロールソースへ  =[T_ABC]![X]


初歩的な質問で申し訳ありませんが、教えて下さい。

よろしくお願いします。

A 回答 (4件)

>>コントロールソースへ  =[T_ABC]![X]



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

【補足】「T_ABC]の列[X]のレコードを特定する必要があります。



× SELECT X FROM T_ABC
○ SELECT X FROM T_ABC WHERE id=1

DLookup関数でなくDBLookup関数で示したのは、このことを伝えたかったからです。それが判っていれば、DLookup関数を利用されても構いません。ハードの性能は年々に向上しています。現実問題としては、シビアに処理速度を気にする必要はないからです。ただ、SQL文をダイレクトに書ける関数の方が利用範囲が多いことは多いとは思います。

念のために、図で参照設定の在り様を示しておきます。

質問者のSQL文の学習に寄与できれば幸いです。
「ACCESSのレポートに関して」の回答画像3
    • good
    • 0

【実行速度の比較】



DLookup() ------- 0.261秒
DBLookup() ------ 0.005秒

AccessがサポートしているDLookup関数を使えば表示されます。
AODBで同じ働きをする関数を自作しても可能です。
その場合、実行速度は52倍速になります。

【Dlookup関数】

http://office.microsoft.com/ja-jp/access-help/HA …

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/capte …
「ACCESSのレポートに関して」の回答画像2
    • good
    • 0

バージョンは?



X だけではダメでしょうか?
2003の環境しかありませんが。
    • good
    • 0
この回答へのお礼

ppyama様、ご回答ありがとうございます。

環境を記載せずに申し訳ありません。

ACCESSは2000です。

Xだけでやってみましたがダメでした。。。。

何が原因でしょうか、、、

お礼日時:2013/09/17 16:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!