質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

2回答

1663閲覧

Access プロジェクトを指定したい

Chandler_Bing

総合スコア673

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2021/10/01 00:06

VBA

1CurrentProject.AllForms

のCurrentProjectの部分ですが、
他のAccessファイルを参照するにはどのようにすればよいでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hex309

2021/10/01 00:31

ご自分でどこまで調べていますか? 試されたコードを提示されると、回答がつきやすいかと思います。
Chandler_Bing

2021/10/01 00:33

strDBPath = "C:\My Documents\db1.MDB" Set acApp = New Access.Application acApp.Visible = True acApp.OpenCurrentDatabase strDBPath acApp.AllForms としていますが、データまたはメンバーが見つかりませんと出てしまいます。。。。
hex309

2021/10/01 00:43

ありがとうございます。ただ、「質問」は編集ができるはずなので、こちらではなく質問を編集する形にしていただいたほうがよろしいかと思います。
guest

回答2

0

ベストアンサー

OpenCurrentDatabase で別のAccessファイルを開けばいいでしょう。

サンプルコード

vba

1 Dim acApp As Access.Application 2 '別のAccessを起動する 3 Set acApp = New Access.Application 4 With acApp 5 '別のAccessファイルを開く 6 .OpenCurrentDatabase "C:\Users\test\Documents\test.accdb" 7 8 Dim obj As AccessObject 9 For Each obj In .CurrentProject.AllForms 10 Debug.Print obj.Name 11 .SaveAsText acForm, obj.Name, "C:\Users\test\Documents\" & obj.Name & ".frm" 12 Next 13 .Quit 14 End With 15 Set acApp = Nothing

投稿2021/10/01 00:43

編集2021/10/01 03:54
hatena19

総合スコア33795

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Chandler_Bing

2021/10/01 03:21

解答ありがとうございます。 やはりだめです。フォームの名前を取得したりすることはできるのですが、 書き込みがされません、、、、。 別DBをひらかず、現在のDBで実行した場合は書き込みまで処理が完了します。
hatena19

2021/10/01 03:35

acApp.SaveAsText としたらどうでしょうか。
Chandler_Bing

2021/10/01 03:51

きました!!!! ありがとうございます。 感謝です、、、、。
Chandler_Bing

2021/10/01 04:25 編集

何度もすみません。 確かにさっきいったのですが、また書き込みされません Public Sub gsub_SaveAsText() Set acApp = New Access.Application acApp.OpenCurrentDatabase "Path" strDir = strDir & "temp\" Dim strName As String '---< FORM > For i = 0 To acApp.CurrentProject.AllForms.Count - 1 strName = acApp.CurrentProject.AllForms(i).Name Debug.Print strName SysCmd acSysCmdSetStatus, strName & " Exporting..." acApp.SaveAsText acForm, strName, "D:\Temp\その他出力\Export\変更前\Form" & strName & ".frm" Next i End Sub
Chandler_Bing

2021/10/01 04:19

何か間違えていますでしょうか?
guest

0

以下、提示いただいたコードですが、

VBA

1strDBPath = "C:\My Documents\db1.MDB" 2 3Set acApp = New Access.Application 4acApp.Visible = True 5acApp.OpenCurrentDatabase strDBPath 6 7acApp.AllForms

エラーになる部分を以下に変更でいかがでしょうか。

VBA

1acApp.CurrentProject.AllForms

投稿2021/10/01 00:42

hex309

総合スコア761

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Chandler_Bing

2021/10/01 02:26

解答ありがとうございます。 For i = 0 To acApp.CurrentProject.AllForms.Count - 1 strName = acApp.CurrentProject.AllReports(i).Name Debug.Print SysCmd acSysCmdSetStatus, strName & " Exporting..." SaveAsText acReport, strName, strDir & strName & gcntExtensionTxt Next i Set acApp = Nothing ご提示の方法で、エラーがでずに、Reportの名前を取得できるのですが、 どうもテキストが書き出されません、、、、。 何か間違えていますでしょうか?
Chandler_Bing

2021/10/01 02:38

CurrentProjectのみの場合は上手くいきます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問