ただ今、エクセルVBAでCreateDatabaseやOpenDatabseの活用方法を勉強してい
 ます。VBEの参照設定でDAO3.6を登録してコ-ドを走らせました。
 うまくMDBファイルは生成できましたが、素朴な疑問が起こりました。
 アクセスやVBのアプリケ-ションがあるから生成するのか、それともDAOさえあ
 れば生成するのか、お教え下しい!!

このQ&Aに関連する最新のQ&A

A 回答 (2件)

こんにちは。

itohhといいます。

わたしも試したことがないのですが、Accessのランタイムをソフトと一緒に
配布する必要があるのでは?と思います。
    • good
    • 0

DAOさえあれば生成します。



ただし、DAO自体はWindowsに標準では付いてきません。
OfficeのHome Editionに付属しているかも定かも未確認です。(Professional Editionには付属します。)

もし作成されたマクロ付きファイルを配布するとかという用途をお考えであれば、場合によってはDAOの同梱とかも考えなくてはいけないかもしれませんね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QVBEって行番号を表示することができない・・・・・?

22歳男性です。
VBAの勉強をしていてふと思ったのですが、VBE(エディターの方ね)に行番号を表示させることは可能なのでしょうか?

Aベストアンサー

行番号の概念は無いはず。

サンプルを掲載するときに、解説書籍を作成する会社が苦労されている模様。

代替案はソースをテキストエディタにコピペするか、コメントを充実させることでしょうか。

QACCESSでレコード数の数え方(ADO,DAOなしで)

ACCESS2000でデータベースを作っています。ADOやDAOは使っていません。

質問はタイトル通りなのですが、ADOやDAOなら簡単なのですが、訳あって
それらは使えません。
色々調べてみたのですが・・・。
どなたかお知恵を貸していただけないでしょうか?


