Accessのデータベースファイル.mdbを無料で作るにはどうすればいいですか?

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

A 回答 (2件)

#1です。



>ExcelのVBAを使ったことないんですが、Excelのマクロにこの例を貼り付けて、実行したら出来るということですか?
>実行してみると、「プロシージャの外では無効です」と表示されます。

Visual Studioがあるなら、別に無理してExcel使う必要はないですけど。
エラーの件は参照設定かなぁ。
VBScriptでも同じ結果になりますか?
(As以下をコメントにする以外は同じです)

Dim strPath 'As String
Dim cat 'As New ADOX.Catalog
Dim strConnect 'As String
strPath = "C:\test.mdb" '作成するmdbのフルパス
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPath & ";Jet OLEDB:Engine Type=5;"
Set cat = CreateObject("ADOX.Catalog")
cat.Create strConnect

>Visual Studio でテーブルって追加できますか?

それようにわざわざコードを書けばできますけど、それよりは、回答に書いたようなツールを使った方が早いと思います。

今、検索して発見しましたが、これなら、mdbの生成とテーブルの追加と両方できますよ。

http://www.asahi-net.or.jp/~ef2o-inue/download/s …
    • good
    • 0
この回答へのお礼

ありがとうございます。

#2のマクロで正しく作成されました。

Visual Studioでmdbファイル作れるのですね。
本を読んでプログラムを作っていますが、本ではいきなりmdbファイルを読み込んでいました。

大変為になりました。ありがとうございますmm

お礼日時:2009/05/22 15:16

カテは SQL Server ですが、Accessでよいんですよね?



MS Access が無くても、.mdb は以下ようにVBScriptやExcelのVBAを使って作成できます。
(私は実際、この方法でして作っています)
但し、Accessはデータストアだけではなく、フォームやレポートなども含まれますが、以下は単純にデータストアとしてのみ、使う場合です。

以下はVBAの例

Dim strPath As String
Dim cat As New ADOX.Catalog
Dim strConnect As String
strPath = "C:\test.mdb" '作成するmdbのフルパス
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPath & ";Jet OLEDB:Engine Type=5;"
set cat = CreateObject("ADOX.Catalog")
cat.Create strConnect

これで、C:\test.mdb ができるので、後は、ODBCデータソースを作成し、接続できるツールで、テーブルを作成(CREATE TABLE文を実行)します。

ODBCで接続できるツール
Common SQL Environment ver1.59
http://www.hi-ho.ne.jp/tsumiki/
※開発がストップしているらしく古いですが。

JetSQLのリファレンス(と言うほど詳しくない。。。)
http://office.microsoft.com/ja-jp/access/HP01032 …

後は、ご自分が使いたいアプリでご自由に。
    • good
    • 0
この回答へのお礼

ありがとうございます。

データベースカテゴリにAccessがなかったので、MicrosoftくくりでSQL Serverかと思いました。

ExcelのVBAを使って、.mdbファイルを作成し、Visual Studio 2005でテーブルを追加していきたいと思います。
Visual Studio でテーブルって追加できますか?

ExcelのVBAを使ったことないんですが、Excelのマクロにこの例を貼り付けて、実行したら出来るということですか?
実行してみると、「プロシージャの外では無効です」と表示されます。


'
' MDBファイルの作成 Macro
' マクロ記録日 : 2009/5/21 ユーザー名 : hoge
'

Sub MDBファイルの作成()
Dim strPath As String
Dim cat As New ADOX.Catalog
Dim strConnect As String
strPath = "C:\test.mdb" '作成するmdbのフルパス
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPath & ";Jet OLEDB:Engine Type=5;"
Set cat = CreateObject("ADOX.Catalog")
cat.Create strConnect
End Sub

頑張ってみましたが、strPath = "C:\test.mdb"でコンパイルエラーが出ます。
プロシージャの外では無効です・・・

お礼日時:2009/05/21 13:49

このQ&Aに関連する人気のQ&A

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

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

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

Qオラクルなどのデータベースの利点とは

Cやjavaなどの言語で、データをテキストファイルか何かに
吐き出すことでも、簡単なデータ管理は実現可能です。

オラクルなどのデータベースを利用することの具体的な利点はなんでしょうか?

データベースの利点がわかるような例えがあれば、併せて教えてください。

Aベストアンサー

> 簡単なデータ管理は実現可能です。

おっしゃるとおり、「簡単ではないデータ管理」に使うのではないかと。

性能に対しての考え方は時代により変化していくでしょう。

DBやファイルに依存するより、メモリにのせた方が桁違いに早いので、
容量が小さいものは、起動時に読み込んじゃった方が早いです。
メモリの値段は、年々安くなって、今ではPCだってサーバーだって
数ギガ積むのが当たり前ですよね。
ということは、1GB程度のデータならメモリに読んじゃった方が
性能は桁違いに早いです。
10年後には、もっと多くのメモリを積めるでしょうし、SSDだって登場します。
DBよりファイルアクセスが優位に立つ時代も近いかもしれません。

一方、簡単なデータ管理にも使うケースがあります。

簡単なデータ管理も、Webサーバーのように複数から同時アクセスがり、
しかもファイルの更新がある場合、ファイルで正しく更新の制御を行う
のはものすごく大変です。
でも、DBならファイル操作に比べて簡単に出来上がります。
多くの技術者が慣れている、という場合もあります。
ミドルウェアを購入することは、手順化された手続きを買うというケースも
あります。

> 簡単なデータ管理は実現可能です。

おっしゃるとおり、「簡単ではないデータ管理」に使うのではないかと。

性能に対しての考え方は時代により変化していくでしょう。

DBやファイルに依存するより、メモリにのせた方が桁違いに早いので、
容量が小さいものは、起動時に読み込んじゃった方が早いです。
メモリの値段は、年々安くなって、今ではPCだってサーバーだって
数ギガ積むのが当たり前ですよね。
ということは、1GB程度のデータならメモリに読んじゃった方が
性能は桁違いに早いです。
...続きを読む

Qaccessの次のデータベース

質問させていただきます。
今現在accessでデータベースを構築し、20万から30万件のデータを6名程度で入力しています。当たり前ですがレスポンスは落ちています。
ファイルが破壊してしまうのと、入力した後オペレータが検索して使用するので、レスポンスが遅いと業務に支障が出てしまいます。

accessは複数での使用に適していないことや、データ量のこともあり他のデータベースに移ろうと考えています。

SQLのexpressや、PHP+MYSQLなどを考えているのですが、私のスキル的にできるかぎり簡単にできる方法を探しています。
accessの危険をとりあえず回避したのち、きちんとしたデータベースの勉強をして強化できればと思っています。
MSDEを使用し、データテーブルのみをサーバーに移し、accessをフロントエンドで使用する方法を聞いたのですが、この方法だとクエリをクライアント側で実行するのでレスポンス的にはあまり変わらないような気がします。
何かいい方法があればご教授お願いいたします。

Aベストアンサー

ANo.1です

>メインPC上でACCESSからSQLにデータは入れれたのですが。。。
>今そこで止まってます。。

別にSQLServerをインストールしたPCからでも他のPCからでも扱いは変わりません。接続先がlocalhost\SQLXPRESSでなく(接続先コンピュータ)\SQLEXPRESSになるだけです。SQLServerをインストールしたPCで適切なセキュリティ構成(リモート接続の許可とかファイアウォールの例外設定とか)は必要ですが・・。

Qオラクルのデータベースは大変よく使われていますが、フリーのソフトでそれ

オラクルのデータベースは大変よく使われていますが、フリーのソフトでそれに代わるものはないのでしょうか?

Aベストアンサー

 普通に利用すること(データを登録したり、検索したり)に関しては、各データベース
ソフト間の差は、ほとんど無いといっても過言ではないでしょう。


 しかし、異常状態になった場合(コンピュータのシステムダウン、HDDの故障、
操作ミス等々)に、どれだけ短時間で復旧させることができるか、が非常に重要です。

 オラクルには、さまざまな機能が提供されているので、非常に短時間で、あまり人の
手をわずらわせることなく、復旧させる(通常運用が行える状態にする)ことができます。



 普通に使えれば良ければ、(異常事態になったら、数日利用できなくなっても)
フリーで十分です。

Qデータベースのレコードをaccessで修正出来ません

なっちゃんです。
久しぶりのご質問です。よろしくお願いします。

早速ですが環境です
 ・ OS Windows2000
 ・ サーバー SqlServer2000
 ・ アクセス access2003

ご質問です
 上記の環境に SqlServer2000 をセットアップ
 して access2003 を使いDBを登録したのですが
 レコードの内容を更新(登録、削除、変更)する
 ことが出来ません。
 
 手順は SqlServer の EnterpriseManager を
 使い空のDBを作成して それを access の
 プロジェクトで開き、クライアントにあるmdb
ファイルを別の access で開いてテーブルを
 ドラッグ&ドロップで追加しました。
 その登録されたテーブルの内容を変更することが
 出来ません。

