- PR -

VB.NETのフォームで入力した項目をACCESSの***.mdbに追加・更新する方法?

投稿者投稿内容
くーま
会議室デビュー日: 2004/12/09
投稿数: 6
投稿日時: 2004-12-09 17:08
初めまして。
現在会社で使用する会員管理データベースをVB.NETで製作しています。
フォームにTextBoxやComboBoxを配置し、それらに入力した内容を既存の***.mdb(DataBase.mdb)に追加・更新する方法が分かりません。

何分一人で作業しており、完全なる独学でやっておりますので行き詰ってしまいました。
何卒ご教授の程、宜しくお願い致します。

環境:Windows XP/Visual Basic .NET2002/ACCESS2003
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-12-09 17:09
どこで行き詰まったのでしょうか?
くーま
会議室デビュー日: 2004/12/09
投稿数: 6
投稿日時: 2004-12-09 17:13
早速の返信、有難う御座います。

TextBox・ComboBoxに入力し、ボタンを押してDataBase.mdbに追加(もしくは更新)
この作業をするコードが全くと言って良い程分かりません。

会員Noが重複してなければ追加。
同じ会員Noがあれば更新。
と言った形を取りたいと思っております。

宜しくお願い致します。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-12-09 17:51
くーまさん、こんばんは。

引用:

TextBox・ComboBoxに入力し、ボタンを押してDataBase.mdbに追加(もしくは更新)
この作業をするコードが全くと言って良い程分かりません。


参考までに。
MSDNライブラリには、以下の2冊が紹介(?)されてました。
「プログラミング Microsoft ADO.NET」
「ステップバイステップで学ぶMicrosoft ADO.NET実践講座」
まずはMSDNライブラリ(ヘルプ)でサンプルやチュートリアルを探して、じっくり勉強してみて下さい。ま、王道はない、ということで。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-12-09 17:52
DataBase.mdbには接続できているのでしょうか?
この質問だと、全部作ってくれって言ってるように聞こえます。。。。
とりあえず
http://ja.gotdotnet.com/quickstart/winforms/doc/DataAccessPlaceHolder.aspx
この辺を一通り呼んで、分からないところを質問しましょう。
くーま
会議室デビュー日: 2004/12/09
投稿数: 6
投稿日時: 2004-12-09 18:04
きくちゃんさん、burton999さん、有難う御座います。

関連サイトを探しても見つからず、参考書はVB.NETの本しか見てなかったので、分からず途方に暮れてた次第です。

そーか、「ADO.NET」の本を見れば良いんだ!と改めて思いました。
本買って、サイト見て、もうちょっと自分で頑張ってみます。

ありがとうございました。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2004-12-09 21:19
引用:

関連サイトを探しても見つからず、参考書はVB.NETの本しか見てなかったので、分からず途方に暮れてた次第です。
そーか、「ADO.NET」の本を見れば良いんだ!と改めて思いました。
本買って、サイト見て、もうちょっと自分で頑張ってみます。


下記リンクをクリックするとASP.NET+Accessを利用したサンプル(ソースコード付き)
がご覧いただけます。

http://akiokasai.brinkster.net/samples/Articles.aspx

それから拙著「プロが作った!ASP/ADO.NET実践サンプル集」の第3章をご覧いただくと
ADO.NET + Accessのサンプルが記載されています。

http://akiokasai.brinkster.net/books/aspado/aspado.asp
くーま
会議室デビュー日: 2004/12/09
投稿数: 6
投稿日時: 2004-12-12 22:49
きくちゃんさん、burton999さん、Accessさん、有難う御座います。
参考書を買ってきて、何とかやってみました。
『データの追加』は驚くほど簡単に出来ました。
しかし、『データの変更』がコードエラーになってしまい、原因が分かりません。


Private Sub Form_Load(以下略)
Adapter1.Fill(DataSet121, "データベース")
End Sub

Private Sub btnJikkou_Click(以下略)
 Dim r As DataSet12.データベースRow
 ' データセットにデータを格納
 'Adapter1.Fill(DataSet121) ' 既にロードしてるので無視
 ' 変更する行を取得
 r = DataSet121.データベース.FindByID(1) ' <<<<<エラー
 ' 制約のチェックを中断
 r.BeginEdit()
 ' 行の内容を変更
 r.名前 = txtName.Text
 r.電話番号 = txtTel.Text
 ' 制約のチェックを再開
 r.EndEdit()
 ' データソースを更新
 Adapter1.Update(DataSet121.データベース)
End Sub

『r = DataSet121.データベース.FindByID(1)』の所でエラーが出てしまいます。
『r = DataSet121.データベース』まで打って、『.』を打っても次の『Find』が出てきません。
私の場合、『ID』ではなく『会員No』を主キーにしています。
感じ的には『.FindBy会員No(1)』なんでしょうか…?


元のコードです。
Private Sub Button1_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click

 Dim r As dsInsert_Tbl.Insert_TblRow
 ' データセットにデータを格納
 OleDbDataAdapter1.Fill(DsInsert_Tbl1)
 ' 変更する行を取得
 r = DsInsert_Tbl1.Insert_Tbl.FindByID(1)
 ' 制約のチェックを中断
 r.BeginEdit()
 ' 行の内容を変更
 r.Name = TextBox1.Text
 r.Phone = TextBox2.Text
 ' 制約のチェックを再開
 r.EndEdit()
 ' データソースを更新
 OleDbDataAdapter1.Update(DsInsert_Tbl1.Insert_Tbl)
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 TextBox1.Text = "ガリバー変更後"
 TextBox2.Text = "0587-52-3030"
End Sub

dsInsert_Tbl  データセット DataSetName
DsInsert_Tbl1  データセット (Name)
Insert_Tbl  Sample.mdbのテーブル名
     テーブル内(ID, Name, Phone)

参考書は↓を見ました。
http://www.amazon.co.jp/exec/obidos/ASIN/4774120235/ref=pd_bxgy_img_2/250-3411107-1136237

何度も質問して申し訳ありませんが、何か原因が分かりますでしょうか?
宜しくお願い致します。

[ メッセージ編集済み 編集者: くーま 編集日時 2004-12-12 22:50 ]

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