Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Select в событии  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310
OutData.Open "UPDATE Приведенные " & _
"SET Приведенные.Остаток = Ost " & _
"WHERE (((Приведенные.[Код заказа])='" & _
CStr(Part) & _
"') AND ((Приведенные.Наименование)='" & _
CStr(SubPart) & "'))", Connect
27 сен 05, 12:08    [1913196]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Iskander68
Member

Откуда: Королев М.О.
Сообщений: 877


Строку для запроса нужно собрать так, чтобы были реальные значения, а не
передавать ссылки на поля в формке. Т.е. не

SQL = "Select * From MyTable Where MyField = Forms!MyForm!FieldInForm"
а
SQL = "Select * From MyTable Where MyField = " &
Forms![MyForm!FieldInForm - если MyField число
и
SQL = "Select * From MyTable Where MyField = '" & Forms!MyForm!FieldInForm
& "'" - если MyField строка.

В общем, см. FAQ.

Да, убери условие из Having в Where - как тебе уже сказали.
И потом, у тебя уже есть переменные Part и Subpart.
Так что должно быть примерно так:
SQL = "SELECT Проведенные.Партия, Проведенные.Подпартия,
Sum(CCur(Round([Количество],3))) " & _
"AS SumRem FROM Проведенные Where Проведенные.Партия = " &
Part & _
" AND Проведенные.Подпартия = " & SubPart & _
" GROUP BY Проведенные.Партия, Проведенные.Подпартия"
И кстати, какой смысл в

OutData.Open "UPDATE Приведенные " & _
"SET Приведенные.Остаток = Ost " & _
"WHERE (((Приведенные.[Код заказа])='" & _
CStr(Part) & _
"') AND ((Приведенные.Наименование)='" & _
CStr(SubPart) & "'))", Connect
Почему не
Connect.Execute "UPDATE Приведенные " & _
"SET Приведенные.Остаток = Ost " & _
"WHERE (((Приведенные.[Код заказа])='" & _
CStr(Part) & _
"') AND ((Приведенные.Наименование)='" & _
CStr(SubPart) & "'))", Connect
???
Опять же, ГОРАЗДО удобнее строковое значение дать переменной.
--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.3

27 сен 05, 12:32    [1913355]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Diroled
Member

Откуда:
Сообщений: 418
Latuk
OutData.Open "UPDATE Приведенные " & _
"SET Приведенные.Остаток = Ost " & _
"WHERE (((Приведенные.[Код заказа])='" & _
CStr(Part) & _
"') AND ((Приведенные.Наименование)='" & _
CStr(SubPart) & "'))", Connect


Да я знаю, что с Ost проблема но не знаю как ее решить
27 сен 05, 12:45    [1913433]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Diroled
Member

Откуда:
Сообщений: 418
Iskander68


Да, убери условие из Having в Where - как тебе уже сказали.


В чем разница собсно. Ведь работает!

Iskander68
И потом, у тебя уже есть переменные Part и Subpart.
Так что должно быть примерно так:
SQL = "SELECT Проведенные.Партия, Проведенные.Подпартия,
Sum(CCur(Round([Количество],3))) " & _
"AS SumRem FROM Проведенные Where Проведенные.Партия = " &
Part & _
" AND Проведенные.Подпартия = " & SubPart & _
" GROUP BY Проведенные.Партия, Проведенные.Подпартия"


Угу, так и сделал, просто проверял что не работает и не успел вернуть так как было

Iskander68

И кстати, какой смысл в

OutData.Open "UPDATE Приведенные " & _
"SET Приведенные.Остаток = Ost " & _
"WHERE (((Приведенные.[Код заказа])='" & _
CStr(Part) & _
"') AND ((Приведенные.Наименование)='" & _
CStr(SubPart) & "'))", Connect
Почему не
Connect.Execute "UPDATE Приведенные " & _
"SET Приведенные.Остаток = Ost " & _
"WHERE (((Приведенные.[Код заказа])='" & _
CStr(Part) & _
"') AND ((Приведенные.Наименование)='" & _
CStr(SubPart) & "'))", Connect
???
Опять же, ГОРАЗДО удобнее строковое значение дать переменной.


Опять же в чем разница?
Оба эти кода выдают ошибку что не хватает нужного параметра :(
27 сен 05, 12:54    [1913496]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Iskander68
Строку для запроса нужно собрать так, чтобы были реальные значения
...
В общем, см. FAQ.

Diroled
Да я знаю, что с Ost проблема но не знаю как ее решить

Интересно выглядит вопрос, заданный после ответа...
27 сен 05, 12:55    [1913510]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Diroled
Member

Откуда:
Сообщений: 418
Владимир Саныч
Iskander68
Строку для запроса нужно собрать так, чтобы были реальные значения
...
В общем, см. FAQ.

Diroled
Да я знаю, что с Ost проблема но не знаю как ее решить

Интересно выглядит вопрос, заданный после ответа...

Сорри перепутал цитату
27 сен 05, 13:00    [1913547]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Iskander68
Member

Откуда: Королев М.О.
Сообщений: 877

Так
Diroled

В чем разница собсно. Ведь работает!


или
Diroled

Оба эти кода выдают ошибку что не хватает нужного параметра :(

?
--
Regards
Alexander Artamonov



Posted via ActualForum NNTP Server 1.3

27 сен 05, 13:05    [1913592]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Diroled
Сорри перепутал цитату

Это повод задавать вопрос, на который уже отвечено?
27 сен 05, 13:18    [1913677]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Diroled
Member

Откуда:
Сообщений: 418
Код выдает ошибку "Несоответствие типа данных в условии отбора"
Вроде сделал по анологии с предыдущим запросом, а он не работает

OutData.open "UPDATE Приведенные " & _
                   "SET Приведенные.Остаток ='" & _
                   Ost & _
                   "'" & _
                   "WHERE (((Приведенные.[Код заказа])='" & _
                   CInt(Part) & _
                   "') AND ((Приведенные.Наименование)='" & _
                   CInt(SubPart) & "'))", Connect
27 сен 05, 13:19    [1913683]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Diroled
Member

Откуда:
Сообщений: 418
Iskander68

Так
Diroled

В чем разница собсно. Ведь работает!


или
Diroled

Оба эти кода выдают ошибку что не хватает нужного параметра :(

?


Не пойму к чему это!, Можно немного понятней выразить что от меня требуется
27 сен 05, 13:22    [1913704]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Diroled
Member

Откуда:
Сообщений: 418
Владимир Саныч
Diroled
Сорри перепутал цитату

Это повод задавать вопрос, на который уже отвечено?


Что-то я Вас не понимаю!

Фразы взяты из разных сообщений!
27 сен 05, 13:34    [1913797]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Iskander68
Member

Откуда: Королев М.О.
Сообщений: 877

Да не требуется от тебя ничего. Цитаты были к тому, что то у тебя все
работает и так и типа отстаньте со своими советами, то не работает.
Если будешь внимательно читать то, что тебе советуют и пытаться применить,
то все получиться - несложные у тебя проблемы. Совсем.
А насчет того, что и так работает, попробовал сейчас выполнить исполняемый
запрос ("Insert bla-bla-bla") по твоему методу с помощью Rs.Open какая-то
ерунда получается - нельзя закрыть объект Rs, хотя данные и вставляются.
Где ты вообще такой синтаксис нашел? Ткни носом в пример. Везде пишут, что
нужно выполнять метод Execute либо объекта Command либо Connection.

--
Regards
Alexander Artamonov


"Diroled" <nospam@sql.ru> сообщил/сообщила в новостях следующее:
news:1913704@sql.ru...
Iskander68

Так
Diroled

В чем разница собсно. Ведь работает!



или
Diroled

Оба эти кода выдают ошибку что не хватает нужного параметра :(


?



Не пойму к чему это!, Можно немного понятней выразить что от меня
требуется
Тема Ответить

Posted via ActualForum NNTP Server 1.3

27 сен 05, 13:39    [1913831]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Diroled
Member

Откуда:
Сообщений: 418
Diroled
Код выдает ошибку "Несоответствие типа данных в условии отбора"
Вроде сделал по анологии с предыдущим запросом, а он не работает

OutData.open "UPDATE Приведенные " & _
                   "SET Приведенные.Остаток ='" & _
                   Ost & _
                   "'" & _
                   "WHERE (((Приведенные.[Код заказа])='" & _
                   CInt(Part) & _
                   "') AND ((Приведенные.Наименование)='" & _
                   CInt(SubPart) & "'))", Connect


Поля которые указаны в Where имеют числовой тип в которых находятся значения ID полей др таблиц. По идеи полжно работать!
В Debuge Ost=1.17, Part = "303", SubPart = "55", преобразование в Long Part и SubPart не помогло

Плиз помогите доделать этот код!
27 сен 05, 13:44    [1913862]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Iskander68
Member

Откуда: Королев М.О.
Сообщений: 877

А ты упорный парень. Фигня, что говорят КАК нужно. Делаешь по-своему.
Если Остаток - число, зачем тогда его обрамлять апострофами?
"UPDATE Приведенные SET Приведенные.Остаток = " & Ost & _
" WHERE Приведенные.[Код заказа]= " & CInt(Part) & ") AND
Приведенные.Наименование= " & CInt(SubPart)

--
Regards
Alexander Artamonov


"Diroled" <nospam@sql.ru> сообщил/сообщила в новостях следующее:
news:1913862@sql.ru...
Diroled
Код выдает ошибку "Несоответствие типа данных в условии отбора"
Вроде сделал по анологии с предыдущим запросом, а он не работает

OutData.open "UPDATE Приведенные " & _
"SET Приведенные.Остаток ='" & _
Ost & _
"'" & _
"WHERE (((Приведенные.[Код заказа])='" & _
CInt(Part) & _
"') AND ((Приведенные.Наименование)='" & _
CInt(SubPart) & "'))", Connect




Поля которые указаны в Where имеют числовой тип в которых находятся
значения ID полей др таблиц. По идеи полжно работать!
В Debuge Ost=1.17, Part = "303", SubPart = "55", преобразование в Long
Part и SubPart не помогло

Плиз помогите доделать этот код!
Тема Ответить

Posted via ActualForum NNTP Server 1.3

27 сен 05, 13:56    [1913949]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Diroled
Member

Откуда:
Сообщений: 418
Iskander68

Да не требуется от тебя ничего. Цитаты были к тому, что то у тебя все
работает и так и типа отстаньте со своими советами, то не работает.
Если будешь внимательно читать то, что тебе советуют и пытаться применить,
то все получиться - несложные у тебя проблемы. Совсем.
А насчет того, что и так работает, попробовал сейчас выполнить исполняемый
запрос ("Insert bla-bla-bla") по твоему методу с помощью Rs.Open какая-то
ерунда получается - нельзя закрыть объект Rs, хотя данные и вставляются.
Где ты вообще такой синтаксис нашел? Ткни носом в пример. Везде пишут, что
нужно выполнять метод Execute либо объекта Command либо Connection.


Я просто оперативно вношу изменения и советы, и тут же пишу результат. По запросу я уже даже и Поблагодорил того чей совет в моем варианте подошел.
По поводу синтаксиса Rs.Open и Rs.close просто не отрабатывает запрос и поэтому объект не открывается. И естественно на Rs.close выдает ошибку о закрытии, так как нельзя закрыть закрытый объект.
OutData.Open "UPDATE и OutData.Open "SELECT один и тот же синтаксис, только первое запрос на обновление, а второе запрос на выборку. (Книга Пола Киммела)

В общем мне нужно Остаток записать в запись с требуемыми значениями полей Part и SubPart. Т.е. есть таблица "Приведенные" с полями "Part", "SubPart", и Ост. Как мне найти запись по моим Part и SubPart и записать полученное мною значение в предыдущем запросе?
Как это правильно сделать?
27 сен 05, 14:02    [1913995]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Diroled
Member

Откуда:
Сообщений: 418
Iskander68

А ты упорный парень. Фигня, что говорят КАК нужно. Делаешь по-своему.
Если Остаток - число, зачем тогда его обрамлять апострофами?
"UPDATE Приведенные SET Приведенные.Остаток = " & Ost & _
" WHERE Приведенные.[Код заказа]= " & CInt(Part) & ") AND
Приведенные.Наименование= " & CInt(SubPart)



Сделал как ты написал, выдает ошибку "Ошибка синтаксиса в инструкции UPDATE"
27 сен 05, 14:23    [1914102]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
(c)VIG
Member

Откуда:
Сообщений: 1507
Убери закрывающую скобку перед AND
"UPDATE Приведенные SET Приведенные.Остаток = " & Ost & _
" WHERE Приведенные.[Код заказа]= " & CInt(Part) & " AND Приведенные.Наименование= " & CInt(SubPart)
27 сен 05, 14:36    [1914182]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Iskander68
Member

Откуда: Королев М.О.
Сообщений: 877

Извини, не заметил, что там лишние кавычки и скобка перед AND. Но самому
преверить было бы не грех. Такое впечатление, что ты не вдумываешься, в
то, что делаешь. Все-таки и не понимаю, зачем объявлять, инициализировать
еще один объект (Outdata), пытаться его открыть, при том, что он в
принципе не открывается, вместо того чтобы использовать метод Execute уже
открытого объекта Connect. Если не в лом, поясни.

--
Regards
Alexander Artamonov


"Diroled" <nospam@sql.ru> сообщил/сообщила в новостях следующее:
news:1914102@sql.ru...
Iskander68

А ты упорный парень. Фигня, что говорят КАК нужно. Делаешь по-своему.
Если Остаток - число, зачем тогда его обрамлять апострофами?
"UPDATE Приведенные SET Приведенные.Остаток = " & Ost & _
" WHERE Приведенные.[Код заказа]= " & CInt(Part) & ") AND
Приведенные.Наименование= " & CInt(SubPart)




Сделал как ты написал, выдает ошибку "Ошибка синтаксиса в инструкции
UPDATE"
Тема Ответить

Posted via ActualForum NNTP Server 1.3

27 сен 05, 14:47    [1914229]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Diroled
Member

Откуда:
Сообщений: 418
(c)VIG
Убери закрывающую скобку перед AND
"UPDATE Приведенные SET Приведенные.Остаток = " & Ost & _
" WHERE Приведенные.[Код заказа]= " & CInt(Part) & " AND Приведенные.Наименование= " & CInt(SubPart)

Я сразу исправил, так как VBA выдает ошибку, а при запуске кода выдает ошибку дебагер
Connect.Execute "UPDATE Приведенные SET Приведенные.Остаток = " & Ost & _
" WHERE Приведенные.[Код заказа]= " & CInt(Part) & " AND Приведенные.Наименование= " & CInt(SubPart)
27 сен 05, 15:38    [1914574]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310
В самом начале написал
Причем вышеприведенный код подходит только для целочисленных значений
если числа дробные то их надо праобразовать в строку через Str()
если константы строковые то их надо дополнительно обрамить апострофами
если дата/время то соотв отформатировать


дык че метатся то
определись какие числа или строки содержатся в объектах
и собери соотв строку
Ost - дробное число ? (необходимо Str() чтобы разделитель был точка а не из нац настроек)
Part - целое число ?
SubPart - целое число ?

strSQL="UPDATE Приведенные " & _
                   "SET Приведенные.Остаток =" &  Str(Ost) & _
                   "  WHERE Приведенные.[Код заказа]=" & Part & _
                   "  AND Приведенные.Наименование=" & SubPart

Debug.Print strSQL

Connect.Execute strSQL

PS В трех соснах заблудился чес слово :)
27 сен 05, 15:39    [1914581]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Diroled
Member

Откуда:
Сообщений: 418
(c)VIG
Убери закрывающую скобку перед AND
"UPDATE Приведенные SET Приведенные.Остаток = " & Ost & _
" WHERE Приведенные.[Код заказа]= " & CInt(Part) & " AND Приведенные.Наименование= " & CInt(SubPart)

Я сразу исправил, так как VBA выдает ошибку, а при запуске кода выдает ошибку дебагер
Connect.Execute "UPDATE Приведенные SET Приведенные.Остаток = " & Ost & _
" WHERE Приведенные.[Код заказа]= " & CInt(Part) & " AND Приведенные.Наименование= " & CInt(SubPart)
27 сен 05, 15:45    [1914630]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Iskander68
Member

Откуда: Королев М.О.
Сообщений: 877

Гм... "VBA выдает ошибку, а при запуске кода выдает ошибку дебагер"...
Можно по-русски? И потом, почему ты упорно не хочешь присвоить нужное
значение строковой переменной (strUpdate к примеру), увидеть ее значение с
помощью debug.print? Напр.

strUpdate = "Update ....."
Debug.Print strUpdate
'пробуешь выполнить из конструтора запросов. Когда убедился, что все ОК,
делаешь
Connect.Execute strUpdate
--
Regards
Alexander Artamonov






Я сразу исправил, так как VBA выдает ошибку, а при запуске кода выдает
ошибку дебагер
Connect.Execute "UPDATE Приведенные SET Приведенные.Остаток = " & Ost & _
" WHERE Приведенные.[Код заказа]= " & CInt(Part) & " AND
Приведенные.Наименование= " & CInt(SubPart)


Тема Ответить

Posted via ActualForum NNTP Server 1.3

27 сен 05, 15:52    [1914684]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Diroled
Member

Откуда:
Сообщений: 418
Latuk

strSQL="UPDATE Приведенные " & _
                   "SET Приведенные.Остаток =" &  Str(Ost) & _
                   "  WHERE Приведенные.[Код заказа]=" & Part & _
                   "  AND Приведенные.Наименование=" & SubPart

Debug.Print strSQL

Connect.Execute strSQL

PS В трех соснах заблудился чес слово :)


Вместе заблудились, про кавычки та забыл!, для текстового типа
В общем Так работает, СПАСИБО, Частично поброли.

Connect.Execute "UPDATE Приведенные SET Приведенные.Остаток = '" & _
                CStr(Ost) & _
                "' WHERE Приведенные.[Код заказа]=" & CInt(Part) & "AND Приведенные.Наименование=" & CInt(SubPart)
27 сен 05, 15:53    [1914695]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Diroled
Member

Откуда:
Сообщений: 418
[quot Iskander68]
Гм... "VBA выдает ошибку, а при запуске кода выдает ошибку дебагер"...
Можно по-русски? И потом, почему ты упорно не хочешь присвоить нужное
значение строковой переменной (strUpdate к примеру), увидеть ее значение с
помощью debug.print? Напр.

strUpdate = "Update ....."
Debug.Print strUpdate
'пробуешь выполнить из конструтора запросов. Когда убедился, что все ОК,
делаешь
Connect.Execute strUpdate

Что значит "'пробуешь выполнить из конструтора запросов. Когда убедился, что все ОК, делаешь"
Объясни по подробнее, а то я не могу понять.
кстате что дает присвоение к строковой переменной, и что делает
Debug.Print strUpdate
Вот как я написал выше код который работает

Connect.Execute "UPDATE Приведенные SET Приведенные.Остаток = '" & _
                CStr(Ost) & _
                "' WHERE Приведенные.[Код заказа]=" & CInt(Part) & "AND Приведенные.Наименование=" & CInt(SubPart)
27 сен 05, 16:19    [1914899]     Ответить | Цитировать Сообщить модератору
 Re: Select в событии  [new]
Iskander68
Member

Откуда: Королев М.О.
Сообщений: 877





Diroled
Что значит "'пробуешь выполнить из конструтора запросов.
Когда убедился, что все ОК, делаешь"
Объясни по подробнее, а то я не могу понять.
кстате что дает присвоение к строковой переменной, и что делает
Debug.Print strUpdate
Вот как я написал выше код который работает


Работает, то работает, но ты сам неделю убил на элементарные действия, и в
форуме сколько вопросов задал.
Объясняю совсем подробно.

...Dim strUpdate as StringstrUpdate = "Update ....."
Debug.Print strUpdate
'нажимаешь Ctrl+G или другим доступным тебе методом'открываешь Immedeate
Window. Выделяешь, копируешь в буфер'то, что там напечаталось.'в окне базы
данных выбираешь Создать новый запрос,'переключаешься в режим SQL,
вставляешь из буфера'пробуешь. Только когда убедился, что все ОК, делаешь
Connect.Execute strUpdate




Posted via ActualForum NNTP Server 1.3

27 сен 05, 16:27    [1914952]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить