- PR -

C#上からACCESSのクエリ実行??

1
投稿者投稿内容
にしお
常連さん
会議室デビュー日: 2003/12/01
投稿数: 44
投稿日時: 2003-12-18 16:15
毎回お世話になっております。
にしおでございます。

C#のコードでACCESSのクエリ(orマクロ)を実行してくれるような事は可能でしょうか?
調べてみたのですが、ACCESSとの関連のサイト等は少ないもので・・・。
もしご存知の方がいらっしゃっいましたら、お力添えをいただけたらと思っております。
どうぞ宜しくお願いいたします。
Masa
会議室デビュー日: 2002/08/13
投稿数: 16
投稿日時: 2003-12-19 09:34
 お疲れ様です。
 masaです。

 Accessのコマンドライン引数で、起動時に実行するマクロを指定する
方法ではだめですか?
 例)
C:\Program Files\Microsoft Office\Office\MSACCESS.EXE HOGE.MDB /x HOGE

 
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2003-12-19 09:39
引用:

にしおさんの書き込み (2003-12-18 16:15) より:
C#のコードでACCESSのクエリ(orマクロ)を実行してくれるような事は可能でしょうか?



VB.NETですが以下のように記述します。
コード:

Dim con As New OleDbConnection(strConnectionString)
Dim cmd As New OleDbCommand("Execute qryGetCustomers", con)
con.Open()
Dim dr As OleDbDataReader = cmd.ExecuteReader()
con.Close()



qryGetCustomersがAccessのクエリ名です。

Googleから「VS.NET + Access」で日本語のWebサイトを検索してみてはどうでしょうか。

それから
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7575&forum=7&5
にソースコード付きのサンプルがあります。

[ メッセージ編集済み 編集者: Access 編集日時 2003-12-20 09:10 ]
にしお
常連さん
会議室デビュー日: 2003/12/01
投稿数: 44
投稿日時: 2003-12-20 07:36
Masa様
ご返信ありがとうございます。確かにマクロを自動処理してくれるのですが、起動時にというのがネックになりまして、それは諦めた案でした。初めにお伝えしていなくて申し訳ございません。

Access様
ご返信ありがとうございます。以下の方法ためさせていただきます。
もし出来ましたら、またご連絡させていただきます!
貴重な参照ページの紹介も感謝いたします。ありがとうございました。
にしお
常連さん
会議室デビュー日: 2003/12/01
投稿数: 44
投稿日時: 2004-01-10 03:06
Access様にご教授いただいた方法でACCESSのクエリ実行は出来ることはわかったのですが、
追加クエリを行いたいときに、ACCESSでのFormを使ってやる場合、フィールドのところに年:[Forms]![Forms1]![tosi]という風な記述が可能でした。
しかしC#でそれと同様の処理を行う際、C#のForm上のテキストボックスの値を、追加クエリのところに読み込ませることは可能なのでしょうか。
もし可能ならば、ご教授願いたいのですが。
もしそれが不可能、あるいは非効率なものである場合は、クエリ実行という形ではなく、C#でテーブルに値を追加する処理にしたいと思っています。
どうぞ、宜しくお願いいたします。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2004-01-10 05:20
引用:

追加クエリを行いたいときに、ACCESSでのFormを使ってやる場合、フィールドのところに年:[Forms]![Forms1]![tosi]という風な記述が可能でした。
しかしC#でそれと同様の処理を行う際、C#のForm上のテキストボックスの値を、追加クエリのところに読み込ませることは可能なのでしょうか。


Accessのクエリにフォームを連結しているときは、フォームを連結する代わりにパラメータ(@CustomerID, @CustomerName,...)を追加してWebフォームがポストバックされたら、フォームに入力した値をパラメータに代入します。
コード:

Dim con As New OleDbconnection(strConString)
Dim cmd As New OleDbCommand("qryInsertCustomers", con)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@CustomerID", txtCustomerID.Text)
cmd.Parameters.Add("@CustomerName", txtCustomerName.Text)
...


一度、「VS.NET + Accessで始めるデータベース連動Webフォーム」の書籍を
ご覧頂くことをお勧めします。

[ メッセージ編集済み 編集者: Access 編集日時 2004-01-10 05:24 ]
にしお
常連さん
会議室デビュー日: 2003/12/01
投稿数: 44
投稿日時: 2004-01-10 11:11
是非見ます!!
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)