我正在尝试更新名称包含用户键入内容的字段。我使用通配符,它适用于大多数名称。它不适用于某些名称,因为在该列中姓氏排在第一位,其次是中间名,然后是姓氏。因此,当用户键入名字和姓氏时,查询将找不到该名字,因为输入的名字顺序不正确。如何以这样的方式进行操作:在表单中键入名称的顺序无关紧要,并且无论如何用户仍然可以查找该字段并进行更新。
Private Sub btnUpdate_Click()
Dim db As DAO.Database
Dim qdf As QueryDef
Dim sql As String
Set db = CurrentDb()
Set qdf = db.QueryDefs("UpdateSM")
sqlString = "UPDATE KissFlowtbl SET SM = '" & Me.txtSM & "' WHERE AM Like '*" & Me.txtAM & "*' "
qdf.sql = sqlString
If Nz(Me.txtSM, "") = "" Then
MsgBox "Please enter SM name"
Resume Exit_Update
ElseIf Nz(Me.txtAM, "") = "" Then
MsgBox "Please enter AM name"
Resume Exit_Update
End If
DoCmd.OpenQuery "UpdateSM"
qdf.Close
CurrentDb.Close
Exit_Update:
Exit Sub
Exit_UpdateEmail:
If Err.Number = 2501 Then
Resume Exit_Update
Else
MsgBox Err.Description
Resume Exit_Update
End If
End Sub
答案 0 :(得分:0)
这只是一个示例。
您应该使用空格将Me.txtAM中的字符串值吐出。
name = Split(Me.txtAM, " ")
根据您的需要重新排列值并将其存储到变量中。您需要先检查数组的长度。
name1 = name(0)
name2 = name(1)
name3 = name(2)
sqlString = "UPDATE KissFlowtbl SET SM = '" & Me.txtSM & "' WHERE AM Like '*" & name1 & "*' " AND AM Like '*" & name2 & "*' " AND AM Like '*" & name3 & "*' "