これ何て呼びますか

Accessのレコード追加時に、特定のフィールドに値を追加する方法が分からずに、困っております。
ご存じの方がいらっしゃいましたら、ご教授頂けましたら幸いです。

参考にしたサイト
http://www.happy2-island.com/access/gogo03/capte …

バージョン Access2010
OS Windows7 Professional

フォーム名:tmp税抜コンボ(テーブル名:tmp伝票No)
サブフォーム:tmp税抜サブ(テーブル名:tmp税抜)

添付画像、tmp税抜コンビフォーム

◎目的
販売管理DB(SQLServer2008)からのリンクテーブルに、特定の得意先を抜出したデータに一部消費税が入っていないため消費税を入力し別のシステムへデータを渡す事が目的です。

◎処理
可変値:納品日、伝票No、得意先CD、摘要、前のレコードからコピー
固定値:税区、商品名、数量は定数
消費税;手入力(InputBox)

上記のデータを新規で追加したいと考えており、下記のサイトを参考にしましたが、「オブジェクト変数または With ブロック変数が設定されていません」とのエラーが発生し追加出来ません。

【VBA】
Private Sub CmdB_copy_Click()

'レコードをコピーして、不要データ削除
'最後のレコードへ移動
DoCmd.GoToRecord , , acLast

'インプットボックスへ消費税額入力
Dim Tax As Long
Tax = InputBox("消費税額を入力してください。")

'現在のレコードから、伝票No、日付、得意先CDを取得
'変数定義
Dim rcDate As Date
Dim rcDN_No As Long
Dim rcTK_CD As Long
'代入
rcDate = Me.納品日付
rcDN_No = Me.伝票NO
rcTK_CD = Me.得意先CD

Debug.Print rcDate
Debug.Print rcDN_No
Debug.Print rcTK_CD
Debug.Print Tax


'レコードセットの定義
Dim oRS As DAO.Recordset
With oRS
.AddNew ←デバッグ画面では、ここでエラー表示
.Fields("納品日付").Value = rcDate
.Fields("伝票No").Value = rcDN_No
.Fields("得意先CD").Value = rcTK_CD
.Fields("商品名").Value = "消費税"
.Fields("数量").Value = 1
.Fields("単価") = Tax
.Fields("税抜金額").Value = Tax
oRS.Update
End With

Me.Requery
MsgBox ("追加しました。")

End Sub


インティミディエイトウィンドを確認すると、納品日付、伝票No、得意先CD、消費税の値はちゃんと取得出来ているようですが、レコードセットの考え方、Withセクションの使い方、レコードの追加処理を全く理解できていないため、ご教授頂けたら幸いです。

もし、不足データがありましたら、お教え頂けたら出来る限りご提示いたします。




 

「Access 値を指定してレコード追加」の質問画像

A 回答 (1件)

AddNewする前の時点で、どのDBのどのテーブルに対して行うかをセットしていないためだと思います。



例えば、現在のDBの「T_追跡」テーブルをRSにセットする場合はこんな感じです。
Dim DB As DAO.Database
Dim RS As DAO.Recordset

Set DB = CurrentDb
Set RS = DB.OpenRecordset("T_追跡")

参考URL:
http://www.geocities.jp/cbc_vbnet/DAO/database.h …

この一番下のサンプルが参考になります。
    • good
    • 0
この回答へのお礼

完璧に実装出来ました。
レコードセット内容が全く理解出来ていなかったので、参考URLを元に勉強します。
ありがとうございました。

お礼日時:2014/01/06 12:25

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