VBA Looping через таблицы в Access - PullRequest
       0

VBA Looping через таблицы в Access

0 голосов
/ 25 октября 2018

Я использую VBA для автоматического создания столбца и обновления столбца в нескольких таблицах в моей БД доступа.У меня есть код работает, но я хочу сделать его динамическим с помощью цикла.Когда я превращаю это в цикл, код выдает мне сообщение об ошибке.Как бы я сделал мой код динамическим?Например, этот код работает, он добавляет столбец (ID) к таблице (1234_CompanyA) и заполняет его 1234-E.

Dim strDdl As String
strDdl = "ALTER TABLE 1234_CompanyA ADD COLUMN ID TEXT(255)"
CurrentProject.Connection.Execute strDdl

Dim strDdl2 As String
strDdl2 = "UPDATE [1234_CompanyA] SET [1234_CompanyA].[ID]=""1234-E"""
CurrentProject.Connection.Execute strDdl2

Однако я хочу сделать код в цикле, определив таблицу какобъект, использующий код:

Dim tbl(3) As Object
Dim strDdl As String
Dim strDdl2 As String
Dim id(3) as String

tbl(1) = [1234_CompanyA]
tbl(2) = [1234_CompanyB]
tbl(3) = [1234_CompanyC]

id(1)= "1234-E"
id(2)= "5678-C"
id(3)= "9012-G"

For i = 1 To 3

    strDdl = "ALTER TABLE tbl(i) COLUMN ID TEXT(255)"
    CurrentProject.Connection.Execute strDdl

    strDdl2 = "UPDATE tbl(i) SET tbl(i).[ID]= id(1)"
    CurrentProject.Connection.Execute strDdl2

Next i

Как бы получить код, работающий как цикл?

Спасибо :))

1 Ответ

0 голосов
/ 25 октября 2018

Вам нужно создать свои команды следующим образом:

Dim tbl(3) As Object
Dim strDdl As String
Dim strDdl2 As String
Dim id(3) As String

tbl(1) = "[1234_CompanyA]"
tbl(2) = "[1234_CompanyB]"
tbl(3) = "[1234_CompanyC]"

id(1) = "1234-E"
id(2) = "5678-C"
id(3) = "9012-G"

For i = 1 To 3

    strDdl = "ALTER TABLE " & tbl(i) & " COLUMN ID TEXT(255)"
    CurrentProject.Connection.Execute strDdl

    strDdl2 = "UPDATE " & tbl(i) & " SET " & tbl(i) & ".[ID] = '" & id(1) & "'"
    CurrentProject.Connection.Execute strDdl2

Next i

Обратите внимание, что переменные были разбиты и не встроены в строку, а кавычки были добавлены к tbl переменным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...