OSは98SEでACCESS2000を使用しています。

Aという帳票フォームとBという単票フォームがあります。
A帳票フォームには製造指示日、原料番号、原料種類、原料重量という項目があり、データが表示されています。

B単票フォームには製造指示日、原料番号、原料種類、原料重量、開始日時、労務時間等A帳票フォームの詳細があります。

A帳票フォームのデータ1をクリックすると、Bという単票フォームに移動してデータ1の詳細が表示される様にしたくていろいろやってみようと思ったのですが、どの様にしたらよいかさっぱりわかりません。
どなたか教えていただけないでしょうか。
簡単なVBAはわかりますが、やさしく教えていただけるとうれしいです。
どうぞよろしくお願いいたします。

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

A 回答 (4件)

コマンドボタンのウィザードを使いましょう。



1.A帳票フォームの詳細セクションにコマンドボタンを配置しする。
2.(ウィザードが立ち上がる)
3.フォームを開くを選択しB単票フォームを選ぶ
4.特定のレコードを表示するを選択し
5.どのカラムで関連付けるか選択する。

生成されたコマンドは以下のようになります。
------------------------------
Private Sub コマンド1_Click()
On Error GoTo Err_コマンド1_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "B単票"

stLinkCriteria = "[XXXXX]=" & "'" & Me![XXXXX] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_コマンド1_Click:
Exit Sub

Err_コマンド1_Click:
MsgBox Err.Description
Resume Exit_コマンド1_Click

End Sub
---------------------------------------
    • good
    • 0
この回答へのお礼

storkさん回答ありがとうございます。
また、わかりやすい説明で助かりました。
早速使わせていただきました。
自分の中で、さっぱりわからないこともあり難しく考えていたので、
Storkさんの回答をいただいたときは、えっ?これでできるの?というかんじでしたf^^;
本当に助かりました、今後ともよろしくお願いいたします。
ありがとうございました。

お礼日時:2001/08/21 18:22

補足します。


サブフォームの作り方
・新規作成からフォームウィザードで必要なテーブルを選択する。
・必ず単票形式で作成する。
・サブフォームをデザインビューで開けて、フォームのプロパティ
の中から書式→既存のビューで「データシート」を選択します。

メインの作り方
・新規作成→デザインビューで新たにメインフォームを作成。
・デザインビューでツールボックスからサブフォーム/サブレポート
を選択し貼り付けるサブフォームのプロパティでデータのソースオ
ブジェクトを先に作ったサブフォーム名を選択する。

原料番号が単票形式だと1テキストボックスだけになるのでプロパ
ティのイベントのダブルクリック時に↓を記述する。

Private Sub 番号_DblClick(Cancel As Integer)

Dim lngID As Long

lngID = Me.原料番号.Value 'フォームの原料番号フィールドの値を変数に格納
DoCmd.Close acForm, "フォームA" 'Aのフォームを閉じます。
DoCmd.OpenForm "フォームB", acNormal, , "原料番号=" & lngID
'フォームBを開く際にフォームAの原料番号とフォームBの原料番号を「=」にする。

End Sub

これでWクリックした原料番号がフォームBに返されます。
上記の記述は応用が利きます。ので色々使って見てください。

もし間違っていたら追記してください。
    • good
    • 0
この回答へのお礼

補足ありがとうございます。
初心者な私にはちょっとわからないところがあったのですがとても参考になりました。
今回は急いでいることもあり、storkさんの方を使わせていただこうと思います。
また、教えていただいたやり方を自分なりに勉強させていただき、後々活用させていただこうと思ってます。
本当にありがとうございました。

お礼日時:2001/08/21 18:14

詳しい状況がわからないので


簡単な検索閲覧方法を記述します。

1.帳票フォームにフォームフッターを右クリックから選択して付
けます。そこにコンボボックスを付け原料番号を検索キーとして
プロパティの『データ』の値集合ソースを「...」から選択し原料
番号「元テーブル名」に設定します。
『書式』の列数を2にして、列幅を1cm;2cmにして、リスト幅を4cmに
します。
↑でコンボボックスが完成し選択も出来るはずです。
まだ連結していませんので↓

Private Sub 移動先_AfterUpdate()

DoCmd.ShowAllRecords
DoCmd.GoToControl "原料番号"
DoCmd.FindRecord Me![移動先], acAnywhere, , acDown

End Sub

フォームを「デザインビュー」に戻し、[移動先]コンボボックスの
[更新後処理]イベントプロシージャに記述します。
以上が簡単な検索方法です。
この後に前に記述した↓

>Dim lngID As Long

