Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Руками UPDATE но из VBA не UPDATE / 5 сообщений из 5, страница 1 из 1
13.07.2018, 14:01
    #39673727
Толикman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Руками UPDATE но из VBA не UPDATE
Всем привет!

не могу ничего понять...
Есть такой код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Private qSQL As New Dictionary

Public Sub GeneratesSQL()
    
    Dim qd As QueryDef

    qSQL.RemoveAll

    For Each qd In CurrentDb.QueryDefs
    
        qSQL.Add qd.name, Replace(qd.SQL, "TempVars]![", "tv_")
        
    Next qd
    
End Sub

Public Sub rq(ParamArray args() As Variant)
    
    With CurrentDb.CreateQueryDef("", qSQL(args(LBound(args))))
    
        For i = LBound(args) + 1 To UBound(args) Step 2
            .Parameters("[" & args(i) & "]").Value = args(i + 1)
        Next i
        
        .Execute dbFailOnError
        
        .Close
    
    End With
    
End Sub



Мне так удобно - я редактирую запросы в графическом интерфейсе, а GenerateSQL грабит их в словарь и потом с помощью rq их можно вызывать, например вот так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Sub test()
    
    qp.GeneratesSQL

    rq "Копия Финальный отчет", _
        "Дата записи", Now(), _
        "Автор", 198, _
        "Контакты", "Ольга Николаевна - главный бухгалтер", _
        "Комментарий", "Согласны без увеличения чека - на данный момент качество устраивает", _
        "tИНН", 123456789123#, _
        "tРФ", GetMyRF()

End Sub



В качестве первого параметра передаем название запроса, в качестве остальных - пары Название параметра - Значение параметра.

Есть такой запрос "Копия Финальный отчет":
Код: sql
1.
2.
3.
PARAMETERS Контакты Text ( 255 ), Комментарий LongText, [Дата записи] DateTime, Автор Long, tИНН IEEEDouble, tРФ Long;
UPDATE ИНН SET ИНН.[Автор отчета] = [Автор], ИНН.[Дата отчета] = [Дата записи], ИНН.[Контактное лицо] = [Контакты], ИНН.[Комментарии клиента] = [Комментарий]
WHERE (((ИНН.ИНН)=[tИНН]) AND ((ИНН.РФ)=[tРФ]));



из qSQL он выводится точно таким же.

Так вот этот запрос при ручном запуске выполняется отлично и строка получает свои обновления, а при запуске из VBA - ошибок нет, но и изменений нет.

ИНН - это таблица так называется (ну так вышло)...
т.е. запрос примитивный.

Помогите разобраться, почему из VBA запрос не изменяет данные?
...
Рейтинг: 0 / 0
13.07.2018, 14:32
    #39673745
Руками UPDATE но из VBA не UPDATE
Толикman "Дата записи", Now(), _
Как минимум - значение даты передается в неправильном формате.
Варианты:
1. Привести значение к виду ММ/ДД/ГГ ...
2. Попробовать вариант "Дата записи", " Now() " , _
3. Если всегда присваивается текущее дата/время, то указать Now() прямо в запросе вместо параметра.
...
Рейтинг: 0 / 0
13.07.2018, 14:53
    #39673755
Толикman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Руками UPDATE но из VBA не UPDATE
Кривцов Анатолий,

я же передаю дату как параметр, access сам преобразует ее в нужный формат, я не вставляю ее в строку запроса.
Я уже читал такую проблему и пробовал избавить от даты и вписать Now() прямо в запросе. Это не помогло, обновление не состоялось...
...
Рейтинг: 0 / 0
13.07.2018, 16:53
    #39673827
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Руками UPDATE но из VBA не UPDATE
Толикman....access сам преобразует ее в нужный формат.. В VBA нет,в конструкторе да(наберите в строке условие отбора и посмотрите текст-дата преобразуется)
в VBA должно быть:
Код: vbnet
1.
[Дата отчета] = format([Дата записи],"mm\/dd\/yy")
...
Рейтинг: 0 / 0
13.07.2018, 17:12
    #39673836
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Руками UPDATE но из VBA не UPDATE
А почему эту задачу(если я её правильно понял-если нет,пожалуйста, поясните) не решить меняя свойство SQL существующего запроса
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Руками UPDATE но из VBA не UPDATE / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]