こんにちは、いつもお世話になっています。早速ですが、いま、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と関連する良く見られている質問

QFOR文でtext1,text2,text3...などとどうやって処理させればいいのですか

超初心者な質問ですみません。
たとえばFOR文を使ってtext1~10まで連続に処理させるには
どういったコードを記述すればよいのでしょうか?
初心者用の本やHPを探しても見当たりませんでした。
お願いします。

Aベストアンサー

textエリアをインデックス配列にすればいいです。
Text1のエリアをファーム上でコピーし、貼り付けると
Text1(0)~ Text1(9) の配列になります。
それを
 
(例)

i =0
for i=0 to 9
text1(i) = x
next

のようにすればいいです。

QVB.NET コンボボックスからのitem名のTEXTとりいれについて

VB.NET 勉強しはじめてまだ3ヶ月の初心者です。
(もし、表現が幼稚ならお許しください。)

コンボボックスに3個(りんご、バナナ、みかん)のITEMがあります。
まず、りんごをボックスから選んだと同時に、にわざわざ、"りんご”というtextは別には書かないで、そのままボックスにでているりんごの表示をを果物名(labelFruits) に持ってきたいのですが。できますでしょうか。 me.labelFruits.text = ???????

果物名以外の表示には収穫量、消費量など計算させるところがあります。

Aベストアンサー

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Me.labelFruit.Text = ComboBox1.Text
End Sub

ComboBoxを選択した際のイベントに
Labelへの代入を加えてみるとか。

Qレコードセット(ADO.Recordset)で処理レコードは何番目?

excel2010 vbaでoracleに接続(ODBC)してレコード処理します。
変数でカウントしないと自分のレコード番号がわからないのですか。
プロパティ メゾットで知ることはできないですか。
(中略)
dim cut as long
Dim rs as ado.recordset
'--オープン処理
With rs
do until .EOF
 cnt = cnt + 1
rs.xxxx '---ここで何件目かしりたい
.movenext


Loop
End With

Aベストアンサー

多分、次の命令でレコード番号が分かるかと思います。
お試しください。

 rs.AbsolutePosition

QExcel VBA: private sub 内の変数の値を Sub へ渡すには

VBA初心者です。private sub 内で条件に合致した変数の値をSubへ渡すにはどうしたらよいのでしょう。下記を見ていただければやりたいことの意図は伝わるかと思います。private sub内の変数が多分private sub内のみでしか参照出来ないからだとは思いますが、うまくいきません。グローバル変数化みたいなことが出来るのでしょうか。

Sub Find_OK()
MsgBox "条件に合致したのは" & var1 & "です。"
End Sub

Private Sub Worksheet_Calculate()
Dim var1
 For var1 = 1 to 10
 If var1 > 8 Then Call Find_OK
End If
Next
End Sub

Aベストアンサー

Sub Find_OK(var1)
MsgBox "条件に合致したのは" & var1 & "です。"
End Sub

Private Sub Worksheet_Calculate()
Dim var1
 For var1 = 1 to 10
 If var1 > 8 Then Call Find_OK(var1)
End If
Next
End Sub

Q「System.Text.RegularExpressions」がない・・・?

お世話になっております。
VB2005 Express Editionユーザーです。

先日こちらの掲示板に質問させていただき、正規表現を使用しての操作方法を教えていただきました。

そのままのコードをとりあえず貼り付けさせていただいてどのような動作をするのか検証したかったのですが、
「System.Text.RegularExpressions」が必要とのことでを参照しようとしましたが当方の環境ではライブラリが見当たりません。

「Imports System.Text.RegularExpressions」とコード先頭に記述すれば、それで参照しているということになるのでしょうか?

先頭に「Imports System.Text.RegularExpressions」と記述すれば、こちらでご提示いただいたコードは何事もなくコンパイルされるのですが、反応している気配がないのです。

当方の環境内で「System.Text.RegularExpressions」を探しましたがありませんでした。

Express Editionということでライブラリが入っていないなんてことはないですよね?
Framework2.0をインストールしなおし、「System.Text.RegularExpressions」を探しましたがありませんでした。

どこかからダウンロードできるのでしょうか?

ご回答お待ちしています。
宜しくお願いいたします。

お世話になっております。
VB2005 Express Editionユーザーです。

先日こちらの掲示板に質問させていただき、正規表現を使用しての操作方法を教えていただきました。

そのままのコードをとりあえず貼り付けさせていただいてどのような動作をするのか検証したかったのですが、
「System.Text.RegularExpressions」が必要とのことでを参照しようとしましたが当方の環境ではライブラリが見当たりません。

「Imports System.Text.RegularExpressions」とコード先頭に記述すれば、それで参照しているという...続きを読む

Aベストアンサー

ライブラリはデフォルトで読み込まれていると思う。
例えばSystem.Text.RegularExpressions.Regexクラスは

http://msdn2.microsoft.com/en-us/library/system.text.regularexpressions.regex.aspx

Namespace: System.Text.RegularExpressions
>Assembly: System (in system.dll)

というようにSystem.dllというファイル内にある

#Importsはライブラリの読み込みじゃなくて,
XMLでいう名前空間接頭辞やデフォルト名前空間の設定だと思う


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

おすすめ情報