Microsoft Access从Form传递变量到VB

时间:2017-02-06 21:56:52

标签: sql variables ms-access access-vba

我构建了一个包含2个组合框的表单,一个用于Event,一个用于People。这两个框的查询包括Event_id和People_id但未显示。我们的想法是从下拉列表中选择事件,然后添加一个人来参加活动。我的问题是将这两个ID传递给SQL更新脚本。

下面是VB;我收到424错误并将SQL称为区域。

出了什么问题?

    Private Sub Command15_Click()

Dim dbs As DAO.Database, sql As String, rCount As Integer

  Set dbs = CurrentDb

  sql = "INSERT INTO Whos_Going (Event_ID, Who_is_invited) " _
  & "VALUES(" & Event_id.Text & ", " & People_id.Text & ")"

  dbs.Execute sql, dbFailOnError

  rCount = dbs.RecordsAffected

If rCount > 0 Then
MsgBox "Person Added to Event"
'update listbox
conInfo.Requery
End If

End Sub

1 个答案:

答案 0 :(得分:0)

使用VBA,您需要构造有效的sql语句。必须将所有字符串文字括在'中,所有日期必须括在#中。除此之外,如果您的字符串变量包含撇号,则需要将其替换为''。正确的语法是:

sql = "INSERT INTO Whos_Going (Event_ID, Who_is_invited) " _
    & "VALUES('" & Replace(Event_id.Text, "'", "''") & "', '" _
    & Replace(People_id.Text, "'", "''") & "')"