>はじめまして、私は、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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
推しミネラルウォーターはありますか?
推しミネラルウォーターがあったら教えてください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
ACCESS2010のVBAでフォーム内クエリのフィールド値を取得したい
Visual Basic(VBA)
-
-
4
VBAをつかってクエリの情報を抽出するには??
Visual Basic(VBA)
-
5
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
6
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
7
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
8
access別のテーブルを参照してテキストボックスに値を表示、編集したい
Access(アクセス)
-
9
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
10
2つ目のレコードの値を取得するには?
Access(アクセス)
-
11
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
12
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
13
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
14
ACCESS クエリで重複データを最新の1件だけ表示
Access(アクセス)
-
15
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
16
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
17
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
18
Accessでデータシートに同じデータがいくつもでてしまいます。
その他(データベース)
-
19
角丸四角形を描きたい
Excel(エクセル)
-
20
Accessでテーブルからテーブルにデータをコピーしたい
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
INT64対応のprintf系関数はあり...
-
ASP.NET 2.0(C#) GridViewのソ...
-
ADOでNullフィールドの抽出
-
日付と文字列を条件としてDLook...
-
accessでフィールド追加のあと...
-
Accessのフィールド名に半角括...
-
DataTableに特定のフィールドが...
-
DataTableのselectメソッド
-
アクセス ADO Null以外のレコ...
-
クリスタルレポートの式フィー...
-
ACCESSで視覚的タイムテーブル...
-
アクセスでADO 並べ替えが適用...
-
Access VBA 添付型フィールド
-
Access 2010で実行時エラー3061
-
ACCESSのVBAなのです...
-
AccessVBAで他テーブルのデータ...
-
AccessVBAの処理の流れについて。
-
AccessのDAOでフィールド名を配...
-
[VB2008] datatableを使ったDB(...
-
クリスタルレポート(8.5)の書式...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2つ目のレコードの値を取得す...
-
Access 2010で実行時エラー3061
-
Accessのフィールド名に半角括...
-
accessでフィールド追加のあと...
-
INT64対応のprintf系関数はあり...
-
DataTableに特定のフィールドが...
-
AccessのDAOでフィールド名を配...
-
クリスタルレポートで文字列の...
-
アクセスでADO 並べ替えが適用...
-
テーブルのデータ型の変更がで...
-
日付と文字列を条件としてDLook...
-
Access クエリで変数を参照する...
-
ACCESSデータベースにV...
-
クリスタルレポート(8.5)の書式...
-
NULLを含む文字列の結合で...
-
2次元のdictionary
-
フィールド名をループの添え字...
-
Access Dcount関数で引数が指定...
-
ACCESSで視覚的タイムテーブル...
-
オートナンバー型を抽出条件に...
おすすめ情報