MS Access - дата как имя поля таблицы

Мне нужно создать таблицу в MS Access, а затем добавить столбцы с DATES в качестве имен полей на основе предоставленного пользователем диапазона дат (StartDate, EndDate), например так:

Фамилия | FirstName | Роль | 01.10.2017 | 02.10.2017 | ....

Следующий фрагмент кода подходит близко, но может использовать только даты, отформатированные как "Oct01" (мммдд), против требуемого "10/01/2017". Клянусь, мои самые ранние попытки действительно привели к желаемому формату даты в качестве имени поля, но, похоже, я не могу воспроизвести - угадаю проблему синтаксиса "format";

Dim db As Database
Dim StartDate As Date
Dim EndDate As Date
Dim strDate As String

Set db = CurrentDb

StartDate = #10/1/2017#
strDate = Format(StartDate, "mmmdd")

db.Execute "CREATE TABLE MyTable " & _
    "(LastName CHAR, FirstName CHAR, Role CHAR);"
db.Close

CurrentDb.Execute "ALTER TABLE myTable ADD COLUMN " & Format(StartDate, "mmmdd") & " CHAR"

StartDate = StartDate + 1

CurrentDb.Execute "ALTER TABLE myTable ADD COLUMN " & Format(StartDate, "mmmdd") & " CHAR"

...

1 ответ

Решение

Заключите имя поля в квадратные скобки следующим образом:

  CurrentDb.Execute "ALTER TABLE myTable ADD COLUMN [10/02/1017] CHAR"

Квадратные скобки позволяют использовать пробелы или другие специальные символы в идентификаторах. Вам также нужно будет использовать скобки при обращении к имени поля в любых других выражениях SQL.

Даже если вы можете сделать это, на практике не рекомендуется использовать специальные символы в именах идентификаторов.

Другие вопросы по тегам