検証したこと
 サンプルの NorthWind のレコードは access で
 更新できます。
 新規に作成したDBの内容は EnterpriseManager
 を使うと変更できます。
 サンプルの NorthWind のDBに上記の方法で
 テーブルを追加しても、そのテーブルのレコードは
 変更できませんでした。

以上のような状態で、たぶんどこかの設定(権限?)
を変更する必要があると思うのですが、それが分からずに困っています。
どなたかお分かりの方がおられましたら
是非ご教授いただければと思います。

よろしくお願いいたします。

 

なっちゃんです。
久しぶりのご質問です。よろしくお願いします。

早速ですが環境です
 ・ OS Windows2000
 ・ サーバー SqlServer2000
 ・ アクセス access2003

ご質問です
 上記の環境に SqlServer2000 をセットアップ
 して access2003 を使いDBを登録したのですが
 レコードの内容を更新(登録、削除、変更)する
 ことが出来ません。
 
 手順は SqlServer の EnterpriseManager を
 使い空のDBを作成して それを access の
 プロジェクトで開き、クライアント...続きを読む

Aベストアンサー

この方法でテーブルを作成した場合、多分キーが作成されないと思います。SQLサーバーの場合、Accessと違ってキーがないとデータの更新は一切行えません。
SQL文であれば更新することは出来ます。

Qオラクル データベース アンインストールの仕方

オラクルマスター ブロンズ取得のため

オラクルのデータベースをノートPCにインストールしたのですが
今回それをアンインストールしたく、その方法がわからない状態です。

黒本と呼ばれる、Oracle Database Bronze [11g SQL基礎I]
を購入し、付属DVDからオラクルのデータベース(ライセンスが一か月期限のもの)をインストール
したのですが、ノートPCがかなり重くなったためアンインストールしたくなったものの、やり方がわかりません。 
以前、同じことを違うノートPCで行ったのですが、そのノートPCはレジストリなどにごみが残ってしまったようで重いままになってしまいました。

今回、同じ過ちを犯さないように、サイトなどを見ながらアンインストールしようと試み、
http://www.shoeisha.co.jp/book/qa/69364/thread
上記サイトに従いながら作業していると、

「Universal Installer」がなく、「空」という状態だったのです。

どうすれば、きれいにPCからオラクルデータベースを取り除くことができるでしょうか。

よろしくお願いいたします。

オラクルマスター ブロンズ取得のため

オラクルのデータベースをノートPCにインストールしたのですが
今回それをアンインストールしたく、その方法がわからない状態です。

黒本と呼ばれる、Oracle Database Bronze [11g SQL基礎I]
を購入し、付属DVDからオラクルのデータベース(ライセンスが一か月期限のもの)をインストール
したのですが、ノートPCがかなり重くなったためアンインストールしたくなったものの、やり方がわかりません。 
以前、同じことを違うノートPCで行ったのですが、そのノートPC...続きを読む

Aベストアンサー

質問者さんが使用しているOSの種類とかバージョンが不明ですので、
現状確実に綺麗さっぱり削除する方法は

  OSの再インストール

になると思います。

かなり面倒な操作ですが、再インストール後、各種背邸を行ったあと、
ハードディスクの状態を丸ごとバックアップしておけば、次からは
楽に戻すことができます。(次があるかは別としてw)

QC#上でデータベースのコピーを作るには?

調べてもなかなかわからないので質問します。

VS2008上でC#のプログラムを作っています。
データベースをdatasetし、そのレコードを加工して、変更されたデータベースを別のファイルとして保存するというのをボタン1クリックでしたいと思っています。

マウスを使ってデータベースを作ったりするのはわかるのですが、変更されたデータベースをプログラムで別ファイルに保存する方法などがよくわかりません。

まとめますと、
1.1レコードごとに判定でデータを加工する方法(手順)
2.変更されたデータベースを別ファイルで保存する方法

を教えていただきたく思います。

ヒントなり参考サイトなりを教えていただけるだけでも助かります。お願いします。

Aベストアンサー

鶏と卵みたいなことですが、アタッチする前に対象のMDFファイルを変更したい名前で「コピー」し、
そのコピーした方のMDFをアタッチしてデータを更新すればよいと思います。

Qオラクルのグローバルデータベース名について

グローバルデータベース名またはSIDはどこに設定されているのでしょうか?環境変数?レジストリ?
問題はOracle8iをアンインストールしてOracle9iのインストール時に同じグローバルデータベース名もしくはSIDがありますというエラーメッセージが出てしまいます。同じ名称でDBを作成したいのですが。
アドバイスお願いします。