>lngID = Me.id.Value 'フォームのidフィールドの値を変数に格納
>DoCmd.Close’Aのフォームを閉じます。
>DoCmd.OpenForm "テストB", acNormal, , "id=" & lngID
> 'OpenFormの第4引数に抽出条件をセットします。

>解説するとidというテキストBoxを付けてあげてキーとします。
>それを元に同じ内容のBのFormを開くことが出来ます。

を連動させると次フォームが開けます。
(例)
Private Sub 移動先_AfterUpdate()
Dim lngID As Long

DoCmd.ShowAllRecords
DoCmd.GoToControl "原料番号"
DoCmd.FindRecord Me![移動先], acAnywhere, , acDown
'↑必要があればのお話です。
lngID = Me.原料番号.Value 'フォームの原料番号フィールドの値を変数に格納
DoCmd.Close acForm, "フォームA" 'Aのフォームを閉じます。
DoCmd.OpenForm "フォームB", acNormal, , "原料番号=" & lngID
End Sub

正しい方法では無いと思いますが、最初に覚えた方法なので・・・ご了承ください。
上記の方法を転用すると仮定してクリックした居場所の「クリック時イベント」に
記述すれば使えるかと・・・思います。



もしそれ以上をご希望ならばサブフォームを使用する方法が効率的
だと思います。
(例)サブフォームを作る方法
1.TBL・クエリをデータシートで作成しておきます。
2.新しいフォームをデザインビューから作成しツールボックスから
サブフォーム/サブレポートを選択し最初に作成したサブフォームを
選択します。
3.検索キーもしくはサブフォーム内のクリック動作で次フォームに
移動するのが良いと思います。
※ただし、説明がだいぶ長くなりますのでご希望であれば追記して下さい。
注意)自信はありませんので・・・。
    • good
    • 0
この回答へのお礼

丁寧なアドバイスありがとうございます。
早速試して見たいと思います。
不明な点等また質問させてください。

お礼日時:2001/08/21 14:09

よくわからないけれど、


フォーム選択    → デザインクリック → プロパティ表示 →
イベントタブクリック→ クリック時...ボタンクリック
で、
コードビルダを立ち上げて、

データ1_click()
show B

じゃだめですか?
Aを見せたくないなら

  hide A

とか・・・。

もっと簡単な方法があるのかなぁ?
全然やりたいこと違ったらごめんなさい。
    • good
    • 0
この回答へのお礼

早速のアドバイスありがとうございます。
早速試してみたいとおもいます。
また、よろしくお願いいたします。

お礼日時:2001/08/21 12:59

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

関連するカテゴリからQ&Aを探す

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

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

Qレポートの書き方

経営学部の大学一回生です。冬休み初めてレポートの課題が出たのですが、書き方が全くわかりません。2000字で現代企業の人材育成と職務拡充について企業例を1つ説明しなさい。なんですが書き方のコツや使ってはいけない記号等ありましたら教えてください。

Aベストアンサー

有名企業をひとつ選んで、公式ホームページで公表している情報と、リクルート等の人材募集広告を比較してはいかがでしょうか。矛盾点があるようなら、ニヒリ、ですよね。同業他社との比較も面白いと思います。

また、企業の内情を知りたければ、図書館でビジネス系雑誌を読みあさるのが良いかと思います。そのうち、何かネタが見つかるでしょう。

株式会社を表す「(株)」や、項目ごとの冒頭に新聞等で使われている「(1)、(2)」などは、機種依存文字といってWindows以外のPCでは文字化けを起こしますので、印刷ではなくデータ形式での提出を求められているのであれば、使ってはいけません。また、半角カナ(横幅が半分のカタカナ)は、最も嫌われる機種依存文字です。

Q単票フォームにあるタブのサブフォーム

Access2013 vba
単票フォームFormAがあり、そこにタブTabBを配置します。
そのタブの中に、サブフォームフレームSubFmFrameを配置

このフレームの中に、サブフォーム SubFormがあるとします。
その時、サブフォームのイベントで何かの処理をスル場合に、自分のフォームのフィールドの値を取得するのには、親フォームから参照したやり方をしなくてはいけないのでしょうか。

その場合の書き方がわかりません。
サブフォームから、Set objP = Me.Parent
としても、エラーになります。

親フォーム:FormA
タブ:TabB
サブフォームフレーム:SubFmFrame
サブフォーム名:SubForm

宜しくお願いします。

Aベストアンサー

「SubForm」のフィールドのどれかのフィールドの
ダブルクリックなどで、
 msgbox me.parent.name
などとすれば、メッセージボックスでは
「FormA」が表示されますが、これは
あくまでも「SubForm」でのイベントなので
当然ながらコードは「SubForm」に書き込みます。
同様にして、

