2014-10-10 116 views
0

我一直在努力讓這段代碼工作幾天。如果你能提供任何解決方案,我會非常感激。使用VBA更新表格

Private Sub Command0_Click() 


If IsNull(NewSupBox.Value) Or IsNull(NewNumberBox.Value) Then 
MsgBox ("All fields must be filled") 
GoTo ErrorExit 
End If 

If Not IsNull(DLookup("SupplierNumber", "SupGenInfo ", "SupGenInfo.SupplierNumber =" &  NewSupBox)) = Then 
MsgBox ("This supplier number already exists. You can edit the current record on the Edit  supplier page.") 
GoTo ErrorExit 
End If 

Dim db As Database 
Dim rec As Recordset 
Set db = CurrentDb 
Set rec = db.OpenRecordset("select * from SupGenInfo") 

rec.AddNew 
rec("SupplierNumber") = Me.NewSupBox.Value 
rec("SupplierName") = Me.NewNameBox.Value 
rec.Update 

Set rec = Nothing 
Set db = Nothing 



MsgBox "Records added successfully." 
ErrorExit: 

End Sub 

編輯:忘了提,我沒有收到任何錯誤消息。該命令不會爲我的表添加新記錄。

編輯2:當我刪除下面的代碼塊時,上面的代碼將輸出味精「記錄添加成功」。

Dim db As Database 
Dim rec As Recordset 
Set db = CurrentDb 
Set rec = db.OpenRecordset("SupGenInfo") 

rec.AddNew 
rec("SupplierNumber") = Me.NewSupBox 
rec("SupplierName") = Me.NewNameBox 
rec.Update 

Set rec = Nothing 
Set db = Nothing 

這是包含此代碼時,我的命令點擊變得無法響應。

+1

它有什麼問題? – JNevill 2014-10-10 16:18:07

+0

當我單擊命令時,什麼也沒有發生。我的表不受影響,也沒有錯誤消息。我有一個類似的代碼來運行在我的數據庫中的一個完全正常的表單上。 – 2014-10-10 16:24:17

+0

你把它標記爲VBA?什麼應用程序使用此代碼? 「CurrentDb」又來自哪裏?你正在嘗試使用/使用** ADODB **還是別的東西?請澄清您的問題並添加相關標籤。 – L42 2014-10-11 03:14:01

回答

0

我相信,你正在用select * ...語句閱讀一個表格(用於顯示目的),然後你添加一個新的記錄到該列表而不是實際的數據庫。當你打開OpenRecordset,只提供表名,並不是一個完整的SQL查詢shebang ...

我創建了一個新表,所以編輯此代碼以匹配你的參數/值,否則這已經過測試工作:

Dim db As Database 
Dim rec As Recordset 
Set db = CurrentDb 
Set rec = db.OpenRecordset("Table1") 

rec.AddNew 
rec("Field1") = 1234 
rec("Field2") = "blah2" 
rec("Field3") = "blah3" 
rec.Update 

Set rec = Nothing 
Set db = Nothing 

希望這會有所幫助。

+0

謝謝你的迴應!測試了這個代碼,它不適合我。由於代碼在您的工作中,我擔心我有一個更復雜的問題。 – 2014-10-10 16:56:43

+0

我有Access 2010,它可能不立即刷新表(我不得不關閉並重新打開表,但它確實工作...) – nurchi 2014-10-10 19:24:49

+0

我剛剛閱讀您的編輯,這可能聽起來很愚蠢,但您可以檢查寫入權限文件?它是一個本地數據庫還是一個坐在網絡上的數據庫?如果數據庫位於網絡位置(出於安全原因...),VBA可能會以不同方式運行。 – nurchi 2014-10-10 19:30:47