サブフォームの作成が出来ません。

注文データをレポート印刷をしたいのですが
同日に2回注文が入ると(例えば自家用とギフト用など)
1つのヘッダーに対し2つの明細が表示されてしまいます

フィールド「顧客ID」が同一で尚且つ別のフィールド「注文番号」が
同一という2つの条件に合ったもののみサブフォームに表示
したいのですが、方法がわかりません。

質問の仕方もわかりにくくてすみませんが教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

i-haradaです。



サブフォームの質問でしょうか?
それとも、レポートなんでしょうか?

どういう構造でどのようなものにしたいか、もう一寸詳しくおねがいします。
私ですと大変難しい質問だと回答に困るかもしれませんが、他にも沢山いらっしゃいますから、お答えいただけると思いますよ。

ではでは。
    • good
    • 0
この回答へのお礼

すみませんでした。
補足を書いたものを改めて質問いたしましたので
是非とも、ご指導ください。

よろしくお願い致します。

お礼日時:2001/08/12 20:20

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qアクセス 正味の算出 フィールド1 オートID フィールド2 顧客No フィールド3 商品名 フィー

アクセス 正味の算出

フィールド1 オートID
フィールド2 顧客No
フィールド3 商品名
フィールド4 単価

このようなテーブル構成で、顧客Noでグループ化して、IDのカウントした結果が1、2となります。
その際、1の場合は1、2の場合は0.5と別フィールドに記載する方法を教えて下さい。

Aベストアンサー

>本当はIDのカウントが2以下なら1を3以上なら999(数値で0、1以外なら何でも良いです)

IIf([IDのカウントした結果のフィールド名]>=3,999,1)

QACCESS サブフォームのフィールドにカーソルをあてる

ACCESS2003で、VBAで簡単なプログラムを作っています。

<やっていること>
・フォームAからフォームBを開きます。
・そのときにフォームAの番号と一致するデータをフォームBに表示します。
・フォームBにはサブフォームCが埋め込んでいます。

このサブフォームCの中のフィールドDにカーソルが入っているようにしたいのですが、
Forms!サブフォームC!フィールドD.setfocus

としたら、「カレントレコードには、フィールドDという名前のフィールドはありません」というエラーがでます。

フィールドDというフィールドは存在しています。

このような場合、どのように記述するのがよろしいのでしょうか。

よろしくお願いします。

Aベストアンサー

次の方法でできるように思いますが。。。。。
VBAではなくてプロパティ利用の方法ですが・・・


・フォームBでのサブフォームCを埋める場所(項目)の
 プロパティで、「タブ移動順」を 0 にする
・フォームC(項目)の フィールドDの
 プロパティで、「タブ移動順」を 0 にする

--------------------------------------------------
参考までですが
サブフォーム内の項目指定は

[FORMS]![親フォーム名]![サブフォーム名].[FORM]![フィールド名]
 この後に必要なVBA命令を書く

ここでのサブフォーム名とは親フォーム内で定義した項目名を使う
で指名できると思います

Qサブフォームのフィールドの幅を変更したい。

アクセス2003です。

画像の様に、コマンドボタンを押したら
サブフォームの列(フィールド)の幅を変更することは可能ですか?

エクセルvbaで例えたら
Columns("A:A").ColumnWidth = 30
から
Columns("A:A").ColumnWidth = 10
へしたいです。

ご教授よろしくお願い致します。

Aベストアンサー

Me.サブフォームコントロール名![出金].ColumnWidth = 1000
とか。

Access2003 ということなら
Me.サブフォームコントロール名![出金].ColumnWidth = -2
もありかも。

詳細は VBE のヘルプで「ColumnWidth」プロパティを調べてください。

QAccess:サブフォームにクエリ表示⇒フィールドを絞り込みたい

Access2003 WinXP です。
フォームにサブフォームを置き、サブフォームのソースオブジェクトにクエリを参照しているデータシート形式のフォームを設定しています。
フォームに絞込み条件を選択するオプションボタン、表示するフィールドを選択するオプションボタンを配置し、
サブフォームへ表示するコマンドボタンを置いています。
この設定を選択した後コマンドボタンを押すと、クエリの中身を書き換えています。
で、実行すると、表示しない設定のフィールドには「Name?」という値が入ったフィールドがしっかり表示されてしまいます。
ソースオブジェクトにクエリ自体を設定すれば回避出来ますが、表示されたデータをダブルクリックするとその1レコードを表示する画面を更に開きたいと思っていますので、サブフォームにデータシート形式のフォームをセットするのがダブルクリックイベントを取得出来て良いかと思っています。
分かりにくい説明ですみません。
何か解決法を分かる方いらっしゃいましたら、お願いします。

Aベストアンサー

> データシート形式のフォームを