>サブフォームのイベントで何かの処理をスル場合に、
>自分のフォームのフィールドの値を取得するのには

の場合も、コードは「SubForm」に書き込みます。
たとえば、「SubForm」にボタンを設定して、
そのクリックイベントで、

msgbox Me.Controls("フィールド名").Value

とすれば、現在「SubForm」でカレントになっている
レコードの「フィールド名」の値が表示されます。

Q中学の理科の実験レポートの書き方・・・

中学の理科の実験レポートの書き方が詳しくのっているサイト教えてください。  例などあると助かります。

Aベストアンサー

http://www.kyoto-su.ac.jp/~oda/essay1.html

http://www.info.kochi-tech.ac.jp/hama/lab1/report.html

http://www.cs.is.saga-u.ac.jp/lecture/report.html

上の3つは、ちょっとよんでみるといいですよ。

参考URLのが、わかりやすいとおもいますよ。

参考URL:http://www.mitene.or.jp/~minowa/rika/note/noteindex.htm

Qクエリを元に単票形式のフォームを作成したい。

初歩的な質問ですみません。
期日切れのレコードだけを抽出するクエリを作成し、
それを単票形式のフォームで作成しようとしたのですが、作成できません。

手順は、
(1)フォームの新規作成をクリック
(2)オートフォーム:単票形式を選択
(3)元となるテーブルまたはクエリの選択:該当のクエリを選択
(4)OKをクリック

…しかし、何も起こりません。

原因は、抽出すべきレコードが無いからかと思い、
抽出条件に該当したレコードを作成しましたが、同じ結果でした。
一体、何が原因なのか分からず、皆さんに相談させていただきました。
よろしくお願いします。

Aベストアンサー

