MS Access VBA: ошибка синтаксиса в отчете об обновлении

Хотя уже ответили, и автор намерен создать приложение типа front controller, но я отправляю буквальное правило для заданной проблемы. если у кого-то проблема такая же.

RewriteEngine On
RewriteRule ^([^/]+)/([^/]+)/([\d]+)$ $1?id=$3 [L]

Выше должно работать для url picture.php/Some-text-goes-here/51. без использования index.php в качестве приложения для перенаправления.

0
задан Jiggles32 13 July 2018 в 22:41
поделиться

2 ответа

Решение найдено.

Function Set_Row_ID()

    Dim db As DAO.Database
    Dim Tbl As DAO.Recordset
    Dim sql As String
    Dim Row_Counter As Integer
    Dim Total_Row As Integer

    Set db = CurrentDb

    'Initialising Row Counter variable
    Row_Counter = 1

    sql = "SELECT [Tbl - HOP Loan Data].[Row ID] FROM [Tbl - HOP Loan Data];"
    Set Tbl = db.OpenRecordset(sql, dbOpenDynaset)

    With Tbl
        Do Until Tbl.EOF
            If Row_Counter <= Total_Row Then
                sql = "UPDATE [Tbl - HOP Loan Data " & _
                    "SET [Row ID] = " & Row_Counter & _
                    "Where [Row ID] < " & Row_Counter & " ;"
                db.Execute (sql)
                Row_Counter = Row_Counter + 1
            End If
            .MoveNext
        Loop
    End With

End Function
0
ответ дан Gareth W 17 August 2018 в 12:26
поделиться

Вам нужно использовать SET в вашем обновленном запросе, вы, вероятно, просто пропустили его со всеми экстрактивными материалами VBA, которые вам нужно было добавить в запрос.

Мое предложение (в общем) - это запись как обычно, через Access, а затем изменить этот запрос для использования в VBA.

Например, сначала напишите этот запрос так (в Access SQL Editor для тестирования):

UPDATE [Tbl - HOP Loan Data]
SET [Tbl - HOP Loan Data].[Row ID] = 1
WHERE [Tbl - HOP Loan Data].[Row ID] < 1

В любом случае попробуйте это:

sql = "UPDATE [Tbl - HOP Loan Data] " & _
    "SET [Tbl - HOP Loan Data].[Row ID] = " & Row_Counter & _
    "WHERE [Tbl - HOP Loan Data].[Row ID] < " & Row_Counter & " ;"

ПРИМЕЧАНИЕ : оператор WHERE является скорее всего ненужным, в зависимости от вашей структуры таблицы .

0
ответ дан Jiggles32 17 August 2018 в 12:26
поделиться
  • 1
    Спасибо за ваши предложения @ Jiggles32, однако я все еще застрял. – Gareth W 16 July 2018 в 09:01
  • 2
    Чтобы прояснить цель кода: «Идентификатор строки» поле в пределах данных «Tbl - HOP Loan», таблица предназначена для представления номера строки (то есть последовательного подсчета) для последующей ссылки. SQL, который создает начальную таблицу, установит значение по умолчанию «0». для всех строк. Затем кодирование VBA кодировалось для постепенного обновления отдельных значений, поэтому секция VBA с условием «where» (т. е. я хочу только обновить строки, в которых поле Row ID меньше, чем переменная Row-Counter). – Gareth W 16 July 2018 в 09:12
  • 3
    Текущий код выглядит следующим образом: с Tbl Do до Tbl.EOF Если Row_Counter & lt; = Total_Row Затем sql = "UPDATE [Tbl - HOP Loan Data & quot; & Амп; _ «SET [Tbl - HOP Loan Data]. [Row ID] = & quot; & Амп; Row_Counter db.Execute (sql) Row_Counter = Row_Counter + 1 End If .MoveNext Loop End With – Gareth W 16 July 2018 в 09:16
  • 4
    Возможно, есть более простой способ получить требуемый конечный результат? Я открыт для предложений. Благодарю. – Gareth W 16 July 2018 в 09:17
  • 5
    Решение найдено. Ответ был опубликован. – Gareth W 16 July 2018 в 13:58
Другие вопросы по тегам:

Похожие вопросы: