2016-10-03 15 views
-4

更新クエリを実行するためにアクセスユーザーフォームボタンを取得しようとしています。私が持っている パラメータは次のとおりです。アクセスユーザーフォームを取得して既存のレコードを更新する方法

 Invoice number (should update Current ICB.Invoice number) 
     Material Code (should update Current ICB.Material Code) 
     Amount USD (Should update current ICB.Amount USD) 
     Username (Should update current ICB.Owner) 
    Vendor Code (Should update current ICB.Vendor code) 
Record Number (Should = current ICB.ID) 

私は同じレコード番号を持つレコードをチェックし、ユーザーフォームに入力された値を使用して上記のフィールドを更新するために、フォーム上のボタンを使用します。私は更新クエリを使用しますが、SQLをVBAに書き込むことは私の強みではありません。何か案は?ボタンのOnClickイベントで

+1

投稿するコードはありますか?さらに、VBAでそれを行う必要はありません。そのためのクエリがあります。 –

+0

「更新」を試してください。それが助けにならないなら、 'Requery'を試してください。 –

+0

アクセスフォーム、またはデータソースにバインドできないオフィスの「ユーザー」フォームについて話していますか? –

答えて

0

、このような何か:

Dim db as Database 
Dim rec as Recordset 

Set db = CurrentDb 
Set rec = db.OpenRecordset("Select * from MyTable where RecordNumber = " & ICB.ID & "") 

rec.Edit 
rec("InvoiceNumber") = ICB.Invoice_number 
rec("MaterialCode") = ICB.Material_Code 
etc... 
rec.update 

rec.close 

あなたの実際のテーブル名やフィールド名を使用しますが、それは一般的な考えです。

クエリを使用することを絶対にお勧めする場合は、同様の方法でコードをSQLに記述し、DoCmd.RunSQLを使用する必要があります。これは次のようなものです。

txtSQL = "UPDATE MyTable SET InvoiceNumber = " & ICB.Invoice_number & ", " & _ 
      " MaterialCode = " & ICB.Material_Code & "" & _ 
      etc... 
      " WHERE RecordNumber = " & ICB.ID & "" 
DoCmd.RunSQL txtSQL 

これは、整数だけを使用していることを前提としています。データをテキストとして保存する場合は、一重引用符で囲む必要があります。

" MaterialCode = '" & ICB.Material_Code & "'" & _ 
関連する問題