MS Access Database вставляет значения в столбец с помощью запроса vba и sql - PullRequest
1 голос
/ 30 января 2020

Есть ли способ добавить столбец в базу данных MS Access, используя VBA и запрос SQL, а затем вставить значения, используя формулы из другого столбца.

Например, я хочу создать столбец employee, и он должен иметь рассчитанные значения для всех записей. Я хочу использовать LEFT(col2, 3) в поле employee.

Это мой код:

Sub createcolumn()
    Dim objAccess As Object
    Set objAccess = CreateObject("Access.Application")
    Call objAccess.OpenCurrentDatabase("H:\VBA\Array Practice\Database1array.accdb")
    objAccess.CurrentProject.Connection.Execute ("ALTER TABLE Company ADD COLUMN employee CHAR ")
End Sub
Sub insertvalues()
    Dim objAccess As Object
    Set objAccess = CreateObject("Access.Application")
    Call objAccess.OpenCurrentDatabase("H:\VBA\Array Practice\Database1array.accdb")
    objAccess.CurrentProject.Connection.Execute "INSERT INTO Employee (Gross) VALUES LEFT([full_name], 3)"
End Sub

Я могу создать новый столбец, но не могу вставить значение.

Ответы [ 2 ]

1 голос
/ 30 января 2020

Вы можете напрямую обновить таблицу, используя столбец FULL_NAME вместо вставки. Я проверил следующий код, и он работает.

Sub test()
Dim dbs As Database
Set dbs = OpenDatabase("Database1.accdb")  
dbs.Execute "UPDATE EMPLOYEE SET GROSS=LEFT(FULL_NAME, 3)"
dbs.Close
End Sub
0 голосов
/ 02 февраля 2020

Вы добавили столбец в таблицу с именем Company, но вы пытаетесь вставить значения в таблицу с именем employee.

Если таблица с именем company представлена ​​в виде записей, то для добавления значений вам нужно добавить оператор обновления. в новый столбец employee, но если в таблице нет записей, оператор вставки можно использовать для добавления значений в поле employee.

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