我正在製作一個相當簡單的庫存跟蹤數據庫。我想通過ID檢索記錄,並添加或刪除指定數量的金額。如果它不存在,我想添加它。甚至可以在不綁定表的情況下執行此操作?添加或更改訪問表中的記錄
1
A
回答
1
聽起來像是你有一個候選ID
值的列表。也許它包含在名爲MyID
的數字變量中。另外還有一個數字值MyAmtChange
,它將被添加到ID
字段值匹配MyID
的行中表格中名爲amount
的字段中的值。
併發症是您的表格中可能沒有行,其ID
值與MyID
匹配。在這種情況下,您需要爲其添加一行。
如果這是正確的,INSERT
行MyID
當一個不存在。然後,您可以簡單地將UPDATE
amount
排在與MyID
匹配的行中。
Dim strInsert As String
Dim strUpdate As String
Dim db As DAO.Database
Set db = CurrentDb
If DCount("*", "YourTableNameHere", "ID = " & MyID) = 0 Then
strInsert = "INSERT INTO YourTableNameHere (ID)" & vbCrLf & _
"VALUES (" & MyID & ");"
Debug.Print strInsert
db.Execute strInsert, dbFailOnError
End If
strUpdate = "UPDATE YourTableNameHere" & vbCrLf & _
"SET amount = Nz(amount, 0) + " & MyAmtChange & vbCrLf & _
"WHERE ID = " & MyID & ";"
Debug.Print strUpdate
db.Execute strUpdate, dbFailOnError
Set db = Nothing
如果這個猜測是相當接近的,錯誤處理程序塊添加到代碼來處理由dbFailOnError
浮出水面的任何問題......或任何其他錯誤。
1
我不知道你想要什麼,但是這段代碼展示瞭如何使用VB-Access處理數據。
Sub fnStudent()
On Error GoTo insertError
Dim studentQuery As String
'INSERTING INTO TABLE
studentQuery = "INSERT INTO Students values ('10','YAHYA','02/10/2012')"
CurrentDb.Execute studentQuery, dbFailOnError
'UPDATING
studentQuery = "UPDATE Students Set name='YAHYA OULD ABBA' WHERE stdID='10'"
CurrentDb.Execute studentQuery, dbFailOnError
'LISTING VALUES
Dim studentsRS As Recordset
Set studentsRS = CurrentDb.OpenRecordset("SELECT * FROM Students WHERE upper(name) like '%YAHYA%';")
Do While Not studentsRS.EOF
MsgBox "ID : " & studentsRS.Fields(0) & "Name : " & studentsRS.Fields(1) & "Birth Date : " & studentsRS.Fields(2)
studentsRS.MoveNext
Loop
'DELETING
studentQuery = "DELETE FROM Students WHERE stdID='10'"
CurrentDb.Execute studentQuery, dbFailOnError
Exit Sub 'exit if there was no error
'UPDATE:
errorHandler:
If Err.Number = 3022 Then
MsgBox "Can't have duplicate key; index changes were unsuccessful", vbMsgBoxRtlReading + vbCritical, "Error " & Err.Number
Else : MsgBox "Error" & vbCrLf & Err.Description, vbMsgBoxRtlReading + vbCritical, "Error " & Err.Number
End If
End Sub
這裏你可以找到vba
錯誤http://www.halfile.com/vb.html
+0
如果我嘗試插入並且它已經存在,會發生什麼情況?更新它不存在的地方呢? –
+0
我更新了代碼,您可以根據需要處理儘可能多的錯誤。 –
相關問題
- 1. 添加或更新記錄?
- 2. ms訪問表中的更新記錄
- 3. 您無法添加或更改記錄,因爲表
- 4. 添加記錄到Excel中的訪問 - 記錄集是隻讀
- 5. 錯誤添加記錄訪問從C#
- 6. Cakephp更新或添加新記錄
- 7. 附加信息:您無法添加或更改記錄,因爲表中需要相關記錄'tblRubriek'
- 8. Symfony:添加記錄後更改響應
- 9. 從JSON訪問記錄並添加或刪除信息
- 10. slf4j,更改記錄器或在運行時添加appender
- 11. 在更新記錄時在交接表中添加記錄
- 12. SQL僅更新表中新的或更改的記錄
- 13. 錯誤:您無法添加或更改記錄,因爲表中需要相關記錄
- 14. 訪問子表單:嘗試添加記錄
- 15. 訪問陣列列表中的記錄
- 16. 添加用戶名以添加評論更改歷史記錄
- 17. 如何通過訪問中的查詢添加記錄?
- 18. 訪問(VBA)訪問記錄集中的最後一條記錄
- 19. MS訪問 - 修改表單中的數據並保存記錄
- 20. 如何在Scala中添加每個更改的最後記錄
- 21. 從DataGridView記錄列表中的更改
- 22. 更改歷史記錄表
- 23. 記錄表更改 - MS Access
- 24. 在一個視圖中更新標題記錄或添加行記錄
- 25. Lightswitch不允許在MySQL中添加或修改記錄
- 26. 試圖從Excel更新訪問表中的記錄
- 27. 記錄添加在數據庫中未更新的表單中?
- 28. 更新同一表中的重複記錄或類似記錄
- 29. 查詢從最近一個月更新或添加的表中查找記錄?
- 30. 訪問VBA:更改子窗體的記錄源
您可以使用記錄集,但爲什麼要避免綁定?在MS Access中使用綁定的表單非常簡單。 – Fionnuala
你知道,這可能不是一個好主意。問題是......不,等等,那應該工作。 –
好吧,就這樣說吧,我想如果可以的話就做。 –