フォームでデータシート形式で表示する際には、テキストボックス名が項目となるようですので、
ベースのフォームを作る際にはフォームウィザードを使用し、表形式で作成すると、
テキストボックス名=フィールド名にしてくれます。
作る時には、全てのフィールドを表示するクエリから行います。

親フォームに配置したサブフォームコントロール名を「FSUB」と仮定します。
この「FSUB」に、自分(データシート形式のフォーム)が表示されているということにします。
データシート形式になると、制御はサブフォームコントロールのものとして扱います。
制御の中の ColumnHidden を使用します。

以下が処理例となります)

' 指定された名前が、レコードのフィールド名にあるか
' あれば False / なければ True
Private Function SetColumnVisible(sName As String) As Boolean
  Dim fld As Field

  SetColumnVisible = True
  For Each fld In Me.RecordsetClone.Fields
    If (fld.Name = sName) Then
      SetColumnVisible = False
      Exit For
    End If
  Next
End Function

' フォーム読み込み時
Private Sub Form_Load()
  Dim ctl As Control

  For Each ctl In Me.Section(acDetail).Controls
    Me.Parent.FSUB.Controls(ctl.Name).ColumnHidden _
      = SetColumnVisible(ctl.Name)
  Next
End Sub




フォームの「読み込み時」に、
詳細部分のコントロール名で、レコードのフィールド名にあるかチェックし、設定します。
Hidden と言っても、幅が0になるだけなので、
消えたと思った項目位置付近をいじると、ひょこひょこと出てきます。


Me.Parent.FSUB の記述は、自分の親のサブフォームコントロール名 としていますが、
Forms("親フォーム名").FSUB でも
Forms!親フォーム名.FSUB でも

※ テキストボックス名 <> コントロールソース名 なら
SetColumnVisible(ctl.Name) を SetColumnVisible(ctl.ControlSource) とすれば
対応できますが、データシートに表示される項目名は、テキストボックスの名前になります。

※ 表形式で作成したものでなければ、詳細部分にラベルが存在することがあるので、
処理対象のテキストボックスを識別するための工夫はしてみてください。
プロパティの タグ を使用するとか、、、

例えば、
連結しているテキストボックスを全部選択してから、タグ部分に REC と文字を入れて
これで判別すると、

Private Sub Form_Load()
  Dim ctl As Control

  For Each ctl In Me.Controls
    If (ctl.Tag = "REC") Then
      Me.Parent.FSUB.Controls(ctl.Name).ColumnHidden _
        = SetColumnVisible(ctl.Name)
    End If
  Next
End Sub

判別する範囲を、フォーム全体(In Me.Controls)に広げても対応できます。
前の書き方 In Me.Section(acDetail).Controls は、詳細部分にあるものになります。

動かなかったら、ドンドン修正してください。

> データシート形式のフォームを

フォームでデータシート形式で表示する際には、テキストボックス名が項目となるようですので、
ベースのフォームを作る際にはフォームウィザードを使用し、表形式で作成すると、
テキストボックス名=フィールド名にしてくれます。
作る時には、全てのフィールドを表示するクエリから行います。

親フォームに配置したサブフォームコントロール名を「FSUB」と仮定します。
この「FSUB」に、自分(データシート形式のフォーム)が表示されているということにします。
デ...続きを読む

Q別シートのフィールドから同一値検索、隣フィールド値取得の関数を教えてください。

■シート1
----------------
□分類□名 称□
----------------
|果物|りんご|
----------------
|果物|バナナ|
----------------
|果物|みかん|
----------------
|野菜|トマト|
----------------
|野菜|セロリ|
----------------
|野菜|レタス|
----------------

■シート2
----------------
□名 称□分類□
----------------
|りんご|  |
----------------
|トマト|  |
----------------
|バナナ|  |
----------------
|セロリ|  |
----------------
|みかん|  |
----------------
|レタス|  |
----------------

シート2の名称にてシート1の名称を検索して、シート2に分類を取得することは可能でしょうか。
よろしくお願いします。

■シート1
----------------
□分類□名 称□
----------------
|果物|りんご|
----------------
|果物|バナナ|
----------------
|果物|みかん|
----------------
|野菜|トマト|
----------------
|野菜|セロリ|
----------------
|野菜|レタス|
----------------

■シート2
----------------
□名 称□分類□
----------------
|りんご|  |
----------------
|トマト|  |
----------------
|バナナ|  |
----------------
|セロリ|  |
---------...続きを読む

Aベストアンサー

シート2のB2セルに次の式を入力して下方にオートフィルドラッグします。
=IF(OR(A2="",COUNTIF(Sheet1!B:B,A2)=0),"",INDEX(Sheet1!A:B,MATCH(A2,Sheet1!B:B,0),1))


人気Q&Aランキング

おすすめ情報