C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

C#とAccessのチェックボックスの連携について

[トピック内 12 記事 (1 - 12 表示)]  << 0 >>

■92610 / inTopicNo.1)  C#とAccessのチェックボックスの連携について
  
□投稿者/ テトリス (1回)-(2019/10/10(Thu) 16:40:05)

分類:[C#] 

VisualStudio2017でソフトを作り、Accessとデーターベースの連携をしています。

C#でWindowsForm上に作ったチェックボックスにチェックを入れると、Access側のデータにもチェックが入り
Access側のチェックボックスにチェックが入ればその情報をC#のソフトで取得できるようにできる方法が知りたいです。

Access側のフィールドでは「Yes/No」型に設定して、WindowsForm上ではチェックボックスを配置しています。
何か紐づけ型がおかしいのでしょうか?ご教授頂けると幸いです。質問の意図がうまく伝えられていなかったら申し訳ありません。
引用返信 編集キー/
■92612 / inTopicNo.2)  Re[1]: C#とAccessのチェックボックスの連携について
□投稿者/ 大谷刑部 (41回)-(2019/10/10(Thu) 17:20:24)
No92610 (テトリス さん) に返信
> C#でWindowsForm上に作ったチェックボックスにチェックを入れると、Access側のデータにもチェックが入り
> Access側のチェックボックスにチェックが入ればその情報をC#のソフトで取得できるようにできる方法が知りたいです。
Access側のテーブルの項目の「Yes/No」型の値を読み込んでWinform側のチェックボックスの選択状態に反映できるかという意味なら後者は
どちらも内部の値がBooleanの値のはずなので、できると思います。

前者に関しては、Accessのデータ連結フォームをイメージしているのだとするとおそらくデフォルトのチェックボックスではできません。
DataGrid等を仲介するとしても、Accessのデータ連結フォームでデザインするよりひと手間かかるイメージと思います。

Grapecity社等の有償コンポーネントでデータ連結ができるものがあるかは知りません。
そして、あるにしても、Accessのコントロールが基本ActiveXをベースとしているものが多いので、.netFramework上でパフォーマンス含めてまともに動くかはわかりません。
引用返信 編集キー/
■92613 / inTopicNo.3)  Re[2]: C#とAccessのチェックボックスの連携について
□投稿者/ テトリス (2回)-(2019/10/10(Thu) 17:35:24)
No92612 (大谷刑部 さん) に返信
> ■No92610 (テトリス さん) に返信
>>C#でWindowsForm上に作ったチェックボックスにチェックを入れると、Access側のデータにもチェックが入り
>>Access側のチェックボックスにチェックが入ればその情報をC#のソフトで取得できるようにできる方法が知りたいです。
> Access側のテーブルの項目の「Yes/No」型の値を読み込んでWinform側のチェックボックスの選択状態に反映できるかという意味なら後者は
> どちらも内部の値がBooleanの値のはずなので、できると思います。
>
> 前者に関しては、Accessのデータ連結フォームをイメージしているのだとするとおそらくデフォルトのチェックボックスではできません。
> DataGrid等を仲介するとしても、Accessのデータ連結フォームでデザインするよりひと手間かかるイメージと思います。
>
> Grapecity社等の有償コンポーネントでデータ連結ができるものがあるかは知りません。
> そして、あるにしても、Accessのコントロールが基本ActiveXをベースとしているものが多いので、.netFramework上でパフォーマンス含めてまともに動くかはわかりません。

お返事ありがとうございます。ご説明頂いたのに申し訳ありません。やり方が少し難しそうなので他の方法を考えようかと思います。
丁寧にご回答していただきありがとうございました。
引用返信 編集キー/
■92614 / inTopicNo.4)  Re[1]: C#とAccessのチェックボックスの連携について
□投稿者/ WebSurfer (1944回)-(2019/10/10(Thu) 18:12:54)
No92610 (テトリス さん) に返信

Windows Forms アプリから Access のデータベース(.mdb, .accdb ファイル)に接続して
更新はできます。更新にはもちろんチェックを入れたり外したりを含みます。

逆に、Access を起動してデータベース(.mdb, .accdb ファイル)を読み込んで更新し、
更新後のデータベースを Windows Forms アプリで読んで表示することもできます。

