Перебирая все элементы в поле и обновляя другое поле, используя VBA в доступе - PullRequest
0 голосов
/ 29 октября 2010

У меня есть два поля, одно - просто номер другого, например, Поле 1 = "12AB", а Поле 2 - "12".Я пытаюсь сделать автообновление поля 2, но я не знаю, как.

Я пытаюсь получить:

ClassName ClassYear
12AB      12
13BU      13
15BE      15

Но вместо этого все поля обновляются до числав последнем:

ClassName ClassYear
12AB      15
13BU      15
15BE      15

Код, который у меня сейчас есть,

  Dim db As DAO.Database
  Dim rst As DAO.Recordset
  Set db = CurrentDb
  Set rst = db.OpenRecordset("MasterTable")

  With rst
  Do Until .EOF
    .Edit
    If (Left(ClassName.Text, 1) = "1") Then
      !ClassYear = Left(ClassName.Text, 2)
    Else
      !ClassYear = Left(ClassName.Text, 1)
    End If
    .Update
    .MoveNext
  Loop

  .Close
  End With

Помощь очень ценится!Спасибо:)

1 Ответ

3 голосов
/ 29 октября 2010

Как насчет чего-то вроде:

 sSQL = "UPDATE MasterTable SET ClassYear=Left(ClassName,2) " _
      & "WHERE Left(ClassName,1)='1'"
 CurrentDB.Execute sSQL, dbFailOnError

 sSQL = "UPDATE MasterTable SET ClassYear=Left(ClassName,1) " _
      & "WHERE Left(ClassName,1)<>'1'"
 CurrentDB.Execute sSQL, dbFailOnError
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...