

>はじめまして、私は、AccessVBAであるプログラム(仕事用)を作っていますが、初心者でもあり、行き詰まってしまいました。
テーブル1にフィールド1,2,3,4,5があり、各フィールドには、データが入力されています。
テーブル2には、フィールド1,2,3,4,5,6,7があり、フィールド1,2,3はテーブル1のフィールド1,2,3と同じデータが入力されています。
そこで、テーブル2のフィールド4,5に、テーブル1のフィールド4,5のデータを、プログラムを用いて取り込みたいのですが、どうすればいいのですか。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
プログラムを書かずとも、更新クエリを使えばいいと思いますよ。
1:クエリを新規作成して、テーブル1、テーブル2をクエリに追加します。
2:んで、フィールド1,2,3をそれぞれマウスを使って結び付けます。
3:[クエリ]-[更新]を実行
4:テーブル2のフィールド4,5をクエリ下部のフィールド欄に追加
5:フィールド4のレコードの更新欄に「[テーブル1].[フィールド4]」などと入力(カギ括弧は不要)
6:フィールド5についても同様。
7:[!]ボタンをクリック。もしくは、クエリを保存してから、そのクエリをダブルクリックして実行する。
以上で、フィールド4,5の取り込みが完了するはずです。
尚、このクエリをプログラムから実行するには、
CurrentDB.Execute "更新クエリ名"
を実行します。
Dim DB as Database
Set DB = CurrentDB
DB.Execute "更新クエリ名"
MsgBox DB.RecordsAffected
などとすると、変更のあったレコード数を知ることが出来ます。
蛇足になりますが、ご質問の内容に真っ正直に答えるとすると、
複数テーブルを参照する選択クエリを作成(上記を参照)して、
Dim RS As Recordset
Set RS = CurrentDB.OpenRecordSet("クエリ名")
で、複数テーブルをプログラムから開けます。
この回答への補足
早速教えて頂いたとおり行ってみました。
クエリはうまくいったのですが、プログラムで実行する時に、DB AS Databaseの変数確保で、ユーザー定義は使用できないというエラーが、発生してしまいました。
当然ですね、DAOならいいのですがADOでプログラムを作っているのですから、宣言から異なる事に気がつきました。
そこで、
Dim cn As ADODB.Connection
Set cn = CurrentProject.Connection
cn.Execute "クエリ名"
オブジェクトを変えてみたところ成功です。
プログラム完成までは、まだまだ先の長い話ですが今後ともよろしくお願いします。
ありがとうございました。
今までは、エクセルで行っていたんですが、いろいろ問題もあり、データベースからレポートという、手法が必要となりました。
今回のプログラムは、3月末までに、レポートも含めて完成させなければなりません。
今まで、基礎となるデータを各テーブルを作成し、入力してきました。
今後は、そのデータを用いて、あらゆるレポートを作成しなければなりません。
今回の質問は、その過程における効率化(手作業は不可)の部分です。
したがって、何かのCmdボタンをクリックしただけで、基礎データにあるものは、条件が合えば抽出して、使用するという事柄でした。
一度、クエリについて勉強してみます。
また、ご相談する事と思いますが、よろしくお願いします。
No.1
- 回答日時:
「クエリを作成する」ではだめなんですか?
この回答への補足
回答ありがとうございます。
「谷尻かおり書」に更新クエリが掲載されていたので参考にましたが、他テーブルのオープン等プログラムの記述がわからずエラーとなっています。
そのあたりを、参考プログラムで詳しく教えていただけるとありがたいです。
クエリを作成し、プログラムで実行することとし、成功しました。
プログラム完成までは、まだまだ先の長い話ですが今後ともよろしくお願いします。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Access(アクセス) Access VBA を利用して、フォルダ内のファイルの名称を変更したい 1 2023/08/03 08:27
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
このQ&Aを見た人はこんなQ&Aも見ています
-
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
access別のテーブルを参照してテキストボックスに値を表示、編集したい
Access(アクセス)
-
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
-
4
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
5
AccessでIDを入力したら他の項目も自動で表示
Access(アクセス)
-
6
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
-
7
クエリで出来た表にチェックボックスを追加する
その他(Microsoft Office)
-
8
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
-
9
ACCESSのコンボボックスで入力した値がTABLEに反映されずに数字がでます
Access(アクセス)
-
10
VBAをつかってクエリの情報を抽出するには??
Visual Basic(VBA)
-
11
Access サブフォームでの選択行の取得
その他(データベース)
-
12
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
13
AccessVBA でテーブルをインポートする方法
その他(データベース)
-
14
ACCESS2010のVBAでフォーム内クエリのフィールド値を取得したい
Visual Basic(VBA)
-
15
Accessでデータシートに同じデータがいくつもでてしまいます。
その他(データベース)
-
16
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
17
Accessフォームを開くときに決まった順番で表示
Access(アクセス)
-
18
Acccessで2つのテーブルから1つのフォームをつくりたい
Access(アクセス)
-
19
2つ目のレコードの値を取得するには?
Access(アクセス)
-
20
アクセスからエクセルのシートを追加して、名前をつける方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2つ目のレコードの値を取得す...
-
accessでフィールド追加のあと...
-
INT64対応のprintf系関数はあり...
-
Accessのフィールド名に半角括...
-
ACCESSで視覚的タイムテーブル...
-
NULLを含む文字列の結合で...
-
テーブルのデータ型の変更がで...
-
アクセスでADO 並べ替えが適用...
-
データベース操作(DAO)でのフィ...
-
クリスタルレポート(8.5)の書式...
-
【Access2003】VBAで削除のSQL...
-
CSVのダブルコーテーションを取...
-
CurrentRecord について
-
AccessVBAで他テーブルのデータ...
-
フィールド名の指定でエラー
-
AccessのDAOでフィールド名を配...
-
C#での複数フィールドの条件付...
-
日付と文字列を条件としてDLook...
-
アクセスで、テーブル間のレコ...
-
VB6,Access2000のMDBでのデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
INT64対応のprintf系関数はあり...
-
accessでフィールド追加のあと...
-
2つ目のレコードの値を取得す...
-
Accessのフィールド名に半角括...
-
DataTableに特定のフィールドが...
-
テーブルのデータ型の変更がで...
-
ACCESSデータベースにV...
-
クリスタルレポート(8.5)の書式...
-
クリスタルレポートで文字列の...
-
日付と文字列を条件としてDLook...
-
Access 2010で実行時エラー3061
-
ADOでNullフィールドの抽出
-
Access クエリで変数を参照する...
-
NULLを含む文字列の結合で...
-
AccessのDAOでフィールド名を配...
-
アクセス ADO Null以外のレコ...
-
クリスタルレポートで0件時の表示
-
FTPサーバーから受信したファイ...
-
C#で変数名の取得
-
c言語で自分のホームディレク...
おすすめ情報