
No.2ベストアンサー
- 回答日時:
こちらの環境はWinXP&Access2003ですが、多分2002とはそれほど
違わないと思いますので・・・
> どのクエリを元にレコードが追加されているのかを探り当てる
【Accessの機能を利用する方法】
追加クエリの場合、データベースウィンドウ(クエリ等が一覧表示される
画面)で、アイコン上にマウスポインタをその上に置くと、ヒントテキストの
形で追加先のテーブル名が表示されます。
(テーブル作成クエリも同じ方法で確認可。削除・更新クエリは不可)
ですので、追加クエリの数がそれほど多くないようでしたら、この方法で
1件ずつ確認していけるかと思います。
【ユーザー定義関数を使用する方法】
クエリの数が多いようでしたら、下記コードを『標準モジュール』に保存
して、実行してください。
実行方法としては、イミディエイトウィンドウ(→Ctrl+Gキーで表示される
画面)で「?WhereFrom("テーブル名")」と入力し、Enterキーで次行に
移ります。
これで、その下に、引数で指定したテーブルに対して追加を行うクエリの
名前が列挙されます。
※追加先にテーブルではなくクエリを指定している場合には非対応(汗)
Public Function WhereFrom(TblName As String) As String
On Error GoTo エラー処理
Dim Rsl As String, sTemp As String, nLen As Long, sMsg As String
Dim Dbs As DAO.Database, Tdf As DAO.TableDef, Qdf As DAO.QueryDef
'テーブルの確認(存在しない場合はエラー処理に飛ぶ)
Set Dbs = CurrentDb
Set Tdf = Dbs.TableDefs(TblName)
'「指定テーブルへの追加クエリ」を判定する条件の確認
sTemp = "Insert Into " & TblName & " "
nLen = Len(sTemp)
'全クエリのSQL文を確認
For Each Qdf In Dbs.QueryDefs
'当該テーブルへの追加クエリなら、名前を「Rsl」に記録
If Left(Qdf.SQL, nLen) = sTemp Then Rsl = Rsl & Qdf.Name & vbCrLf
Next
If Rsl = "" Then Rsl = "<該当する追加クエリはありません>"
終了処理:
WhereFrom = Rsl
Set Tdf = Nothing
Set Qdf = Nothing
Set Dbs = Nothing
Exit Function
エラー処理:
If Err.Number = 3265 Then
Rsl = "<指定した名前のテーブルはありません>"
Else
Rsl = "【Error】" & Err.Number & ":" & Err.Description
End If
Resume 終了処理
End Function
<注意>
上記のコードでは「DAO」というものを使用していますので、以下のサイト
を参考に、参照設定を行って下さい:
http://www.accessclub.jp/actips/tips_20.htm
(なお、上記コードでは「DAOコンポーネントの利用」を宣言しているので、
「ADO」よりも上位に位置させる必要はありません:
「Access2000、Access2002でDAOを用いる場合」の「6」を参照))
※優先順位は、特にいじらないことをお勧めします。
(既存のコードがADOを使用していて、かつ、「ADOの利用」を宣言して
いない場合、優先順位の変更はエラーの原因となる危険性があります)