P.S.
質問No.689217"ACCESSで実行時エラー3008"を質問しましたが、解決しました。
フォームの定義でロックをかけていました。(⌒ ⌒;
いつもはVBで作っているのですが・・・、はやとちりのようでした。お騒がせ
しました。

Aベストアンサー

こんにちは。maruru01です。

DCount関数はどうですか?

Qaccess2002 DAOのデータ読込投入

今access2002のアプリケーションを作っています。

そのデータをエクセルから、テーブルにインポートする作業を仕様としています。

今考えているのは、EXCELのデータを、
ほぼそのままテーブルAとしてインポートし、
そのテーブルを読み込んで編集&項目追加をして、
テーブルBに書き込みます。
その際、のコーディングは、

Private Sub sample_click()

DIM dbDAO AS DAO.DATABASE
DIM rsDAO AS DAO.RRECORDSET
DIM rsDAO2 AS DAO.RRECORDSET

set rsDAO = dbDAO.OPENrecordset("テーブルA",dbOpenTable)
Do Until rsDAO.EOF = true
rsDAO2.AddNew
rsDAO2.項目B1 = rsDAO.項目A1+変数A1
rsDAO2.項目B2 = rsDAO.項目A2*変数A2
rsDAO2.項目B3 = rsDAO.項目A3/変数A3
rsDAO2.項目B4 = rsDAO.項目A4-変数A4
rsDAO2.Update
rsDAO.MoveNext
loop
rsDAO.Close: Set rsDAO = Nothin
rsDAO2.Close: Set rsDAO2 = Nothin

End Sub

上記のように記述すると、テーブルAの全レコードを、
すべて自動編集し、テーブルBに追加できますでしょうか?

やりたいことは単純なのですが、クエリーでも僕のレベルでは、
うまくできそうにないので、質問させていただきました。
どうかよろしくお願いします。

今access2002のアプリケーションを作っています。

そのデータをエクセルから、テーブルにインポートする作業を仕様としています。

今考えているのは、EXCELのデータを、
ほぼそのままテーブルAとしてインポートし、
そのテーブルを読み込んで編集&項目追加をして、
テーブルBに書き込みます。
その際、のコーディングは、

Private Sub sample_click()

DIM dbDAO AS DAO.DATABASE
DIM rsDAO AS DAO.RRECORDSET
DIM rsDAO2 AS DAO.RRECORDSET

set rsDAO = dbDAO.OPENrecord...続きを読む

Aベストアンサー

基本的にはOKです。
テーブルBは4フィールドでよいのでしょうか?
4つの変数がどこでもセットされていませんが、省略しているのですか?

追加クエリでも良さそうですし、クエリの方が速いのですがね。

QVBE画面を開くのを禁止したい

アクセス2003と2007です。

Alt+F11でVBE画面が開きますがこれを禁止にする事は出来ますか?
MDEファイルにするしかないのでしょうか?

Aベストアンサー

ショートカット キーを有効にする のチェックを外すとか
http://d.hatena.ne.jp/ogohnohito/20080322/p1

AllowSpecialKeys について調べてみるとか
http://www.accessclub.jp/samplefile/samplefile_122.htm

弄りまわして収拾がつかなくなっても関知しませんけど。
※セキュリティ関連の設定を行った場合には、
どこか安全な所にドキュメントを残しておきましょう。(自戒を込めて (^^ゞ

Qバッチでmdbを最適化したいのですが、ldbファイルが存在した場合の処

バッチでmdbを最適化したいのですが、ldbファイルが存在した場合の処理キャンセルが分かりません。

親フォルダ
├子フォルダ1
│├AA.mdb
│└BB.mdb
├子フォルダ2
・・・

現在は下記を実行しています。

set backdate=%date:~-10,4%%date:~-5,2%%date:~-2,2%
set logfile=\\192.168.10.15\d\ACCESSBackup\log\copyall_%backdate%.log
date /T >> %logfile%
time /T >> %logfile%
xcopy "\\192.168.10.14\ACCESS_SYSTEM" "\\192.168.10.15\d\ACCESSBackup\ACCESS_SYSTEM\" /C /D /E /R /Y >> %logfile%
for /f %%A in ('dir /b /s C:\ACCESS_SYSTEM\*.mdb') do "C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" %%A /compact

上記で
親フォルダ丸ごとバックアップ
ログファイルを出力
親フォルダからmdbを全て検索し最適化

この最適化の前に%%Aのファイルのldbが存在したら最適化をキャンセルさせたいのですがやり方がわかりません。

%%A→C:\ACCESS_SYSTEM\子フォルダ\AA.mdbだったら
C:\ACCESS_SYSTEM\子フォルダ\AA.ldbの存在をチェックし、あれば最適化しない。

mdbが多いので、VBAで個別に組み込まずタスクで夜中にでも一気にバックアップ・最適化したいと考えています。

どなたか知恵をお貸し下さい。
宜しくお願いいたします。

バッチでmdbを最適化したいのですが、ldbファイルが存在した場合の処理キャンセルが分かりません。

親フォルダ
├子フォルダ1
│├AA.mdb
│└BB.mdb
├子フォルダ2
・・・

現在は下記を実行しています。

set backdate=%date:~-10,4%%date:~-5,2%%date:~-2,2%
set logfile=\\192.168.10.15\d\ACCESSBackup\log\copyall_%backdate%.log
date /T >> %logfile%
time /T >> %logfile%
xcopy "\\192.168.10.14\ACCESS_SYSTEM" "\\192.168.10.15\d\ACCESSBackup\ACCESS_SYSTEM\" /C /D /E /R /Y >> %logfile%
for /f %%A in...続きを読む

Aベストアンサー

#1です。

まず、
>バッチファイルで実行するとやはり一瞬CMD画面が出て消えてしまいます。
についてですが、
バッチファイルの最後に
pause
をいれて、コマンドプロンプトが消えないようにしましょう。
そのうえで、エラーメッセージに何が出ているか確認しましょう。

また、
>下記のコードをCMDに直接打ち込むと正常に処理が行われるのですが、
>バッチファイルで実行するとやはり一瞬CMD画面が出て消えてしまいます。
>なぜなのでしょうか・・・

CMDで直接入力するときと、バッチファイルに記入するときは"%"の記入方法が違います。
バッチファイルに記述するときは %%A のように%記号を2つ記載しないといけません。


for /f "delims=" %%A in ('dir /b /s C:\ACCESS_SYSTEM\*.mdb') do if not exist "%%~dpnA.ldb"
"C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "%%~fA" /compact

その上で、うまくいかないようでしたら、そのとき表示されているエラーメッセージを
補足してください。

#1です。

まず、
>バッチファイルで実行するとやはり一瞬CMD画面が出て消えてしまいます。
についてですが、
バッチファイルの最後に
pause
をいれて、コマンドプロンプトが消えないようにしましょう。
そのうえで、エラーメッセージに何が出ているか確認しましょう。

また、
>下記のコードをCMDに直接打ち込むと正常に処理が行われるのですが、
>バッチファイルで実行するとやはり一瞬CMD画面が出て消えてしまいます。
>なぜなのでしょうか・・・

CMDで直接入力するときと、バッチファイルに記入するとき...続きを読む


人気Q&Aランキング

おすすめ情報