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.
Даже если вы можете сделать это, на практике не рекомендуется использовать специальные символы в именах идентификаторов.