こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAからアクセスを起動させたい、他1点

いつもお世話になります。お聞きしたいことが2点あります。

1点目
「エクセルで作成したリストをCSVファイルで指定の場所に保存し、MDBファイルを起動してそのCSVファイルを取り込み、アクセス内で処理をした後、さらにCSVファイルを出力したい」と思っております。アクセスを使えない人の為に、エクセル上でマクロのボタンを起動すると、以上のことを全て行うようにしたいのですが、MDBファイルを開こうとした時に、

"EXCELから直接ACCESSのMDBファイルを開くことはできません・・・"

のメッセージが出て、実行できませんでした。
何らかの解決方法はありますでしょうか?

2点目
CSVファイルを保存の際に、

D = Range("B3").CurrentRegion.Rows.Count + 2

Range("B4:I" & D).Copy

Workbooks.Add
ActiveSheet.Paste

ActiveWorkbook.SaveAs Filename:="C:\list.csv", FileFormat _
:=xlCSV, CreateBackup:=False
ActiveWindow.Close

としているのですが、
"この場所にC:\list.csvという名前のファイル名が既に存在します。置換えますか?"と、閉じる際に、"list.csvへの変更を保存しますか?"のメッセージが出てきますが、これを表示しないようにするにはどうすれば良いのでしょうか?

投稿日時 - 2005-06-01 13:41:59

QNo.1422715

すぐに回答ほしいです

質問者が選んだベストアンサー

>CSVファイルを出力したい
オオボケしていなければ、こんな所になるかな?
実際に合わせて、ファイル名、テーブル名など変更してください。なお、参照設定は必要です。CreateObjectですと、すごく重くなります。


Sub AccessCSvOut()
'要参照設定:Microsoft Access xx Object Library
Dim appAcc As Access.Application
Dim myFname As String
Set appAcc = New Access.Application
myFname = "C:\db1.mdb"
With appAcc
 .OpenCurrentDatabase myFname, False
 .DoCmd.TransferText acExportDelim, , "テストテーブル", "C:\db2.CSV", False
 .Quit
End With
Set appAcc = Nothing
End Sub

投稿日時 - 2005-06-01 15:57:43

お礼

モジュールにコピー&ペーストで完璧に動きました。

ありがとうございました。

投稿日時 - 2005-06-02 11:30:24

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

Access叩くだけでいいかなと思ったんですが、

>マクロのボタンを起動すると、以上のことを全て行うようにしたいのですが
とのことですので、COMにてアクセスを操作する方法を覚えて下さい

もう1つのAccessデータベースを開く方法(COM版)
http://www.tsware.jp/tips/tips_179.htm

投稿日時 - 2005-06-01 15:30:07

お礼

ありがとうございます。
COMなんて言葉を聞くのも初めてだったので、大変参考になりました。

投稿日時 - 2005-06-02 11:58:30

ANo.1

1.
>MDBファイルを開こうとした時に
どのように開いているのですか?

2.
Applicationオブジェクトの「DisplayAlerts」プロパティにて、メッセージの抑制ができます

投稿日時 - 2005-06-01 14:07:54

補足

1、Workbooks.Open Filename:="C:\db1.mdb", Notify:=False
としています。

2、いただきましたお答えで問題解決しました。
ありがとうございました。

投稿日時 - 2005-06-01 14:29:35

あなたにオススメの質問