> フィールド数は4つなので、多くない思うのですが。。。
ふむ。。多いというか、少ないですね (^^ゞ

では、

[ACC2000] Microsoft Access ウィザードを開始しても何も起動しない
http://support.microsoft.com/default.aspx?scid=kb;JA;242218

こちらを確認してください。

参考URL:http://support.microsoft.com/default.aspx?scid=kb;JA;242218

Q大学のレポートの書き方について質問します。手書きで書かなければならない

大学のレポートの書き方について質問します。手書きで書かなければならないレポートなのですが、書き方や、筆記用具は何を使うなど詳しくのっているサイトはありますか?

Aベストアンサー

基本的には市販のレポート用紙にボールペンで書けば問題ないと思いますが、先生によってA4またはB5の指定があったり、鉛筆でもよかったりするのでそれに従えばいいと思います。
http://www.report.gusoku.net/kihon/reportyousi.html
先輩の過去レポが手に入ると書き方のお手本になるので楽なんですけどね。

Q■緊急■Access2002 単票形式のフォームでデータが入力できない!

お願いします。

単票形式のフォームにある入力項目は以下の通りです。

売上ID(オートナンバー)
氏名(テキスト型)
商品名(テキスト型)
数量(数値型)
売上日(日付型)

フォームを開いて、新しいレコードを入力する際に、
氏名と商品名は入力できるのですが、
数量、売上日が入力できません。
フォーカスは移動するのですが、、、、
原因がわからず困っています。

どうかよろしくお願いいたします!

Aベストアンサー

・対象になるテーブルはひとつだけですか?
・フォームの「数量」と「売上日」の
 テキストボックスのプロパティ
 「編集ロック」が「はい」になっていませんか?
・フォームウィザードで別のフォームを作成して
 確かめてみてはどうでしょうか?

Qレポートの書き方

こんばんは。
冬休みの課題で、「美術館に行ってレポートを書く」というものが出ました。
ですが、あまりレポートを書いたことが無いので書き方がわかりません。
アイヌ文様の美というのに行こうと思っているんですが・・・
やはり写真もレポートには入れた方がいいでしょうか?
レポートの書き方に次いでわからなくて困っています。
美術が好きなので、良いレポートを書きたいと思っています。
どうか、書き方を教えてください。お願いいたします。

Aベストアンサー

美術大学に在籍しています。ご参考程度に、私の経験からアドバイスをさせて頂きます。


全体の構成としては
(1)表紙(主題タイトル)
(2)本文

主題について、どういうところが自分にとって魅力的なのか、
それにはどういう由来や歴史があるのか、何を意味するのか など
いくつかの項目に分けて考えると書きやすいと思います。

例えば…「印象派について モネの魅力」が主題だとすると
1.印象派とは
2.モネの生きた時代とその功績
3.代表作『睡蓮』の連作とその変化
(以下必要なだけ項目を設ける。最終的に、
ある程度自分の主観を入れた論述があったほうが「美術館に行って」という部分が活かされるので、良い と
私は思います。)

…など
主題の背景(アイヌの文化でしたら、アイヌ民族のことなど)から
徐々に幅を狭めていって、主題を浮彫りにしていくと読み手がすんなり入り易く、
印象に残るレポートができるのではないでしょうか。
又、写真は効果的に入れていったほうが良いと思います。
レポートの読み手はその内容について知らないわけですから
いわば教科書や新聞のようによりわかりやすく情報を伝えることを考えると…
あったほうが、親切なように感じます。

(3) まとめ
上にも記述しましたが、「美術館に行って」ということなので
美術館に対する感想、今回レポートを作ったことによって気付いたことや良かったことを書き、あとがきとします。
ある程度の長さがあったほうが説得力があると思います。
又、最後に
参考にした文献(本やWEBページ)について「参考文献」として記述しておきます。(箇条書きで大丈夫です)
本はタイトルとISBN、WEBはタイトルとURLを記述します。
版権的な問題のためもありますが、これだけ色々調べました というアピールにも繋がると思います。


私は以上のような手順で、レポートを書いています。
わりと高評価を頂くこともあるので…ある程度参考にして頂けると思います。

余談ですが
「美術館の入場券の半券を
表紙かはじめのほうに展示タイトル・日時・場所 の明記と共に貼って提出しなさい」という指定で
レポートを作ったことがありまして…
指定が無くてもそうすると、なんだかそれらしくなる気がしますので、
ちょっと使える手かもしれません。


レポート制作 頑張ってくださいませ!
微力ながらお力添えできていましたら幸いです。

美術大学に在籍しています。ご参考程度に、私の経験からアドバイスをさせて頂きます。


全体の構成としては
(1)表紙(主題タイトル)
(2)本文

主題について、どういうところが自分にとって魅力的なのか、
それにはどういう由来や歴史があるのか、何を意味するのか など
いくつかの項目に分けて考えると書きやすいと思います。

例えば…「印象派について モネの魅力」が主題だとすると
1.印象派とは
2.モネの生きた時代とその功績
3.代表作『睡蓮』の連作とその変化
(以下必要なだけ項目...続きを読む

Qトグルボタンの帳票フォーム連動って・・・

access2007で・・・
サブフォーム(帳票フォーム)に表示させているテーブルにトグルボタンを連動させたいのですが・・・
イメージ的には以下になります。

例えば
(Table_A)
カラム1    | カラム2 | カラム3 | カラム4 |カラム5
トグルボタン | 1998年 |  田中 | 35歳 | 東京
トグルボタン | 1999年 |  佐藤 | 56歳 | 神奈川
トグルボタン | 2000年 |  吉田 | 21歳 | 埼玉
トグルボタン | 2001年 |  伊藤 | 25歳 | 千葉
トグルボタン | 2002年 |  高橋 | 32歳 | 東京

・・・みたいな感じで、作ってはみたのですが、トグルボタンを押すと、全部が押されてしまいます・・・

無理ですかね~?

Aベストアンサー

> ちなみに、トグルボタンが押されている所のキャプションを変更したいのですが、どういうふうにやるのでしょうか?

こんなところですかね。
http://penhagi.com/access/ota2000/53.htm

Qレポートの書き方を教えて下さい。

今日、学校でレポートの宿題を出されたんですが、今までにレポートを書いた事がありません。なのでどんな事でもいいので簡単なレポートの書き方を教えて下さい。宜しくお願い致します。

Aベストアンサー

とりあえず提出するレポートには表紙をつけましょう。
用紙は中身のものと同じものでかまいません。

表紙に「課題名」、「学年・組・出席番号」、「氏名」をかきます。

レポートの宿題、とありますがどのようなレポートなのか解らないので中身についてはアドバイスのしようがありません。

提出時には、レポート用紙がバラバラになってしまわないようにしっかりとホッチキスなり何なりでとめましょう。

Q帳票フォームに全レコードを表示できない

アクセス初心者ですが宜しくお願いします。

アクセス2002を使って在庫DBを作っています。
レコードセットで抽出集計した全レコードを、「帳票形式」のフォームにすべて表示させたいのですがうまくいきません。フォームのテキストボックスは全て非連結にしてあります。

考えているのは次のような手順です。
1.表示したい期間の「開始日付=kaisi」と「終了日付=owari」を入力
2.「在庫場所」コンボボックスで表示したい在庫場所コードを選択
3.選択された在庫場所コードによって、SELECT~CASEステートメントで該当する在庫場所テーブルからデータを抽出集計し、フォームに表示させる

コードは次の通りです。

Private Sub 在庫場所_AfterUpdate()
Dim cnc As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim cmd As New ADODB.Command
Dim zaiko As Variant
Dim kaisi, owari As Date

Set cnc = CurrentProject.Connection
Set cmd.ActiveConnection = cnc

kaisi = Me!期間開始
owari = Me!期間終了
zaiko = Me!在庫場所

Select Case zaiko

Case "1"
cmd.CommandText = "SELECT 物品ID, Sum(仕入) AS 仕入計, Sum(払出) AS 払出計 FROM T_薬局受払 " & "WHERE (日付) Between #" & kaisi & "# And #" & owari & "# " & "GROUP BY 物品ID;"

Set rst = cmd.Execute
Do Until rst.EOF
 Me!物品ID = rst!物品ID
 Me!受入計 = rst!仕入計
 Me!払出計 = rst!払出計
 rst.MoveNext
Loop
rst.Close: Set rst = Nothing

Case "2"・・・・・・・・・・

End Select
cnc.Close: Set cnc = Nothing
End Sub

実行しますと、フォームには「最後のレコード」しか表示されません。
フォームプロパティの「規定のビュー」は帳票になっています。
よろしくお願いします。

アクセス初心者ですが宜しくお願いします。

アクセス2002を使って在庫DBを作っています。
レコードセットで抽出集計した全レコードを、「帳票形式」のフォームにすべて表示させたいのですがうまくいきません。フォームのテキストボックスは全て非連結にしてあります。

考えているのは次のような手順です。
1.表示したい期間の「開始日付=kaisi」と「終了日付=owari」を入力
2.「在庫場所」コンボボックスで表示したい在庫場所コードを選択
3.選択された在庫場所コードによって、SELECT~CAS...続きを読む

Aベストアンサー

[ID][数量]
1,100
2,200
3,300

というテーブル[Test]を<帳票フォーム>に表示させるのに、

Private Sub Form_Load()
  Dim cnc As New ADODB.Connection
  Dim rst As New ADODB.Recordset
  Dim cmd As New ADODB.Command

  Set cnc = CurrentProject.Connection
  Set cmd.ActiveConnection = cnc

  cmd.CommandText = "SELECT * FROM TEST;"
  Set rst = cmd.Execute
  With rst
    Do Until .EOF
      Me.ID = .Fields("ID")
      Me.数量 = .Fields("数量")
      .MoveNext
    Loop
  End With
  rst.close
  cnn.close
End Sub

というコードでは、当然のように最後のレコードしか表示されません。
原因は、フォームの最初のレコードに上書きしているからです。
そこで、最初のレコードを書き込んだら新規レコードに移動するようにコードを書き換えます。


    Do Until .EOF
      Me.ID = .Fields("ID")
      Me.数量 = .Fields("数量")
      SendKeys "+({+})", False
      DoEvents
      .MoveNext
    Loop

結果は、

3,300
3,300
3,300

この場合は、非連結タイプに起因する不具合です。
以上のような検討の結果、一旦、Select文で取得した値を一時テーブルに書き込んで連結モードで表示するのが手であることが判ります。

Private Sub Form_Load()
  Dim cnc As New ADODB.Connection
  Dim rst As New ADODB.Recordset
  Dim cmd As New ADODB.Command

  Set cnc = CurrentProject.Connection
  Set cmd.ActiveConnection = cnc

  cmd.CommandText = "SELECT * FROM TEST;"
  Set rst = cmd.Execute
  With rst
    cmd.CommandText = "DELETE FROM TEMP;"
    cmd.Execute
    Do Until .EOF
      cmd.CommandText = "INSERT INTO TEMP " & _
               "(ID, 数量) VALUES (" & _
               .Fields("ID") & ", " & _
               .Fields("数量") & ");"
      cmd.Execute
      .MoveNext
    Loop
  End With
  Me.Requery
End Sub

これで、首尾よく、

1,100
2,200
3,300

と表示されます。

[ID][数量]
1,100
2,200
3,300

というテーブル[Test]を<帳票フォーム>に表示させるのに、

Private Sub Form_Load()
  Dim cnc As New ADODB.Connection
  Dim rst As New ADODB.Recordset
  Dim cmd As New ADODB.Command

  Set cnc = CurrentProject.Connection
  Set cmd.ActiveConnection = cnc

  cmd.CommandText = "SELECT * FROM TEST;"
  Set rst = cmd.Execute
  With rst
    Do Until .EOF
      Me.ID = .Fields("ID")
      Me.数量 = .Fiel...続きを読む


人気Q&Aランキング

おすすめ情報