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

ACCESSのサブフォームをVBAでテーブルに入力するにはどのようにしたら良いのでしょうか?
イメージ的にはボタンをクリックするとメインのフォームとサブフォームの両方のデータが、別々のテーブルに入力されるようにしたいのですが・・・

ご回答ください。お願い致します。

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

A 回答 (1件)

もう少し詳しく説明が欲しいのですが・・・



>メインフォームとサブフォームが存在してA・Bのテーブル両方に同じ内容が
Upされればよいのでしょうか?
>それともA・Bの片方にメインの内容反対側にサブの内容がUpされれば良いの
でしょうか?
どちらにせよDAOを使用します。2000以上だったらADOでも可能ですけど・・・
一応簡単なDAO例を書いておきます。
>メインフォームのテキストボックスAの内容をA_TBLのテキストAレコードにUp
するには↓

Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim sStrSql As String
Set dbs = CurrentDb
sStrSql = "SELECT A_TBL.テキストA, FROM A_TBL"
Set rst = dbs.OpenRecordset(sStrSql)
With rst
Do Until .EOF
.Edit
.Fields("テキストA") = Me.テキストA.Value
'フィールド"テキストA"にテキストボックスAの値をUp
.Update
.MoveNext
Loop
.Close
End With
dbs.Close
'詳細が分かればもう少し説明できます。

この回答への補足

説明不足で申しわけありませんでした。
A・Bの片方にメインの内容反対側にサブの内容がUpしたいと思っております。
あと、A・B両方の関連性を持たすためのキーは、同じ物を両方にUpさせたいと考えております。
よろしく、お願い致します。

補足日時:2002/04/01 09:40
    • good
    • 0

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

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

Qサブフォームからメインフォームに移動

 現在ACCESS2000を使用してシステムを作成しております。のですが、サブフォームからメインフォームの特定のコントロールに移動したいと思っています。しかし、ちょっとやり方がわかりません。わかる方よろしくおねがいします。

Aベストアンサー

サブフォーム側のVBAで移動ということですよね?

メインのコントロール名を[txtMainBox]とすると、

Parent!txtMainBox.SetFocus

ですね。
サブフォーム側のコードです。

QAccessのメインフォームとサブフォーム

メインフォームのコマンドボタンからサブフォームのテーブルを操作することは可能でしょうか?

【メインフォーム】
   日付[_2006/2/3]   『回数A(コマンドボタン)』
   品物[_りんご]    『回数B(コマンドボタン)』
   製作所[_青森]

 【サブフォーム】
    社員コード 所属   氏名   回数A 回数B
    [_1234]  [_福島] [_山田] [_1]  [_0]
    [_2345]  [_山形] [_佐藤] [_1]  [_0]

とあるときに、『回数B(コマンドボタン)』をクリックすると、サブフォームの社員コード
「1234」と「2345」の回数Bに「1」(回数B+1)を入力し、回数Aを「0」(回数A-1)
としたいのです。

どのようにすればいいのでしょうか?
よろしくお願いします。

Aベストアンサー

VBAが使える(参照設定でVBを設定等)のであれば、「回数B」ボタンのプロパティのイベントのクリック時のイベントプロシージャー内に、
Me![サブフォーム名]![回数B] = Me![サブフォーム名]![回数B]+1
Me![サブフォーム名]![回数B] = Me![サブフォーム名]![回数B]-1
と命令することで出来ます。

QAccess メインフォーム サブフォームにて

お世話になります。

Accessにて
メインフォームにコマンドボタンを置いて、クリックするとサブフォームのレコードが
次に行くようにしたいのですが、

コマンドボタン クリック
Forms![メインフォーム]![サブフォーム名].Form!フィールド名.SetFocus
DoCmd.GoToRecord , , acNext

メインフォームとサブフォームのレコードが次に行ってしまいます。
サブフォームだけ次のレコードに行くには、どのようにすれば良いのでしょうか。

分かる方教えて下さい。
宜しくお願いします。

Aベストアンサー

>Forms![メインフォーム]![サブフォーム名].Form!フィールド名.SetFocus


Forms!FMain!埋め込み0.SetFocus
DoCmd.GoToRecord , , acNext

以下の[サブフォーム表示コントロール名]はサブフォームそのものの
名前でなく、デザインビューでサブフォームを表示するために設定
するコントロールの名前で、初期値は[埋め込み0]のような名前
であることに留意をしてください。もしサブフォームと同じ
名前に設定しているならば問題はありませんが。

以上を踏まえて、たとえば、

Forms![メインフォーム]![サブフォーム表示コントロール名].SetFocus
DoCmd.GoToRecord , , acNext

これで、サブフォームの次のレコードに移動します。
もし、質問の中の特定のフィールドにフォーカスを
当てたいのであれば、移動後にその特定のフィールドに
フォーカスを当てればいいので、

Forms![メインフォーム]![サブフォーム表示コントロール名].SetFocus
DoCmd.GoToRecord , , acNext
Forms![メインフォーム]![サブフォーム表示コントロール名].Form![フィールド名].SetFocus

これで、レコードを移動したときにフォーカスは
特定のフィールドに当たっています。

>Forms![メインフォーム]![サブフォーム名].Form!フィールド名.SetFocus


Forms!FMain!埋め込み0.SetFocus
DoCmd.GoToRecord , , acNext

以下の[サブフォーム表示コントロール名]はサブフォームそのものの
名前でなく、デザインビューでサブフォームを表示するために設定
するコントロールの名前で、初期値は[埋め込み0]のような名前
であることに留意をしてください。もしサブフォームと同じ
名前に設定しているならば問題はありませんが。

以上を踏まえて、たとえば、