ただし、Windows Forms アプリと Access を両方立ち上げておいて、片方で更新すると他方
で結果がリアルタイムで表示されるということを期待しているとすると、それは無理かもし
れませんが。

それで良ければ、具体例を書きます。
引用返信 編集キー/
■92678 / inTopicNo.5)  Re[2]: C#とAccessのチェックボックスの連携について
□投稿者/ テトリス (3回)-(2019/10/19(Sat) 11:13:33)
No92614 (WebSurfer さん) に返信
> ■No92610 (テトリス さん) に返信
>
> Windows Forms アプリから Access のデータベース(.mdb, .accdb ファイル)に接続して
> 更新はできます。更新にはもちろんチェックを入れたり外したりを含みます。
>
> 逆に、Access を起動してデータベース(.mdb, .accdb ファイル)を読み込んで更新し、
> 更新後のデータベースを Windows Forms アプリで読んで表示することもできます。
>
> ただし、Windows Forms アプリと Access を両方立ち上げておいて、片方で更新すると他方
> で結果がリアルタイムで表示されるということを期待しているとすると、それは無理かもし
> れませんが。
>
> それで良ければ、具体例を書きます。

返事が遅れて大変申し訳ございません。多忙もありあきらめかけていました。
もしよろしければご教授いただけないでしょうか?
引用返信 編集キー/
■92680 / inTopicNo.6)  Re[3]: C#とAccessのチェックボックスの連携について
□投稿者/ WebSurfer (1951回)-(2019/10/19(Sat) 12:48:14)
No92678 (テトリス さん) に返信

Access データベースの特定のテーブルのレコード一覧を表示し、その中の Yes/No 型のフィー
ルド(チェックボックスとして表示される)にチェックを入れたり外したりした結果を元の
Access のテーブルに反映するといった Windows Forms アプリが作れれば良いと理解してレス
します。

なお、上のレスにも書きましたが、Windows Forms アプリと Access を両方立ち上げておいて、
片方で更新すると他方で結果がリアルタイムで表示ということはできませんので注意してくだ
さい。

Windows Forms アプリの DataGridView にレコード一覧を表示するのですが、実行結果は以下
のリンク先の画像のようになります。

http://surferonwww.info/BlogEngine/image.axd?picture=2019%2f9%2fAccess.jpg

上のアプリで使っているのは Microsoft が提供しているサンプル Northwind 2007.accdb の
その中の Products テーブルで Discontinued フィールドが Yes/No 型です。

チェックボックスにチェックを入れる/外すという操作の後、ツールバーのフロッピーディスク
のアイコンをクリックすると、結果が Access のテーブルに反映されます。

それで良いですか? ダメならこちらから提案できることはないので、この下のレスはスルー
してください。



まず ACE プロバイダを入手して開発マシンにインストールしてください。.accdb を扱うには
必須です。

詳しくは以下の記事を見てください。32/64-bit の違いに注意してください。そのあたりの注
意点も以下の記事に書いてあります。

Access 2007 の DB を利用するアプリ開発
http://surferonwww.info/BlogEngine/post/2011/11/08/Development-of-application-which-uses-accdb-file-of-Access-2007.aspx

アプリは Visual Studio のウィザードを使って作成します

DB が SQL Server の場合ですが(Access の場合も同じことが可能です)、以下のチュートリ
アル、

