- ベストアンサー
ACCESSのレポートに関して
ACCESSでのレポート出力に関して教えて下さい。 今、T_ABC というテーブルが存在し、そのテーブルのXという項目をレポート上のテキストに 表示したいと考えいます。 データは既に存在し、レポートの方へ以下のような記述をしましたが、#name?というエラーと なってしまいます。 何が考えられるでしょうか、、、 《記述内容》 コントロールソースへ =[T_ABC]![X] 初歩的な質問で申し訳ありませんが、教えて下さい。 よろしくお願いします。
- asamix_000
- お礼率55% (77/138)
- オフィス系ソフト
- 回答数4
- ありがとう数1
- みんなの回答 (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の環境しかありませんが。
関連するQ&A
- Access2002でのレポートで
お世話になります。 Access2002でレポートを作成しているのですがデザイン ビューの詳細セクションでテキストボックスを貼り付けて "=Left([***],Len([***])-4) " *[***]はレポートで作成したクエリの項目 をプロパティのコントロールソースに設定したのですが 実際にレポートに出力するテーブルにデータがないとき テキストボックスが貼り付けてある場所に "#エラー" と表示されます。 上記の表示を回避(空白でもいいです)できる方法を 教えてください。
- 締切済み
- オフィス系ソフト
- access2000レポートで2つのテーブルからデータを持ってくる方法を教えてください
はじめまして。ゆきこと申します。 レポートのデザイン画面でページヘッダーにある テキストボックスは テーブル2 (項目:[出力年月FROM]、[出力年月TO][出力ステータス])から それ以外は テーブル1 (項目:[部長コード][部署コード][担当者名]...とテーブル1と同じ項目はありません。)から データをもってきて表示する、 という風にしたいのですが、 ページヘッダーのテキストボックスのプロパティの コントロールソースの式ビルダで =[1]![出力年月FROM]と、各とエラーになってしまいます。 ちなみにテーブル2の中身は 日付FROM 日付TO 2005/01 2005/10 のように入っているのですが、 それを レポートのテキストボックス1に日付FROMの「2005」、 テキストボックス2に「1」という風に表示させたいのですが、 可能でしょうか。 言葉が足りないとは思いますが、 よろしくお願いします。
- 締切済み
- Windows系OS
- Accessのレポートについて
お世話になっております。 現在、Accessのレポートを使って見積書のデータベースを作っているのですが、できるかどうかわかりませんが、一つご教授願います。 それは、見積書では、材料費・人件費などの項目が存在するのですが、時には材料費の項目が存在しない場合もあると思います。 そんなときに、テーブルの項目には材料費のフィールドがあるのですが、そのレコードのデータが空だったらレポートのフィールドに材料費という項目自体を現さないで出すことはできないのでしょうか? レコードの値は決まっているのですが、データが空かどうかでレポートに出力するかどうかを判断させて見積書を作成させたいと思ってます。 可能かどうか分かりませんが、アドバイスをよろしくお願いいたします。
- 締切済み
- その他(データベース)
- Accessのレポートのコントロールソースについて
すみません。教えてください。 Accessのレポートで、レポートとしてはクエリー1をレコードソースに設定してありますが、その中の1つのテキストボックスにクエリー2(つまりレコードソースに設定した以外のクエリー)の項目を表示させたい場合、そのテキストボックスのコントロールソースには、どのように式を記載すればよいのでしょうか?
- ベストアンサー
- オフィス系ソフト
- accessのレポートについて
accessのレポートでテキストボックスのコントロールソースに =[名前] & "様" と入力したんですが,#エラー とでてしまいます。様という字を追加するにはどうすればいいのでしょうか?
- ベストアンサー
- オフィス系ソフト
- Access レポートのレコードソースについて
Access レポートのレコードソースについて Access2000を使っています。 VBAでテーブル一覧や構造を Debug.Print に出力する方法が、あるWebサイトで紹介されて いたのですが、Debug.Print ではなく、レポートに出力することは可能でしょうか・・? 一般的には、レポートのレコードソースには、クエリやテーブルを使うと思いますが・・・。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- アクセス2000のレポート作成で
アクセス2000のレポート作成時にデザインビューを利用してレポートを作成しようとしています。 ここでフィールドリストを利用してテーブルのフィールド名をドラッグ&ドロップし、デザインビュー上に配置したいのですが、フィールドリストを画面に参照できません。 どのような設定をすればフィールドリストが出せるのでしょうか。 また、他に方法がないかと思い、デザインビュー上にテキストボックスを配置し、 プロパティ> データ> コントロールソース>式ビルダの作業画面からテーブルのフィールド名を配置していますが、プレビュー表示すると「#Name?」と表示されてしまいます。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- アクセスのレポートで・・
アクセスのデーターをラベル印刷するにあたって困っております。多分何か簡単な設定で解決できるのだと思って・・アドバイス頂けましたら幸いです。 まず、テーブル構成は ------------------------------- ID :オートナンバー 案件1:テキスト 案件2:テキスト 案件3:テキスト 案件4:テキスト 案件5:テキスト -------------------------------- となっており、案件1から5には文字が入力されております。(約20行のデーターを入力してます。) このテーブルを元に宛名ラベルウィザードで5列からなるレポートを完成させたのです。 レポートイメージは下記のような感じです。 -------------------------------- 案1 案2 案3 案4 案5 □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ -------------------------------- そこで印刷した結果を見てびっくり。。 テーブルの案件1に入力された文字が”あいうえお” 〃 〃 2に 〃 〃 ”かきくけこ” 〃 〃 3に 〃 〃 ”さしすせそ” 〃 〃 4に 〃 〃 ”たちつてと” 〃 〃 5に 〃 〃 ”なにぬねの” とすると、レポート印刷では上記のレポートイメージのように1つ1つのラベルにテーブルのデーターが印字されるものと思ったら、1つのラベルに、”あいうえおかきく”というように自分のデーター”あいうえお”以外にも隣のデーターである”かきく”までも表示し印刷されてしまって困ってます。 ちなみに、そのレポートのコントロールソースを見てみると(=Trim([案件1] & [案件2] & [案件3] & [案件4] & [案件5])というようになっております。 どうしたら1つのラベルに1つのデーターのみを印字させることが出来ますでしょうか。
- ベストアンサー
- オフィス系ソフト
- アクセスについてです(レポート)
フォームからレポートを開く時に、 VBAでコントロールにコントロールソースを指定したいのですが どうやらエラーになってしまうようです。 フォームからではなく手動でレポートを開く場合は エラーにはなりません。 レポートのレコードソースは、T_testを指定していて、 その上にあるコントロールは非連結で指定したコントロールソースをvbaで入れたいです。 なので、レポートのLoadイベントで Private Sub Report_Load() Me.テキスト0.ControlSource = "8月" End Sub として、手動でレポートを開く分には問題ないのですが このコードのまま、フォームから Private Sub コマンド0_Click() DoCmd.OpenReport "レポート1", acViewPreview End Sub とすると、Me.テキスト0.ControlSource = "8月"で、 実行時エラー2191 印刷プレビュー時または印刷を開始した後は コントロールソースプロパティを設定できません。 のエラーが発生します。 フォームから Private Sub コマンド0_Click() DoCmd.OpenReport "レポート1", acViewDesign End Sub とすると、レポートのLoadイベントが発生しませんでした。 ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- アクセスのレポートについて
アクセスでテーブルAのデータをレコードソースとするレポートAを作成したのですが、レポートAのなかにテーブルBのレコードソースを追加することは可能でしょうか。 また一からレポートを作り直さずにすむ方法が知りたいのですが。
- ベストアンサー
- オフィス系ソフト
お礼
ppyama様、ご回答ありがとうございます。 環境を記載せずに申し訳ありません。 ACCESSは2000です。 Xだけでやってみましたがダメでした。。。。 何が原因でしょうか、、、