powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос про запрос
25 сообщений из 191, страница 6 из 8
Вопрос про запрос
    #32540092
Фотография Lisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надо, все в порядке, я все нашла. :-) Спасибо всем!!!
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540093
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ну и посмотри, что ты написала в openrecordset.
select ... where 2>3
Никаких упоминаний полей из таблицы у тебя там нет.
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540094
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Не знаю, то ли ты нашла... :^)
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540097
Фотография Lisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласна, не то нашла. :-) "А такого же, только с перламутровыми пуговицами? Нет? Будем искать". :-)
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540103
Фотография Lisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таки получилось. :-) Не прошло и года. :-))
Саныч, суди сам:
dim strTime1 as variant
dim ss as string
For i = 1 To Application.FileSearch.FoundFiles.Count
...
strTime1 = Mid(strTime, 2, 8)
If DLookup("SEL", "Stat", "Vremya=" & strTime) > DLookup("SEL", "Stat", "Vremya=#" & DateAdd("n", -30, strTime1) & "#") Then
ss = "select * from Stat where SEL =" & DLookup("RT_SEL_FAIL", "Stat", "Vremya=" & strTime) & ""
End If
Set rs = CurrentDb.openrecordset(ss, dbopendynaset, dbreadonly)
Do Until rs.EOF
далее по тексту
Next i

Сделала в цикле импорта файлов, т.к. не знаю как еще отлавливать все возможные превышения значений. Хотя, это скорее всего увеличит время обработки данных, т.к. Do Until rs.EOF будет просматривать всю таблицу. Как бы этого избежать?
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540104
Фотография Lisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ай, опять ошиблась. :-)
"Set rs = CurrentDb.openrecordset(ss, dbopendynaset, dbreadonly)
Do Until rs.EOF
далее по тексту"
из цикла выносим. :-)
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540108
Фотография Lisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обратила внимание, что говорю сама с собой. :-) Во как пристрастилась!!! :-) На сим позвольте попрощаться. :-)
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540123
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я вернулся. Lisha, тебе домашнее задание: сосчитать, сколько раз я говорил, что strTime1 не должен быть стрингом.
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540143
Фотография Lisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, а он уже и не стринг между прочим. :-) Он вариант. :-) Все равно считать?
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540145
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Да, я был некорректен. :^) Но замечание все равно остается в силе. Ты в него заносишь значение типа стринг: Mid(чегототам). А надо в него заносить время, иначе функция DateAdd может работать неправильно.

TimeSerial(часы,минуты,секунды)

где часы, минуты и секунды можно получить как Val(Mid(...))
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540150
Фотография Lisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо, я буду иметь в виду. Но только я уже по 10-му разу прогоняю программу и все нормально. К тому же, у меня strTime1 = Mid(strTime,2,8), где strTime = "#hh/mm/ss#". Имеется ли необходимость в Val?
Саныч, я тут по ходу еще кое-что придумала. :-) Начала искать как делать, но что-то не нашла. Поэтому, опять к тебе. :-) Ситуация такая. Эти ошибки мне хотелось бы хранить в другой таблице, которая состояла бы из типа ошибки, значения превышающего пороговое, м.б. само пороговое значение, ну и дата, время, имя SLU.
Начала делать через UPDATE, но ничего не добаляется.
With CurrentDb
.Execute "UPDATE oshyb SET TipOsh = '" & tp & "';"
.Execute "UPDATE oshyb SET Data = " & strDate & " where Data is null;"
.Execute "UPDATE oshyb SET Vremya = " & strTime & " where Vremya is null;"
.Execute "UPDATE oshyb SET NameSLU = '" & strName & "' where NameSLU is null;"
End With
tp = "тип ошибки"
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540152
Фотография Lisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>где strTime = "#hh/mm/ss#"
корректировка: где strTime = "#hh:mm:ss#"
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540160
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
На первый вопрос: то, что Аксесс сам умеет преобразовывать стринг в дату/время, это хорошо, но ненадежно. Завтра тебе надо будет запустить ту же программу на компе, где в настройках Windows в качестве разделителя времени задан другой символ, - и все, оно уже работать не будет.

На второй вопрос: надо не UPDATE (изменение существующих данных), а INSERT (добавление новых). И, разумеется, все поля одной командой.
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540195
Фотография Lisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень надеялась, что ты не успеешь отвентить на второй вопрос. Меня тут из и-нета выгоняли. :-) так я сама догадалась. :-) Точнее не так, смогла найти решение. :-) Хоть чуть-чуть реабилитировалась в собственных глазах. :-)))

Насчет первого замечания согласна.
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540196
Фотография Lisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>отвентить
гы... :-) ответить, конечно.
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540208
Фотография Lisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все было хорошо, пока я не начала усложнять задачу. Сначала я в качетве данных брала 3 разных файла (разница на 30 минут во времени, и разница в поле SEL на 1), в которых пороговое значение превышается 2 раза, одно за другим. Теперь я усложнила задачу. Беру по 3 файла, одного времни, нос разными значениями SEL. И вот какая бяка получается. В результате показывается только самое максимально значение а не все, удовлетворяющие условию.
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540211
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
авторВ результате показывается только самое максимально значение а не все, удовлетворяющие условию.
В результате чего?
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540215
Фотография Lisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В результате прогонки программы.
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540217
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Показывается где? Какая часть программы что-то показывает? У нас вроде обсуждался только импорт и проверки.
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540219
Фотография Lisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извини, Саныч, все время забываю, что ты начинающий телепат. :-)

If DLookup("SEL", "Stat", "Vremya=" & strTime) > DLookup("SEL", "Stat", "Vremya=#" & DateAdd("n", -30, strTime1) & "#") Then
ss = "select * from Stat where SEL =" & DLookup("SEL", "Stat", "Vremya=" & strTime) & ""
dl = DLookup("SEL", "Stat", "Vremya=" & strTime)
Call SEL(ss, strDate, strTime, strName, dl)
End If

Private Function SEL(ss, strDate, strTime, strName, dl)
Dim tp As String
tp = "Selection"

Set rs = CurrentDb.openrecordset("select * from Stat where SEL =" & DLookup("SEL", "Stat", "Vremya=" & strTime), dbopendynaset, dbreadonly)
Do Until rs.EOF
s = s & "SEL=" & CStr(rs!SEL) & ", Date=" & CStr(rs!Data) & ", Time=" & CStr(rs!Vremya) & ", SLU=" & rs!NameSLU & vbNewLine
CurrentDb.Execute "insert into oshyb (Osh) values ('" & CStr(rs!SEL) & "');"
rs.MoveNext
Loop
rs.Close
If s > "" Then MsgBox s & "- это данные, в которых SEL превышает"

With CurrentDb
.Execute "UPDATE oshyb SET TipOsh = '" & tp & "' where TipOsh is null;"
.Execute "UPDATE oshyb SET Data = " & strDate & " where Data is null;"
.Execute "UPDATE oshyb SET Vremya = " & strTime & " where Vremya is null;"
.Execute "UPDATE oshyb SET NameSLU = '" & strName & "' where NameSLU is null;"
End With

End Function
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540220
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ну и где оно показывается?
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540222
Фотография Lisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В MsgBox.
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540223
Фотография Lisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дайте мне пистолет/револьвер/маузер, я застрелюсь.
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540225
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А. Дошло. Ну, чаво... Смотрю я на твой селект.

"select * from Stat where SEL =" & DLookup("SEL", "Stat", "Vremya=" & strTime)

То есть выбрать те записи, в которых SEL такое же, как в той записи, где Vremya равно некоторому определенному. Если SEL во всех записях разное, то все работает правильно.
...
Рейтинг: 0 / 0
Вопрос про запрос
    #32540226
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Де дадо стреляться! Если ты застрелишься, то в форуме человек 10-15 мужиков повесятся.
...
Рейтинг: 0 / 0
25 сообщений из 191, страница 6 из 8
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос про запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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