tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルAccessデータベースの更新
記事No1298
投稿日: 2005/01/19(Wed) 21:23
投稿者MANA
[OSのVer]:WindowsXP    [VBのVer]:VB.NET 2003  

はじめて、登録させていただきます。
VB初心者です。よろしくお願いします。

現在、Access2000に接続した上で、データ(文字)をテキストボックスに表示させています。
表示後、テキストボックスの内容を書き換え、コマンドボタンをクリックすることで、Accessデータ
ベースの内容を更新させようとしています。
そこで、以下のPGでは、データセットの内容は更新できているようですが、一度終了して、再度開始
した際には元のデータに戻っています。
以下にPGを掲載しますので、どなたかよいアドバイスをいただけますようお願いします。
どうか、よろしくお願いします。

Private Sub BtnMemo_Click

        Dim N As Integer
        Dim i As Integer
        Dim message As String

        'IDの文字列作成
        N = Len(txtID.Text)

        '行番号の取得()
        i = N - 1

        'データセットのデータ更新
        If txtGaiyou2.Text = "" Then
            '
        Else
            DsT_Gyoumu1.Tables("Table").Rows(i).Item("概要") = txtGaiyo
u2.Text
        End If

        If txtMemo2.Text = "" Then
            '
        Else
            DsT_Gyoumu1.Tables("Table").Rows(i).Item("メモ") = txtMemo2
.Text
        End If

        'データセットが更新されていないときは、以下の処理を実行しない
        If Not DsT_Gyoumu1.HasChanges() Then Return
    
    'データのアップデート
        OleDbDataAdapter1.Update(DsT_Gyoumu1)

        '更新後のメッセージ
        message = "概要およびメモ情報のデータを更新しました"
        MsgBox(message, , "データ更新")

    End Sub

[ツリー表示へ]
タイトルRe: Accessデータベースの更新
記事No1306
投稿日: 2005/01/20(Thu) 13:05
投稿者るしぇ
DataAdapter は[VB6.0]の時代の ADODB.Recordset とは違って
データを入れ替えただけでは動作しません。UpdateCommand
が生成(もしくは設定)されてないと更新処理はできません。
hhttp://www.atmarkit.co.jp/fdotnet/basics/adonet_index/index.html
↑この辺りの知識を一通り付けてきて下さい。

ヘルプのサンプルコードなどでも良く読めば書いてありますが…
OleDbCommandBuilder という単語があったらその近辺で
自動生成したりしてますね。ただ…この自動生成には結構
制限があって何でもかんでも更新できないです。

[VB.NET]でも ADODB.Recordset は使えますので、[VB6.0]
での処理を経験した事があるのであればそちらの処理を検討
した方が良いかもしれません。

[ツリー表示へ]
タイトルRe^2: Accessデータベースの更新
記事No1308
投稿日: 2005/01/20(Thu) 15:17
投稿者MANA
[OSのVer]:Windows    [VBのVer]:VB.NET  

アドバイス、ありがとうごいます。
本アドレス(ADO.NET)の資料を参考にして、もう少し勉強します。
よろしくお願いします。

[ツリー表示へ]