powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запросы на добавление в таблицы, с параметрами из формы
7 сообщений из 132, страница 6 из 6
Запросы на добавление в таблицы, с параметрами из формы
    #39939402
Loxinfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург
Сейчас заметил что параметры у тебя DateTime, а не Long
Панург
Код: sql
1.
2.
3.
4.
PARAMETERS [City] Text (255), [CheckOut] DateTime, [CheckIn] DateTime, ...;
INSERT INTO vbs_Invoice_Q_Between (Id, [In House])
SELECT ..., [CheckOut]-[CheckIn] AS [In House], ...
FROM ...



Не работает, выдает ошибку на Execute
Я думаю, коду не нравится поле [In House], так как в одном месте сразу 2 переменные [CheckOut] и [CheckIn]
...
Рейтинг: 0 / 0
Запросы на добавление в таблицы, с параметрами из формы
    #39939408
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Loxinfo, ты картинки лучше не выставляй это малоинформативно, пиши номер и текст ошибки (в месседжбоксе которые, копировать их можно стандартно - Ctrl+C), далее нажимай на кнопку Debug и сообщай на какой строке (её выделит жёлтым).

Уже наверное не плохо бы сделать тестовую базу - таблицы входящие в запросы, сами запросы и форму. Больше ничего не нужно. Сделать можно копированием объектов в пустую бд. Немного искажённых, но близких к реальным данных тоже рекомендуется поместить. А то так долго можно мурижить... Пример поджать и заархивировать

По первой ошибке у тебя дата, видимо, нифига не дата
...
Рейтинг: 0 / 0
Запросы на добавление в таблицы, с параметрами из формы
    #39939411
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Loxinfo,

Если [CheckOut] и [CheckIn] даты, то можно попробовать так:
вместо
Код: sql
1.
[CheckOut]-[CheckIn] AS [In House]


написать
Код: sql
1.
Cdate([CheckOut])-Cdate([CheckIn]) AS [In House]
...
Рейтинг: 0 / 0
Запросы на добавление в таблицы, с параметрами из формы
    #39939417
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Loxinfo, да и код при внимательном просмотре (кажется) не совсем правильный
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Sub tt_Click()
Dim dbs As DAO.Database, qdf As DAO.QueryDef
Dim vArray
Dim i As Long

vArray = VBA.Array("vbs_Q_Between_Add")', "vbs_Q_Not_Between_Add", "vbs_Q_From_Add", "vbs_Q_To_Add")

Set dbs = CurrentDb

  For i = LBound(vArray) To UBound(vArray)
    Set qdf = dbs.QueryDefs(vArray(i))'тут у тебя ошибки не возникает исключительно случайно, т.к. i=0
        With qdf.Parameters
            .Item("[City]").Value=Nz(Me.City)
            .Item("[CheckIn]").Value=Nz(Me.CheckIn)
            .Item("[CheckOut]").Value=Nz(Me.CheckOut)
            .Item("[Adult]").Value=Nz(Me.Adult)
            .Item("[Child]").Value=Nz(Me.Child)
        end with
    qdf.Execute
    Debug.Print vArray(i), vbTab, "обработано записей ",  qdf.RecordsAffected
  Next i

End Sub

...
Рейтинг: 0 / 0
Запросы на добавление в таблицы, с параметрами из формы
    #39939425
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4d_monster
Код: sql
1.
Cdate([CheckOut])-Cdate([CheckIn]) AS [In House]

В данном случае это припарка, т.к. значения ещё не раз используются (но это не точно) и следует передавать сразу правильно типизированное значение. В окне Immediate (см. выше на картинке) видно странное форматирование, возможно это текст, а не дататайм.

Приходится догадываться по фотке. Дружно щупаем слона (слепые) и описываем, кто что понял.
...
Рейтинг: 0 / 0
Запросы на добавление в таблицы, с параметрами из формы
    #39939479
Loxinfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург
4d_monster
Код: sql
1.
Cdate([CheckOut])-Cdate([CheckIn]) AS [In House]

В данном случае это припарка, т.к. значения ещё не раз используются (но это не точно) и следует передавать сразу правильно типизированное значение. В окне Immediate (см. выше на картинке) видно странное форматирование, возможно это текст, а не дататайм.

Приходится догадываться по фотке. Дружно щупаем слона (слепые) и описываем, кто что понял.



УРААААА..., Cdate сработало...
Сейчас все взад верну, я имею ввиду запросы, код и т.д., я их кастрировал, пока искал где ошибка, и все еще раз проверю

Спасибо, спасибо, спасибо большое
...
Рейтинг: 0 / 0
Запросы на добавление в таблицы, с параметрами из формы
    #39939921
Loxinfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, я повторюсь..., большое спасибо Панург
Запросы перебрал, код шикарный, все работает
В итоге
Код который не дает всплывающих предупреждений и работает плавно, тихо
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Sub tt_Click()
Dim dbs As DAO.Database, qdf As DAO.QueryDef, prp As DAO.Parameter
Dim vArray
Dim i As Long

vArray = VBA.Array("vbs_Q_Between_Add", "vbs_Q_Not_Between_Add", "vbs_Q_From_Add", "vbs_Q_To_Add")

Set dbs = CurrentDb

  For i = LBound(vArray) To UBound(vArray)
    Set qdf = dbs.QueryDefs(vArray(i))
Debug.Print String(10, "-")
Debug.Print vArray(i)
      For Each prp In qdf.Parameters
        prp.Value = Eval(prp.Name)
Debug.Print prp.Name; Tab; prp.Value
      Next
        qdf.Execute
  Next i

End Sub



Код который принимает любой запрос, но код "шумный"

Код: plsql
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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
Private Sub UpdateQuery_Click()
Dim qdf As QueryDef
On Error GoTo Errhandler
DoCmd.SetWarnings False

    Set qdf = CurrentDb.QueryDefs("vbs_Q_Between_Add_temp")
    Set qdf = CurrentDb.QueryDefs("vbs_Q_Not_Between_Add_temp")
    Set qdf = CurrentDb.QueryDefs("vbs_Q_From_Add_temp")
    Set qdf = CurrentDb.QueryDefs("vbs_Q_To_Add_temp")
    
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_Between_Add").sql, "Forms!HotelCalculator!City", "'City'")
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_Between_Add").sql, "Forms!HotelCalculator!CheckIn", "CheckIn")
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_Between_Add").sql, "Forms!HotelCalculator!CheckOut", "CheckOut")
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_Between_Add").sql, "Forms!HotelCalculator!Adult", "Adult")
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_Between_Add").sql, "Forms!HotelCalculator!Child", "Child")
    
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_Not_Between_Add").sql, "Forms!HotelCalculator!City", "'City'")
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_Not_Between_Add").sql, "Forms!HotelCalculator!CheckIn", "CheckIn")
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_Not_Between_Add").sql, "Forms!HotelCalculator!CheckOut", "CheckOut")
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_Not_Between_Add").sql, "Forms!HotelCalculator!Adult", "Adult")
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_Not_Between_Add").sql, "Forms!HotelCalculator!Child", "Child")
    
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_From_Add").sql, "Forms!HotelCalculator!City", "'City'")
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_From_Add").sql, "Forms!HotelCalculator!CheckIn", "CheckIn")
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_From_Add").sql, "Forms!HotelCalculator!CheckOut", "CheckOut")
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_From_Add").sql, "Forms!HotelCalculator!Adult", "Adult")
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_From_Add").sql, "Forms!HotelCalculator!Child", "Child")
    
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_To_Add").sql, "Forms!HotelCalculator!City", "'City'")
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_To_Add").sql, "Forms!HotelCalculator!CheckIn", "CheckIn")
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_To_Add").sql, "Forms!HotelCalculator!CheckOut", "CheckOut")
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_To_Add").sql, "Forms!HotelCalculator!Adult", "Adult")
    qdf.sql = Replace(CurrentDb.QueryDefs("vbs_Q_To_Add").sql, "Forms!HotelCalculator!Child", "Child")
  
    DoCmd.OpenQuery "vbs_Q_Between_Add_temp"
    DoCmd.OpenQuery "vbs_Q_Not_Between_Add_temp"
    DoCmd.OpenQuery "vbs_Q_From_Add_temp"
    DoCmd.OpenQuery "vbs_Q_To_Add_temp"
    
    Exit Sub
Errhandler:
    Select Case Err.Number
        Case 3265
            DoCmd.CopyObject , "vbs_Q_Between_Add_temp", acQuery, "vbs_Q_Between_Add"
            DoCmd.CopyObject , "vbs_Q_Not_Between_Add_temp", acQuery, "vbs_Q_Not_Between_Add"
            DoCmd.CopyObject , "vbs_Q_From_Add_temp", acQuery, "vbs_Q_From_Add"
            DoCmd.CopyObject , "vbs_Q_To_Add_temp", acQuery, "vbs_Q_To_Add"
            DoCmd.SetWarnings True
            Resume
        Case Else
            MsgBox Err.Number & " " & Err.Description
    End Select
End Sub



Спасибо...
...
Рейтинг: 0 / 0
7 сообщений из 132, страница 6 из 6
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запросы на добавление в таблицы, с параметрами из формы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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