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

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

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


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