ひとつのデータベース内にあるテーブルでデータのリンク(共有)することは出来るでしょうか?
逆の言い方をすれば、あるフォームでデータを入力すれば対応する項目のあるテーブルにすべて入力されるか?いう意味です。
今構築しているデータベースであるテーブルに入力したデータがフォーム上で
正常に表示されずもうひとつあるテーブルに入力すると改善されます。
ちなみにllf関数でデータの抽出をしています。

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

A 回答 (2件)

ご質問の内容から推測すると、ミラーリングのようなことを行いたいのでしょうか?



VBAでレコードが更新されたら対応するテーブルのレコードも更新する処理を書く必要があるのではないでしょうか?
リレーションシップをはっているテーブル同士の主キーなら自動的に更新されるように出来ますが。
    • good
    • 0

>ひとつのデータベース内にあるテーブルでデータのリンク(共有)することは出来るでしょうか?



DBの知識はそれほどあるわけではありませんし、質問の内容から状況
見えませんが、上記のようなことをする意義が今一判りません。
DBの正規化に反することでデータの整合性を崩す元凶です。
通常はコード化してリレーションを貼ることで解決出来ると思います。

それから、Accessの「IIF関数」は色々とトラブルを起こします。
代表的な例としては、数字データ。参照先が数字のつもりでも
定義がテキストになっていると全て偽になってしまい条件が成立しません。
同様に見た目と型の定義が違うと条件が成立しません。
    • good
    • 0

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

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

QACCESSでフォームを使って、テーブルを参照、データ入力、データ更新をしたいのです

フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。

売上テーブル

 ID   商品コード  日付    金額 
 1    G1     20080101  532153
 2    G1     20080101  564281
 3    G1     20080301  538123
 4    J4     20080301  124531
 5    J4     20080302  125483

ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型

これを使い、
フォームではまず

レコードナンバーを入力画面
       ↓
レコード番号を入れると、そのレコードのデーターが画面に表示され、
その画面で修正可能
       ↓
 保存 ボタンで保存

という流れです。

レコードナンバーはIDを使おうと思っています。

データの量が莫大な為、コンポボックスなどは使えません。

できるだけ、VBAなどは使わずに作りたいです。

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

フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。

売上テーブル

 ID   商品コード  日付    金額 
 1    G1     20080101  532153
 2    G1     20080101  564281
 3    G1     20080301  538123
 4    J4     20080301  124531
 5    J4     20080302  125483

ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型

これを使い、
フォームではまず

レコードナンバーを入...続きを読む

Aベストアンサー

まずそのテーブルを基にしてフォームを作成します。
そのフォームのヘッダー部分にテキストボックスを配置後、一旦
上書き保存。
フォームのレコードソースを
SELECT *
FROM テーブル名 WHERE ID=[Forms]![フォーム名]![テキストボックス名]
とします。
次にテキストボックスの更新後処理に
Me.Requery
とすれば完成です。
フォームを開いてテキストボックスにID入力後エンターしてください。

保存に関しては、コマンドボタン作成後クリック時イベントに
DoCmd.RunCommand acCmdSaveRecord
とすれば良いでしょう。

この手のモノは検索すれば相当数ヒットするので、そちらを参考にされるのもよろしいかと。

Qアクセスでテーブル入力用のフォームを他のテーブルのレコードを参照しながら入力するには

こんにちわ
アクセスでテーブルのレコードを作成するのに
他のテーブルのレコードを引っ張ってきて
フォーム上で表示したいのですが
うまくいきません

たとえば、社員名テーブル(従業員番号と名前)
配属テーブル(従業員番号と営業所コード)
支社テーブル(支社名と営業所コードの上2桁)
営業所テーブル(営業所名と営業所コード)を作成しておきます

退職者が出るたびに
退職者テーブル用のフォームに
従業員番号を入力すると
フォーム上にその人の名前・支社名・営業所名が表示され
それを確認してから
その他のデータをその同じフォームに
入力したいのです
今、試しに作ったのは
テーブルに一度上書きしないとデータを引っ張ってこないの不便なのです

よろしくお願いします

Aベストアンサー

従業員番号・名前・営業所コード・支社名・営業所名を表示するクエリを作りそれを基にコンボボックスをフォーム内に作ります。
そのコンボボックスをコンボ1と名前を付けたとしてフォーム上の名前・営業所コード・支社名・営業所名の各フィールドにコンボボックスに表示される内容を出したい場合。
(従業員番号はコンボボックスを作る時に次のフィールドに保存するのところで従業員番号を指定しておいて)

Private Sub コンボ1_AfterUpdate()
名前 = コンボ1.Column(1)
営業所コード = コンボ1.Column(2)
支社名 = コンボ1.Column(3)
営業所名 = コンボ1.Column(4)
End Sub
上記の記述を更新後処理にすれば出来ます。
試してみてください。

QACCESSのフォームで入力したデータをテーブルに追加したい

初歩的な質問だとは思いますが、自分の思うようにならず困っています。

テーブルのデータを元に日付のみメインフォームで単票形式で表示し、日付以外の項目はサブフォームで表形式で入力するフォームを作成したのですが、サブフォームの表形式の最後の行がいつも空白になり、そのデータが日付のみ入力され、テーブルのフィールドに追加されています。

説明がうまくできずわかりにくいとは思いますが、分かる方よろしくおねがいします。

Aベストアンサー

>日付のみメインフォームで。商品名・数量をサブフォームで表形式で入力するようなフォームを作成しました

サブフォームは帳票フォームかデータシート型のサブフォームですよね。
メインフォームのレコードソースは売上数、サブフォームのレコードソースは
SELECT [売上数].商品名,[売上数].数量,[売上数].日付 FROM 売上数;
となっていますよね。
サブフォームのリンク子フィールドと親フィールドは日付になっていますでしょうか。
上記の設定になっていれば日付のみ保存されることはないのですが・・。(通常は上記設定で最終行で何か入力しない限り日付のみ保存される事はありません。)
上記設定ならメインフォームの日付に入力すると該当する日付のレコードがサブフォームに表示されるようになります。
フォームを閉じたりレコードを保存させる際にイベントなどで何か処理するようにしていますでしょうか。
メイン・サブフォームの状況がイマイチ不明ですが上記を確認してください。
サブフォームのレコードソースはサブフォームのフォームのプロパティ・リンク子・親フィールドはサブフォームプロパティで確認できます。

>日付のみメインフォームで。商品名・数量をサブフォームで表形式で入力するようなフォームを作成しました

サブフォームは帳票フォームかデータシート型のサブフォームですよね。
メインフォームのレコードソースは売上数、サブフォームのレコードソースは
SELECT [売上数].商品名,[売上数].数量,[売上数].日付 FROM 売上数;
となっていますよね。
サブフォームのリンク子フィールドと親フィールドは日付になっていますでしょうか。
上記の設定になっていれば日付のみ保存されることはないのですが・・。(...続きを読む

QACCESS 入力フォームでテーブルへデータを複数追加する

自力で問題解決できないのでお願いします。

1画面の入力フォームでテーブルへデータを複数追加をしたいと考えています。

例)
☆ 入力フォーム
________________________________________________________
顧客番号 [0001]
顧客氏名 [山田太郎]
受付日付 [2008/6/18]

  購入商品
     えんぴつ
     消しゴム
     ボールペン
                      [ 登録 ]
_______________________________________________________________
                ↓

☆ テーブルデータ
_______________________________________________________________
0001  山田太郎  2008/6/18  えんぴつ
0001  山田太郎  2008/6/18  消しゴム
0001  山田太郎  2008/6/18  ボールペン
_______________________________________________________________


以上のように入力フォーム1画面に対してテーブルのデータが入力分発生するようにしたいです。

VBAは触れないので、できればAccessの対話式で解決できればと思っています。URL等があれば教えてください。
よろしくお願いします。(⌒ ⌒)(_ _)ぺこ

自力で問題解決できないのでお願いします。

1画面の入力フォームでテーブルへデータを複数追加をしたいと考えています。

例)
☆ 入力フォーム
________________________________________________________
顧客番号 [0001]
顧客氏名 [山田太郎]
受付日付 [2008/6/18]

  購入商品
     えんぴつ
     消しゴム
     ボールペン
                      [ 登録 ]