Aベストアンサー

アンインストールする前、もしくは製品コンポーネントのみをインストール後に Oracle 製品に付属する oradim.exeを使ってサービスを削除することでその問題は回避できると思います。

C:\> oradim -delete -sid <SID>

Qデータベースメールのプロファイルが削除できません。

SQL Server 2005 Workgroup Edition で、データベースメールのプロファイルを削除しようとすると、エラーになってしまいます。

レポートは下記です。

・------------------------------------------------------------・
- プロファイル 'プロファイル名' を削除します (エラー)
メッセージ
プロファイル 'DBmail' を削除できません。

------------------------------
ADDITIONAL INFORMATION:

MailProfile 'DBmail' の削除に失敗しました。 (Microsoft.SqlServer.Smo)

ヘルプを表示するには http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.3042.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=削除+MailProfile&LinkId=20476 をクリック

------------------------------

Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。 (Microsoft.SqlServer.ConnectionInfo)

------------------------------

@force_delete はプロシージャ sysmail_delete_profile_sp のパラメータではありません。 (Microsoft SQL Server、エラー: 8145)

ヘルプを表示するには http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.1406&EvtSrc=MSSQLServer&EvtID=8145&LinkId=20476 をクリック
・------------------------------------------------------------・

エラー番号から検索しても解決方法がわかりませんでした。
どなたかご教授お願いいたします。

SQL Server 2005 Workgroup Edition で、データベースメールのプロファイルを削除しようとすると、エラーになってしまいます。

レポートは下記です。

・------------------------------------------------------------・
- プロファイル 'プロファイル名' を削除します (エラー)
メッセージ
プロファイル 'DBmail' を削除できません。

------------------------------
ADDITIONAL INFORMATION:

MailProfile 'DBmail' の削除に失敗しました。 (Microsoft.SqlServer.Smo)

ヘルプを表示するには ...続きを読む

Aベストアンサー

データベースエンジンのバージョンとSSMSのバージョンが一致しているかどうか確認してみることをお勧めします。
詳細を確認できないのですが、少なくともこのsp_delete_profile_spの@force_deleteパラメータはSQL Server 2005になったあとで追加されたものです(SP1だったか、SP2だったか)。

SP2にはこのパラメータはありますが、データベースエンジンのバージョンが違えばこのパラメータがない可能性があります。
(ちなみにSQL Server2008ではこのパラメータはなくなっているようです)

Qオラクルでデータベースに項目を追加する場合に

オラクル初心者です教えてください。
バージョンが関係あるのかは分かりませんが、8.1.7です。

AAAテーブルに10個の項目があり、真中に項目を追加する場合に、今入っているデータを生かしたい場合にどうやってやればよいのでしょうか?

↓領域を増やす場合などはこうやっているのですが
 項目がずれているので駄目ですよね?
CREATE TABLE BBB AS SELECT * FROM AAA
DROP TABLE AAA
CREATE TABLE AAA(真ん中に項目追加後)
INSERT INTO AAA SELECT * FROM BBB

やっぱりINSERT分に項目を全部書かないとだめなのでしょうか?

Aベストアンサー

かかれているSQL文の中に2個所アスタリスクがありますが、どちらかで項目を並べればいいですよ。

CREATE TABLE BBB AS SELECT F1,F2,NULL,F3 FROM AAA
DROP TABLE AAA
CREATE TABLE AAA(真ん中に項目追加後)
INSERT INTO AAA SELECT * FROM BBB

とか、

CREATE TABLE BBB AS SELECT * FROM AAA
DROP TABLE AAA
CREATE TABLE AAA(真ん中に項目追加後)
INSERT INTO AAA SELECT F1, F2, NULL, F3 FROM BBB

Q【データベースとファイル操作を1トランザクションでまとめる方法】

通常、データベースのトランザクションとファイル操作を一括りにしてロールバック等はできませんが、これを可能にする方法はありますでしょうか?
ご存知の方がいらっしゃいましたら教えていただけるとありがたいです。
よろしくお願いいたします。

Aベストアンサー

まず、通常はファイル操作について、ロールバックを行うような仕組み自体ないと思います。
(あ。NTFSはそういう仕組み持ってるか…でもそのトランザクションをプログラムから操作は出来ないと思います)

なので、まず、ファイル捜査を「元に戻す」所から、自分で実装しなければいけないのでは?
で、それができたら、DBのトランザクションとそのファイル操作のトランザクションが連動するようにクラスなりを作成すればいいと思います。


人気Q&Aランキング

おすすめ情報