こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Updateできない・・・

初心者です。お願いします。
Access2002で人事考課DBを作成中です。
ADOのUpdate処理がうまくいかず困っています。

作業の流れとしては以下のとおりです。
1)職員テーブルを元にしたメニューフォーム(F_人事管理DB)を開く。2)対象となる職員を呼び出す。3)メニューから考課結果入力フォーム(F_情意考課)を開く。
4)考課結果を入力する。5)情意考課テーブル(T_情意考課)に結果が蓄積される。

情意考課テーブル(T_情意考課)と中心の職員テーブル(T_人事考課DB)は職員番号をキーにして繋がり、考課結果入力フォーム(F_情意考課)は情意考課テーブルを元にしています。

考課結果を入力した後「更新後処理」で次のようなプロシージャによって、結果を情意考課テーブルに追加させようと考えました。

Private Sub Form_AfterUpdate()

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim bango As String

Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset

rs.Open "T_情意考課", cn, adOpenKeyset, adLockOptimistic

bango = Forms!F_情意考課!テキスト63

rs.Update "職員番号", bango
rs.Update "更新日付", Date
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub

テキスト63のコントロールボックスには「=Forms!F_人事管理DB!職員番号」という式で職員番号が代入されます。
変数bangoにはデータは代入されているようですが、情意考課テーブルの更新ができずエラーになってしまいます。
どこがおかしいでしょうか?
職員番号は「K000*」という連番で型はテキストです。
この作業中は、F_人事管理DB、F_情意考課のふたつのフォームが開いています。

宜しくお願いします。

投稿日時 - 2005-01-05 11:42:29

QNo.1153375

困ってます

質問者が選んだベストアンサー

>rs.Update "職員番号", bango
>rs.Update "更新日付", Date

いきなりUpdateしてますけど、どこにも更新対象のレコードを指定している個所が無いんですけどいいんですか?

>情意考課テーブルの更新ができずエラーになってしまいます。

どんなエラーですか?

投稿日時 - 2005-01-05 18:06:42

お礼

ご回答ありがとうございます。
変数bangoをやめて、次のように直に「職員番号」にテキスト63に引っ張ってきた値を代入したらうまくいきました。
rs.Update "職員番号", Forms!F_情意考課!テキスト63

私の質問の仕方が悪かったみたいですみません。
また宜しくお願い致します。

投稿日時 - 2005-01-07 13:15:07

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

テーブルにデータを追加させたいということですよね?
今のままだと、現在のレコードを書き換えることになってしまっています。
追加させるのであれば、UpdateではなくAddNewを使います。

もしはずしていたらすみません。
詳しい内容がわからないので、新規に追加させたいのかと判断して回答してみました。

投稿日時 - 2005-01-05 18:17:11

あなたにオススメの質問