在VBA ACCESS中连接

时间:2013-04-29 10:44:27

标签: ms-access access-vba

如何修复用VBA编写的'UPDATE'SQL查询?我想将'Name'字段更新为连接表单中的2个字段的值。我写了这段代码,但它没有用,有什么建议吗?

这是我的代码:

strSQL = "UPDATE dbo.Soferi_test SET Name = '" & Me![subform_soferi].Form!numele
                                               & Me![subform_soferi].Form!prenumele & _
          "',Cipti = '" & Me![subform_soferi].Form!certificat_cipti & _
          "' WHERE IDNO = " & Me![subform_soferi].Form!IDNO

1 个答案:

答案 0 :(得分:0)

以下是我认为你想要实现的基本概要。

  • 在我看来,您的表单字段是从表单上的子表单引用的。

当你对对象进行完全引用时,你的sql看起来很复杂,所以我更喜欢

  • 创建一些变量
  • 将表单对象分配给变量
  • 引用sql中的变量。

我认为它使程序更具可读性。您可以从表单上的按钮调用以下内容:

'****Update a table based on the values on a subform****'
'Table name:    dbo.Soferi_test
'Form Name:     frmMain
'Subform Name:  subform_soferi

Sub updateTable()

'Declare your variables which will be used in the sql string

Dim strSQL As String
Dim strNumele As String
Dim strPrenumele As String
Dim strCertificatCipti As String
Dim strIDNO As String

'Assign your variables to the form\subform objects
'You should also add some validation to check that the fields are not null

strNumele = Form_frmMain.subform_soferi!numele
strPrenumele = Form_frmMain.subform_soferi!prenumele
strCertificatCipti = Form_frmMain.subform_soferi!certificat_cipti
strIDNO = Form_frmMain.subform_soferi!IDNO

'Build your sql string
strSQL = "UPDATE dbo.Soferi_test SET Soferi_test.Name = '" & strNumele & strPrenumele & "', Cipti = '" & strCertificatCipti & "' WHERE (((Soferi_test.IDNO)='" & strIDNO & "'));"

'Execute the sql
CurrentDb.Execute strSQL

'You will want to put in some error handling here

End Sub