0

如何修复这个用 VBA 编写的“更新”SQL 查询?我想将“名称”字段更新为连接表单中的 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
4

1 回答 1

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
于 2013-04-30T11:00:13.623 回答