私は仕事用のデータベースを作ったので、スタッフがテーブルを壊さないようにフォームを作った。常にデータを追加しますが、下部に追加するのではなく、別のデータ行を上書きします。時には列全体でさえ、列の数だけではありません。 私は2つの異なる方法でコードを実行しようとしました。VBAテーブルにデータを追加すると他のデータが上書きされる
CurrentDb.Execute " INSERT INTO [Service Calls] " _
& "([Project Name], [Phone Number], [email], [Source], [Service Address], [Zip Code], [Date of Service], [Type of Call], [Technician], [Ticket Number], [Invoice Number], [Total Billed], [Description of Work]) VALUES " _
& "('" & Me.proj & "', '" & Me.phone & "', '" & Me.email & "', '" & Me.source & "', '" & Me.address & "', '" & Me.zip & "', '" & Me.doS & "', '" & Me.toC & "', '" & Me.tech & "', '" & Me.ticketNum & "', '" & Me.invoiceNum & "', '" & Me.billed & "', '" & Me.work & "');"
CurrentDb.Close
と
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("Service Calls")
With rst
.AddNew
.Fields("Project Name") = Me.proj
.Fields("Service Address") = Me.address
.Fields("Date of Service") = Me.doS
.Fields("Technician") = Me.tech
.Fields("Total Billed") = Me.billed
.Fields("Zip Code") = Me.zip
.Fields("Description of Work") = Me.work
.Fields("Type of Call") = Me.toC
.Fields("Invoice Number") = Me.invoiceNum
.Fields("Ticket Number") = Me.ticketNum
.Update
End With
rst.Close
Set rst = Nothing
私は1つが他よりも多くのデータが含まれていることです。フォームを更新したときにトップコードを使用しました。
解決済み:フォームの一部のフィールドがバインドされていました。だから、これらのアイテムは時には上書きされます。これらのフィールドをアンバインドすると、上書きは中止されます。
.AddNewまたは 'Insert into'は、既存のデータをテーブルにオーバーレイしません。あなたのフォーム上のコントロールはBOUNDまたはUNBOUNDですか? BOUNDを使用すると、フォームにデータ行が表示され、誰かがデータを変更する行にタイプするということがかなりわかります。それ以外にも他のコードがありますか? –
一部は無効ですが、一部は無効です。私はそれらのすべてを解き放ち、それがそれを修正するかどうかを見ます。他のコードもありますが、クエリを呼び出すだけなので、何もしないと思います。 – Chris
@ WayneG.DunnフォームにUNBOUNDのものを追加すると、私は答えをくれたと言うことができます。ありがとう。 – Chris