_______________________________________________________________
      ...続きを読む

Aベストアンサー

購入履歴:

[ID]_[顧客番号]_[顧客氏名]_[受付日付]
__1__________1___山田太郎___2008/06/18

購入明細:

[購入履歴_ID]_[行番号]_[購入商品]
___________1________1___えんぴつ
___________1________2___消しゴム
___________1________3___ボールペン

こういうテーブル構造が一般的だと思いますね。
ですと、自動で次のようなメイン・サブフォームが生成されます。
[行番号]の生成がチトややこしいですが・・・。
でも[行番号]がないと[購入商品]の表示順が制御できないです。

*************************************************

ID___________[_____1]
顧客番号_____[___1]
顧客氏名_____[山田太郎___________]
受付日付_____[2008/06/18]

============================================
[購入履歴_ID][行番号][購入商品]
--------------------------------------------
[__________1][_____1][えんぴつ_________]
[__________1][_____2][消しゴム_________]
[__________1][_____3][ボールペン_______]

*************************************************

これで、自動的にテーブルにはデータが登録されます。
([行番号]の生成問題は残りますが・・・。)

クエリ1:

顧客番号_顧客氏名_受付日付___行番号_購入商品
_______1_山田太郎_2008/06/18______1_えんぴつ
_______1_山田太郎_2008/06/18______2_消しゴム
_______1_山田太郎_2008/06/18______3_ボールペン

SELECT 購入履歴.顧客番号, 購入履歴.顧客氏名, 購入履歴.受付日付, 購入明細.行番号, 購入明細.購入商品
FROM 購入明細 INNER JOIN 購入履歴 ON 購入明細.購入履歴_ID=購入履歴.ID
ORDER BY 購入明細.行番号;

で、所望のデータ形式は、このようにクエリで解決します。

購入履歴:

[ID]_[顧客番号]_[顧客氏名]_[受付日付]
__1__________1___山田太郎___2008/06/18

購入明細:

[購入履歴_ID]_[行番号]_[購入商品]
___________1________1___えんぴつ
___________1________2___消しゴム
___________1________3___ボールペン

こういうテーブル構造が一般的だと思いますね。
ですと、自動で次のようなメイン・サブフォームが生成されます。
[行番号]の生成がチトややこしいですが・・・。
でも[行番号]がないと[購入商品]の表示順が制御できないです。

*************...続きを読む

Qフォーム上でデータをあるテーブルに追加するには?

お願いします。
Accessで出庫と在庫の管理を行うと考えてます。
出庫のリストは他のソフトからCSVでインポートでテーブル「importitem」に入ります。同品番の出庫数の集計を兼ねてクエリを行います。クエリ「出庫リスト」ができました。それをフォームにして
「出庫日」「品番」「商品名」「出庫数」の項目です。このフォームで1データづつ確認してボタン「在庫引き落とし」で在庫をマイナスします。その後(同時なら最高)出庫履歴のテーブルに追加書き込みをしたいと考えてます。
在庫引き落としはsqlを使いました。
strSQL = "UPDATE 在庫 SET 在庫.在庫数 = [在庫]![在庫数]-[Forms]![出庫リスト]![出庫数の合計] WHERE (((在庫.品番)=[Forms]![出庫リスト]![品番]))"
うまくいきましたが、出庫履歴テーブルへの追加書き込みが良く分かりません。insert??ではないと思うのですが、
どうか アドバイスをお願いします。

Aベストアンサー

出庫履歴テーブルへの追加を行うのでしたらINSERT文です。
在庫引き落としのSQLを実行した直後に、出庫履歴テーブルへのINSERT文を実行してあげればいいと思います。

INSERT INTO テーブル名 (項目名1,2,3…) VALUES (データ1,2,3…)

項目名はテーブルの項目名、データはフォームのコントロールの内容入れます。文字列項目はデータを'(シングルクオーテーション)で囲って下さい。


INSERT INTO 出庫履歴 (品番,出庫数) VALUES ('品番1',200)

こんな感じで。


人気Q&Aランキング

おすすめ情報