10 行でズバリ !! 非接続型のデータ アクセス (ADO.NET) (C#)
https://code.msdn.microsoft.com/windowsdesktop/10-ADONET-C-cbfe7688

・・・のように Visual Studio のデータソース構成ウィザードを利用して型付 DataSet +
TableAdapter を作って、それを利用してアプリを作ると、以下のページの図のような構造の
アプリが自動生成されます。

Windows フォーム アプリケーションでのデータへの接続
https://docs.microsoft.com/ja-jp/previous-versions/wxt2cwcc(v=vs.120)

上に紹介したチュートリアルは 2 つのテーブルを階層更新するために少々複雑になっていま
すが、単一テーブルですともっと簡単で、操作に慣れると上の画像のアプリなら 5 分もかか
らず作れるはずです。自力では一行もコードを書く必要はありません。

自力で一からコードを書く場合のような種々の問題に悩むことはなくなり、開発工数は激減
するはずです。保守工数も減るはずです。お試しください。
引用返信 編集キー/
■92683 / inTopicNo.7)  Re[4]: C#とAccessのチェックボックスの連携について
□投稿者/ テトリス (4回)-(2019/10/19(Sat) 16:07:19)
No92680 (WebSurfer さん) に返信
> ■No92678 (テトリス さん) に返信
>
> Access データベースの特定のテーブルのレコード一覧を表示し、その中の Yes/No 型のフィー
> ルド(チェックボックスとして表示される)にチェックを入れたり外したりした結果を元の
> Access のテーブルに反映するといった Windows Forms アプリが作れれば良いと理解してレス
> します。
>
> なお、上のレスにも書きましたが、Windows Forms アプリと Access を両方立ち上げておいて、
> 片方で更新すると他方で結果がリアルタイムで表示ということはできませんので注意してくだ
> さい。
>
> Windows Forms アプリの DataGridView にレコード一覧を表示するのですが、実行結果は以下
> のリンク先の画像のようになります。
>
> http://surferonwww.info/BlogEngine/image.axd?picture=2019%2f9%2fAccess.jpg
>
> 上のアプリで使っているのは Microsoft が提供しているサンプル Northwind 2007.accdb の
> その中の Products テーブルで Discontinued フィールドが Yes/No 型です。
>
> チェックボックスにチェックを入れる/外すという操作の後、ツールバーのフロッピーディスク
> のアイコンをクリックすると、結果が Access のテーブルに反映されます。
>
> それで良いですか? ダメならこちらから提案できることはないので、この下のレスはスルー
> してください。
>
>
>
> まず ACE プロバイダを入手して開発マシンにインストールしてください。.accdb を扱うには
> 必須です。
>
> 詳しくは以下の記事を見てください。32/64-bit の違いに注意してください。そのあたりの注
> 意点も以下の記事に書いてあります。
>
> Access 2007 の DB を利用するアプリ開発
> http://surferonwww.info/BlogEngine/post/2011/11/08/Development-of-application-which-uses-accdb-file-of-Access-2007.aspx
>
> アプリは Visual Studio のウィザードを使って作成します
>
> DB が SQL Server の場合ですが(Access の場合も同じことが可能です)、以下のチュートリ
> アル、
>
> 10 行でズバリ !! 非接続型のデータ アクセス (ADO.NET) (C#)
> https://code.msdn.microsoft.com/windowsdesktop/10-ADONET-C-cbfe7688
>
> ・・・のように Visual Studio のデータソース構成ウィザードを利用して型付 DataSet +
> TableAdapter を作って、それを利用してアプリを作ると、以下のページの図のような構造の
> アプリが自動生成されます。
>
> Windows フォーム アプリケーションでのデータへの接続
> https://docs.microsoft.com/ja-jp/previous-versions/wxt2cwcc(v=vs.120)
>
> 上に紹介したチュートリアルは 2 つのテーブルを階層更新するために少々複雑になっていま
> すが、単一テーブルですともっと簡単で、操作に慣れると上の画像のアプリなら 5 分もかか
> らず作れるはずです。自力では一行もコードを書く必要はありません。
>
> 自力で一からコードを書く場合のような種々の問題に悩むことはなくなり、開発工数は激減
> するはずです。保守工数も減るはずです。お試しください。

長文でのコメントありがとうございます。
一点質問なのですが、dataGridviewではなくlistviewで同じような環境を作ることは可能でしょうか?
引用返信 編集キー/
■92684 / inTopicNo.8)  Re[5]: C#とAccessのチェックボックスの連携について
□投稿者/ WebSurfer (1952回)-(2019/10/19(Sat) 16:12:54)
No92683 (テトリス さん) に返信

不要な引用は止めてください。見ずらくなるだけなので。

> 一点質問なのですが、dataGridviewではなくlistviewで同じような環境を作ることは可能でしょうか?

考えたこともないので分かりません。少なくとも Visual Studio のデザイナは対応してないようです。
引用返信 編集キー/
■92685 / inTopicNo.9)  Re[6]: C#とAccessのチェックボックスの連携について
□投稿者/ テトリス (5回)-(2019/10/19(Sat) 16:29:13)
No92684 (WebSurfer さん) に返信
> ■No92683 (テトリス さん) に返信
>>一点質問なのですが、dataGridviewではなくlistviewで同じような環境を作ることは可能でしょうか?
>
> 考えたこともないので分かりません。少なくとも Visual Studio のデザイナは対応してないようです。

