こんにちは、いつもお世話になっています。早速ですが、いま、VBの練習で、Microsoft Access のデーターベースを使ったプログラムを作っています。
 ひとつのフォームにADODC と DataGrid を使って、アクセスのデーターを表示させ、下のFrameの中にVB作成のテキストボックスを作り、そこのテキストボックスに何かインフォメーションをいれ、”Add"コマンド(cmdAdd)をクリックするとそれらインフォメーションが新しいレコードとしてアクセスのデーターベースに記録されるようにしたいと思っています。 いまのところ、それらインフォメーションがアクセスのデーターベースに表示されるところまでは、できたのですが、上書き表示になってしまい、新しいレコードとしては、表示されません。もし、どなたか、解決方法を知っている方がいらっしゃいましたら、おしえてください。
 一応、下に対象フォームのソースコードの一部を記入しておきます。まったく違っていたらどうか気になさらずにずばっと言ってくれたら幸いです。
Private Sub cmdAdd_Click()
Dim intID As Integer, strFName As String, strLName As String, vntAddress As Variant,
intID = Val(txtCustomerID.Text)
strFName = txtFname.Text
strLName = txtLname.Text
vntAddress = txtAddress.Text

adoCustomer.Recordset.Fields.Item(0).Value = intID
adoCustomer.Recordset.Fields.Item(1).Value = strFName
adoCustomer.Recordset.Fields.Item(2).Value = strLName
adoCustomer.Recordset.Fields.Item(3).Value = vntAddress
End Sub

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

A 回答 (1件)

こんにちは。


ADODCを使用したことが無いので、違うかも知れませんが・・・
基本的に、レコードセットにデータを新規に入力する場合は、
「AddNew」→「Update」を使います。

また、なぜ上書きになっているかと言うと、
サンプルのソースですと、現在のレコードセットの「カレントレコード」に
値を代入していますので、その「カレントレコード」の値が変更されることになります。

文面から判断いたしますと、あまりレコードセット関連のことについてはお詳しく無さそうですので、(違っていたら本当にすいません。)
「カレントレコード」・「EOF・BOFプロパティ」といった単語でヘルプを検索して調べてみるのも良いかと思います。

何かありましたら、補足しておいてください。
    • good
    • 0
この回答へのお礼

まったくそうです。文の中で、書くのを忘れたのですが、実は、今、VBを勉強中でこれは、その勉強の'final project' として学校から出された課題の中の問題です。とりあえず、言われたとおりのことをしてみます。それにしても、本当に丁寧に教えてもらいありがとうございました。また何かありましたら、このサイトに立ち寄らせていただきます。ありがとうございました。

お礼日時:2001/09/25 17:41

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


このカテゴリの人気Q&Aランキング