Как найти в столбце слова, которые находятся в разных позициях - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь обновить поле, в котором имена содержат все, что набрал пользователь. Я использовал подстановочный знак, и он работал для большинства имен.Для некоторых имен это не работает, потому что в столбце сначала указывается фамилия, затем отчество, а затем их фамилия.Таким образом, когда пользователи вводят имя и фамилию, запрос не может найти имя, потому что порядок введенного имени неверен.Как мне сделать так, чтобы порядок имен, напечатанных в моей форме, не имел значения, и пользователи все равно могли бы искать поле и обновлять независимо.

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

1 Ответ

0 голосов
/ 11 июля 2019

Это просто пример.

Вы должны выплевать строковое значение из 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 & "*'  "
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...