У меня есть код для обновления серии файлов MDB из файла Master MDB. Код извлекает адрес каталога из таблицы в мастере. Однако некоторые имена каталогов содержат точки. Это приводит к ошибке «Ошибка времени выполнения 3126 Неверный брекетинг имени K: \ DRUMSFILES \ CARDINAL LÉGER JR. HIGH SCHOOL \ JOB1_SJ3911 - SS \ DATA \ student] .mdb"
Период в «JR». вызывает ошибку. У меня нет контроля над именами каталогов.
Я пробовал двойные кавычки и квадратные скобки, но не нашел комбинации, которая работает.
Вот как выглядит код:
Dim sqlStr As String
Dim db As dao.Database
Dim rs As dao.Recordset
sqlStr = "SELECT SchoolFilePath from Jobs;"
Set db = CurrentDb
Set rs = db.OpenRecordset(sqlStr)
rs.MoveFirst
DoCmd.SetWarnings (WarningsOff)
Do While Not rs.EOF
filePath = rs.Fields("SchoolFilePath") & "\students.mdb"
strSQL = "DELETE FROM AddItems IN '" & filePath & "';"
CurrentProject.Connection.Execute strSQL
sqlStr = "insert into AddItems (Item1, Item2, Item3) IN '" & filePath & "' VALUES ('Retouch', 'Problem Orders', 'Class Photo/Memory Book');"
Debug.Print sqlStr
DoCmd.RunSQL (sqlStr)
rs.MoveNext
Loop
DoCmd.SetWarnings (WarningsOn)
Строка отладки показывает, как выглядит строка SQL. Выключены последние ошибки:
insert into AddItems (Item1, Item2, Item3) IN 'K:\DRUMSFILES\CAMILLA SCHOOL\JOB1_MD3907 - 2PMB\DATA\students.mdb' VALUES ('Retouch', 'Problem Orders', 'Class Photo/Memory Book');
insert into UserFields (User1, User2, User3) IN 'K:\DRUMSFILES\CAMILLA SCHOOL\JOB1_MD3907 - 2PMB\DATA\students.mdb' VALUES ('Problem Order', 'Family Plan', 'Late/Reorder');
insert into AddItems (Item1, Item2, Item3) IN 'K:\DRUMSFILES\CAMILLA SCHOOL\JOB2_MD3907 - 1 - 2PMB - RTK\DATA\students.mdb' VALUES ('Retouch', 'Problem Orders', 'Class Photo/Memory Book');
insert into AddItems (Item1, Item2, Item3) IN 'K:\DRUMSFILES\CARDINAL LÉGER JR. HIGH SCHOOL\JOB1_SJ3911 - SS\DATA\students.mdb' VALUES ('Retouch', 'Problem Orders', 'Class Photo/Memory Book');