失礼しました。最初に具体的に全て書いておくべきだったと思うんですが、詳細を全て説明しますと
WindowsForm上にチェックボックスを1つ配置し、そこにチェックが入った状態で作成した確定ボタンを押すと
Accessの「完了」というYes/No型のフィールドに反映がしたいです。
その後、WindowsForm上の、読み込みボタンを押すとListviewのサブアイテムの8個目にある「完了」という縦項目に
Accessのデータが反映され、チェックが入った状態にしたいです。
そもそもListview上に先頭行以外でのチェックボックスの配置ができるのかも、調べてみましたがわかりませんでした・・・。

素人な質問ですが、お時間許されるようでしたらご回答いただけると助かります。
もし実現不可能でしたら、不可能と答えて頂ければ幸いです。
引用返信 編集キー/
■92687 / inTopicNo.10)  Re[7]: C#とAccessのチェックボックスの連携について
□投稿者/ WebSurfer (1953回)-(2019/10/19(Sat) 16:38:34)
No92685 (テトリス さん) に返信

No92680 で、

> それで良いですか? ダメならこちらから提案できることはないので、この下のレスはスルー
> してください。

と言った通りです。それ以上はお付き合いできません。

引用返信 編集キー/
■92688 / inTopicNo.11)  Re[8]: C#とAccessのチェックボックスの連携について
□投稿者/ テトリス (6回)-(2019/10/19(Sat) 16:53:34)
2019/10/19(Sat) 16:53:55 編集(投稿者)

No92687 (WebSurfer さん) に返信
> ■No92685 (テトリス さん) に返信

> と言った通りです。それ以上はお付き合いできません。
ご回答ありがとうございました!すみませんでした!

解決済み
引用返信 編集キー/
■92709 / inTopicNo.12)  Re[7]: C#とAccessのチェックボックスの連携について
□投稿者/ 大谷刑部 (47回)-(2019/10/23(Wed) 10:03:59)
No92685 (テトリス さん) に返信
> ■No92684 (WebSurfer さん) に返信
>>■No92683 (テトリス さん) に返信
> >>一点質問なのですが、dataGridviewではなくlistviewで同じような環境を作ることは可能でしょうか?
> 失礼しました。最初に具体的に全て書いておくべきだったと思うんですが、詳細を全て説明しますと
> WindowsForm上にチェックボックスを1つ配置し、そこにチェックが入った状態で作成した確定ボタンを押すと
> Accessの「完了」というYes/No型のフィールドに反映がしたいです。
> その後、WindowsForm上の、読み込みボタンを押すとListviewのサブアイテムの8個目にある「完了」という縦項目に
> Accessのデータが反映され、チェックが入った状態にしたいです。
> そもそもListview上に先頭行以外でのチェックボックスの配置ができるのかも、調べてみましたがわかりませんでした・・・。
↓一応できるみたいですけど。ただし、やったことないので自己責任で自分で試してみてください。
http://hiros-dot.net/VBNET2005/Control/ListView/ListView14.htm

それと、なぜdataGridviewではだめなんでしょうか?
それなしに、やみくもにリストビューでと言われても、誰でも、「勝手にやれば?」という反応になると思います。

そしてそもそも、DBがAccessと決まっていて、疑似的にでもDBへ連動するように見せたいなら、そもそもC#にこだわる必要があるでしょうか?
お客さんの指定とかでC#じゃなきゃダメ、VB.netやVBAはNGってなってるんなら、それも質問の前提条件として書くべきですね。
想像でやり取りする部分が増えると当然、求めている回答とは違う、ご本人にとってとんちんかんな回答も増えると思います。
この手の機能なら、Accessのデータ連結フォームで実装した方がおそらく楽だし、UI的にもいい気はしますよ。
.NetでAccessにつなぎに行っている時点で、ActiveXとのオーバーヘッドが発生するので、パフォーマンス的にも好ましくない。

> 素人な質問ですが、お時間許されるようでしたらご回答いただけると助かります。
なんか、自分で回答にたどりつこうとしてないように見えますよ。
いうなれば聞き方が悪いってことだと思います。
質問者さんがエンドユーザーサイドの方ならある程度仕方ないと思いますが、もしプロのSEならそもそも、姿勢としてどうなんだろ?
って思います。

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