Forms![メインフォーム]![サブフォー...続きを読む

Qサブフォームからメインフォームの絞込をしたい

サブフォームの項目からメインフォームの絞込をおこないたいのですが、うまくいきません

やりたいこととデータベースの状況は以下のとおりです

メインフォームに「会社名」があり、サブフォームにその会社の「ブランド名」(一社に対し複数存在する)とその「業種」(1つのブランドにつき1つ)がある。

メインフォーム----会社名(テキスト)
サブフォーム--ブランド名(テキスト)----業種(コンボボックス)

【やりたい事】
サブフォームにある業種をメインフォーム上のフィルタ用コンボボックスで選択し、選択した
業種を持つ会社名のみ表示したい(たとえばケーキを扱うA社とD社、Z社のみメインフォームで表示するようにする)

【コード】
現在以下のようなコードを作成しています。
テキスト欄に「業種」を打ち込み、コマンドボタンを押して絞り込む
※本当はコンボボックスで選択したいのですが・・・

Private Sub コマンドボタン名_Click()
Me![サブフォームのパーツ名].Form.Filter = "[コンボボタン-業種] Like '*" & Me.テキスト欄 & "*'"
Me![サブフォームのパーツ名].Form.FilterOn = True
Exit_コマンドボタン名_Click:
Exit Sub
End Sub

作成しましたが、レコードを移動するたびにパラメータ入力のポップアップがでてきます
フィルターもかからず、絞込が全くできていません

どなたか詳しい方ご教授よろしくお願いいたします

サブフォームの項目からメインフォームの絞込をおこないたいのですが、うまくいきません

やりたいこととデータベースの状況は以下のとおりです

メインフォームに「会社名」があり、サブフォームにその会社の「ブランド名」(一社に対し複数存在する)とその「業種」(1つのブランドにつき1つ)がある。

メインフォーム----会社名(テキスト)
サブフォーム--ブランド名(テキスト)----業種(コンボボックス)

【やりたい事】
サブフォームにある業種をメインフォーム上のフィルタ用コンボボックスで選択し...続きを読む

Aベストアンサー

メインとサブフォームは、会社名でリンクされているのでしょうか?


以下が参考になると思います

サブフォームのフィールドを対象にメインフォームにフィルタをかける
http://hatenachips.blog34.fc2.com/blog-entry-235.html

QACCESS VBA メインフォーム及びサブフォームのフィルタのクリア

ACCESS VBA初心者です。ネット上の書き込みを参考に下記のようなフォームを作成しデータ検索したいのですが、うまくいかず、ネット上の情報を参考に色々トライしてみたのですが解決できません。

顧客名簿で顧客(会社)名で検索し、当該顧客の関係者(複数)をサブフォーム(帳票形式)に表示しています。さらにサブフォームに表示された一覧から、氏名、所属部署等で検索をかけています。
ところが、メインフォームに設けたテキストボックスで検索した結果をクリアするとき、サブフォームの検索を掛ける前だと、クリアできるのですが、サブフォームの検索を掛けた後では、メインフォームで検索した会社名をクリアできません。サブフォーム内の再検索、クリアは何度でもできます。
サブフォームの検索を掛けた後でも、メインフォームの検索値をクリアする方法をご教示ください。
各種作業のコードは下記の通りとしています。

メインフォームの検索コード
Dim dbs As Database
Dim qdf As QueryDef
Dim rst As Recordset
Set dbs = CurrentDb
Set qdf = dbs.QueryDefs("クエリ名")
With qdf
.Parameters("[forms]![フォーム名]![検索用フィールド名]") = Forms!フォーム名!フィールド名
Set rst = .OpenRecordset
.Close
End With
rst.Close
DoCmd.OpenQuery "クエリ名", acViewNormal
DoCmd.Close acQuery, qdf.Name, acSaveYes

メインフォームの検索クリアコード 
 Me.検索用フィールド名 = ""
  Dim dbs As Database
Dim qdf As QueryDef
Dim rst As Recordset
Set dbs = CurrentDb
Set qdf = dbs.QueryDefs("クエリ名")
With qdf
.Parameters("[forms]![フォーム名]![検索用フィールド名]") = Nothing
Set rst = .OpenRecordset
.Close
End With
rst.Close
Me.[サブフォーム名].Form.Requery
 ※検索値をNullにしてFilterOn=True にする方法(下記サブフォーム内の検索クリアの方法)でも結果は同じでした。

サブフォーム内の検索コード
 Dim sFilter As String
sFilter = vbNullString
sFilter = "検索適用フィールド名Like '" & Me.サブフォーム内の検索用フィールド名.Value & "'"
Me.サブフォーム名.Form.Filter = sFilter
Me.サブフォーム名.Form.FilterOn = True

サブフォーム内の検索クリアのコード
 sFilter = vbNullString
Me.サブフォーム内の検索用フィールド名 = vbNullString
Me.サブフォーム名.Form.Filter = sFilter
Me.[サブフォーム名].Form.FilterOn = True
Me.[サブフォーム名].Form.Requery

よろしくお願いします。

ACCESS VBA初心者です。ネット上の書き込みを参考に下記のようなフォームを作成しデータ検索したいのですが、うまくいかず、ネット上の情報を参考に色々トライしてみたのですが解決できません。

顧客名簿で顧客(会社)名で検索し、当該顧客の関係者(複数)をサブフォーム(帳票形式)に表示しています。さらにサブフォームに表示された一覧から、氏名、所属部署等で検索をかけています。
ところが、メインフォームに設けたテキストボックスで検索した結果をクリアするとき、サブフォームの検索を掛ける前だ...続きを読む

Aベストアンサー

ACCESS2007でしたか....
それだと
https://support.microsoft.com/ja-jp/kb/941800
が原因かもしれません....


人気Q&Aランキング

おすすめ情報