回答ありがとうございました。
細かく書き込みしていただき、痛み入ります。
大変勉強になりました。
本当にありがとうございました。
No.3
- 回答日時:
解決されていたでしょうか。
であればスルーということに。フリーのツールを使うっていうのはどうでしょう。
相関図等、Excelに出力してくれるようです。
(どこまでの結果を求めるかによるとは思いますが)
AccessMDB解析ツール
http://www.vector.co.jp/soft/dl/win95/business/s …
なお、#1さんが言われている UPDATE についても調べられるとよいと思います。
(UPDATE でも追加できますので)
UPDATEでの追加の一例を以下に
テーブル「TA」「TB」が同じフィールド構成であるとします。
テーブル「TA」の内容
ID 内容
1 AAAAAA
3 CCCCCC
5 EEEEEE
テーブル「TB」の内容
ID 内容
2 BBBBBB
5 abcdef
6 FFFFFF
テーブル「TA」を元に、テーブル「TB」に追加されている ID を「TA」に追加して
テーブル「TA」の内容
ID 内容
1 AAAAAA
2 BBBBBB
3 CCCCCC
5 EEEEEE
6 FFFFFF
としたい場合、以下のSQLを書く時があります。
UPDATE TA RIGHT JOIN TB ON TA.ID=TB.ID
SET TA.ID = TB.ID, TA.内容 = TB.内容
WHERE (TA.ID Is Null);
回答ありがとうございました。
なるほど!フリーのツールを探せば良かったんですね。
また、ご丁寧に書き込みいただき、ありがとうございました。
No.1
- 回答日時:
追加クエリはクエリ名のアイコンにプラス記号が
更新クエリは鉛筆記号が付いています。
これを頼りにクエリをデザインビューで開いて
さらに右クリックでSQLビューに切り替えます。
追加クエリなら INSERT INTO ○○
更新クエリなら UPDATE ○○
になっていますので、○○ がテーブル名です。
http://www.geocities.jp/allmemo11/access01_2.html
※クエリを右クリックでプロパティ画面を出して、説明欄に
簡単な説明を入力。
メニューバーから、表示→詳細 切り替えれば先ほどの説明が出るので
宜しかったらどうぞ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Access DAOのExecuteメソッドのオプション(RecordsetOptionEnum)に 1 2022/09/19 07:34
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESS クエリの抽出条件に他のテーブルの値を参照する方法
Access(アクセス)
-
Accessでデータシートに同じデータがいくつもでてしまいます。
その他(データベース)
-
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
-
4
クエリのデータをテーブルに入れたい
Access(アクセス)
-
5
access テキストボックスの値取得
Access(アクセス)
-
6
アクセス 項目毎にデータを横に並べる方法
Access(アクセス)
-
7
追加先の発見方法(SQL以外)
その他(データベース)
-
8
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
-
9
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
10
アクセスのクエリ 1文字以上を抽出
Access(アクセス)
-
11
テーブルリンク リンク元を知りたい
Access(アクセス)
-
12
Access テーブルを検索し関連性のあるクエリが何かを調べたい
Access(アクセス)
-
13
accessでクエリをExcelにエクスポートする時にファイル名に日付を追加したい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスのクエリでSplit関数は...
-
アクセスのクエリとDlookupはど...
-
選択クエリを基に不一致クエリ...
-
access インポート時、既にある...
-
Accessのクロス集計→テーブル作...
-
ACCESSでの重複レコードの削除
-
ACCESS テーブル作成クエリ
-
アクセス:クエリの結合とリレ...
-
accessでクエリの結果だけをリ...
-
アクセス 項目毎にデータを横...
-
クエリのデータをテーブルに入...
-
Accessでテキストが合体できる...
-
クロス集計クエリの結果をテー...
-
ACCESSで行数指定(5万行目~8...
-
access テーブル作成クエリでテ...
-
Access テーブルを検索し関連性...
-
ACCESS2000で小数点以下を表示...
-
Access 各カラムの中に半角カ...
-
テーブル1にマクロで再クエリ...
-
デザインビューにてテーブルが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クロス集計クエリの結果をテー...
-
アクセスのクエリでSplit関数は...
-
Access「レコードが削除されま...
-
accessでクエリの結果だけをリ...
-
Access2010「クエリが複雑すぎ...
-
アクセス 項目毎にデータを横...
-
アクセス:クエリの結合とリレ...
-
デザインビューにてテーブルが...
-
クエリのデータをテーブルに入...
-
access テーブル作成クエリでテ...
-
Access DAOのExecuteメソッドの...
-
教えてください! アクセスのac...
-
更新不可能なクエリに対して更...
-
access インポート時、既にある...
-
ACCESSでテーブルの一部だけを...
-
テンポラリファイルのための空...
-
アクセス クロス集計クエリ→テ...
-
Accessのクエリで、抽出条件で…...
-
ACCESSで行数指定(5万行目~8...
-
ACCESS2000 クエリをテーブル化...
おすすめ情報