powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как правильно написать код
27 сообщений из 27, показаны все 2 страниц
Как правильно написать код
    #38741093
Admiral67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго вечера, форумчане

Есть форма. На ней свободные контролы. Кнопка должна обрабатывать данные из контролов и запускать запрос на обновление.

Но на строчке начинающейся с FROM код не работает. Строка выделена красным. FAQ смотрел. Но не нашел объяснения.
В чем может быть причина?


s = "INSERT INTO tblGoodsAllocation ( Код, ОЗМ, Количество, ЕдИзм, АдресЯчейки, АдресСклада, Завод ) SELECT tblGoodsAllocation.Код, tblGoodsAllocation.ОЗМ, tblGoodsAllocation.Количество, tblGoodsAllocation.ЕдИзм, tblGoodsAllocation.АдресЯчейки, tblGoodsAllocation.АдресСклада, tblGoodsAllocation.Завод"
FROM tblGoodsAllocation WHERE (((tblGoodsAllocation.Код)=a) AND ((tblGoodsAllocation.ОЗМ)=b) AND ((tblGoodsAllocation.Количество)=c) AND ((tblGoodsAllocation.ЕдИзм)=d) AND ((tblGoodsAllocation.АдресЯчейки)=g) AND ((tblGoodsAllocation.АдресСклада)=f) AND ((tblGoodsAllocation.Завод)=e))";
...
Рейтинг: 0 / 0
Как правильно написать код
    #38741102
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что (внезапно!))) перед FROM текстовая строка заканчивается (кавычка закрывается)

А оператора FROM в VB как бэ нет
...
Рейтинг: 0 / 0
Как правильно написать код
    #38741104
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
s = "INSERT INTO tblGoodsAllocation ( Код, ОЗМ, Количество, ЕдИзм, АдресЯчейки, АдресСклада, Завод ) " + _
    "SELECT tblGoodsAllocation.Код, tblGoodsAllocation.ОЗМ, tblGoodsAllocation.Количество, " + _
    "tblGoodsAllocation.ЕдИзм, tblGoodsAllocation.АдресЯчейки, tblGoodsAllocation.АдресСклада, " + _
    "tblGoodsAllocation.Завод " + _
    "FROM tblGoodsAllocation WHERE (((tblGoodsAllocation.Код)=a) AND ((tblGoodsAllocation.ОЗМ)=b) AND " + _
    "((tblGoodsAllocation.Количество)=c) AND ((tblGoodsAllocation.ЕдИзм)=d) AND " + _
    "((tblGoodsAllocation.АдресЯчейки)=g) AND ((tblGoodsAllocation.АдресСклада)=f) AND " + _
    "((tblGoodsAllocation.Завод)=e))"
...
Рейтинг: 0 / 0
Как правильно написать код
    #38741147
Admiral67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Сделал как вы написали. Программа ругается. Пишет Run-time error "3075", ошибка синтаксиса (пропущен оператор) в выражении запроса.

Забыл написать, запрос я вызываю командой
CurrentDb.Execute s
...
Рейтинг: 0 / 0
Как правильно написать код
    #38741162
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Admiral67,
я не особый спец по запросам, но....
Зачем там много скобок? Без них не работает?
И что такое все эти загадочные a,b,c,d,e,f? Это не переменные, случаем? Если переменные - то надо знать, что в них - текст или число. Если это и есть критерии для отбора, то букавки, вроде как надо в апострафы заключать:
Код: vbnet
1.
2.
3.
s = "INSERT INTO tblGoodsAllocation ( Код, ОЗМ, Количество, ЕдИзм, АдресЯчейки, АдресСклада, Завод ) " & _
    "SELECT tblGoodsAllocation.Код, tblGoodsAllocation.ОЗМ, tblGoodsAllocation.Количество, tblGoodsAllocation.ЕдИзм, tblGoodsAllocation.АдресЯчейки, tblGoodsAllocation.АдресСклада, tblGoodsAllocation.Завод" & _
    "FROM tblGoodsAllocation WHERE ((tblGoodsAllocation.Код='a') AND (tblGoodsAllocation.ОЗМ='b') AND (tblGoodsAllocation.Количество='c') AND (tblGoodsAllocation.ЕдИзм='d') AND (tblGoodsAllocation.АдресЯчейки='g') AND (tblGoodsAllocation.АдресСклада='f') AND (tblGoodsAllocation.Завод='e'))"
...
Рейтинг: 0 / 0
Как правильно написать код
    #38741164
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу простить за столь нечитабельный вид запроса. Не привык, что строки внутри кода не переносятся...А переделывать сейчас смысла уже не вижу
...
Рейтинг: 0 / 0
Как правильно написать код
    #38741165
Admiral67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

Да, это переменные. Вы могли бы подсказать как будет выглядеть код если буквы означают переменные.
В них текст
...
Рейтинг: 0 / 0
Как правильно написать код
    #38741167
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Admiral67,

Код: vbnet
1.
"...(tblGoodsAllocation.Код='" & a & "')...


и так для всех.
...
Рейтинг: 0 / 0
Как правильно написать код
    #38741172
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_PristЗачем там много скобок? Без них не работает?это мастер SQL-запросов напихал


The_Prist
Код: vbnet
1.
"...(tblGoodsAllocation.Код='" & a & "')...



и так для всех.не надо так для всех

для числовых констант апострофы не нужны и даже очень вредны
Код: vbnet
1.
"...(tblGoodsAllocation.Код=" & Str(a) & ")...

для текстовых констант нужно удваивать апострофы
Код: vbnet
1.
"...(tblGoodsAllocation.АдресСклада='" & Replace(f, "'", "''") & "')...
...
Рейтинг: 0 / 0
Как правильно написать код
    #38741173
Admiral67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

К сожалению ошибка осталась.
Приложил скрин ошибки
...
Рейтинг: 0 / 0
Как правильно написать код
    #38741175
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так прямо на сообщении же видно, что перед FROM пропущен пробел.
вы уж сами тоже включайте голову, ВСЁ за вас на форуме не сделают
...
Рейтинг: 0 / 0
Как правильно написать код
    #38741575
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proне надо так для всех
Shocker.Pro, это понятно. Я акцент на этом в своем сообщении поставил и получил ответ:
Admiral67В них текст
...
Рейтинг: 0 / 0
Как правильно написать код
    #38741586
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Admiral67The_Prist,

К сожалению ошибка осталась.
Приложил скрин ошибки

зачем столько скобок?
...
Рейтинг: 0 / 0
Как правильно написать код
    #38741590
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще же ни одна не нужна
...
Рейтинг: 0 / 0
Как правильно написать код
    #38741634
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_PristЯ акцент на этом в своем сообщении поставил и получил ответ:Admiral67В них текств переменных может быть и текст. Но надо быть очень странным человеком, чтобы поле "Количество" в БД сделать текстовым.
...
Рейтинг: 0 / 0
Как правильно написать код
    #38742078
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

ну...это уже не ко мне :-)
А судя по скрину - там вообще почти везде числа. В общем, автору видимо надо хоть какую-то литературку по SQL почитать...
...
Рейтинг: 0 / 0
Как правильно написать код
    #38742579
Admiral67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
приветствую всех.

Поле "кол-во" не числовое, так как количественный учет ведется в корпоративной информационной системе. Но в этой системе нет модуля по адресному хранению материалов и денег на доработку конечно никто не даст. Вот и приходится делать базу данных в MS Access, основное назначение которой будет обработка информации какой материал в какой ячейке лежит. А первичные документы как формировались через КИС, так и будут формироваться. То есть точность остатков в базе особой роли не играет.

Вы правы, в выражениях SQL я полный ноль. Поэтому прошу помощи у форума. То, что форум не сделает всё за меня - это понятно :)

Вот какой сейчас код. Но ошибка "неправильный синтаксис" осталась. В чем может быть причина? Если кто скинет ссылку на литературу - конечно почитаю.

S = "INSERT INTO tblGoodsAllocation Код, ОЗМ, Количество, НомерПаллеты, АдресЯчейки, АдресСклада, Станция + _
"SELECT tblGoodsAllocation.Код, tblGoodsAllocation.ОЗМ, tblGoodsAllocation.Количество " + _
"tblGoodsAllocation.НомерПаллеты, tblGoodsAllocation.АдресЯчейки, tblGoodsAllocation.АдресСклада, tblGoodsAllocation.Станция" + _
"FROM tblGoodsAllocation WHERE tblGoodsAllocation.Код= " & Str(a) & " AND tblGoodsAllocation.ОЗМ= " & Str(b) & " AND" + _
"tblGoodsAllocation.Количество= " & Str(c) & " AND tblGoodsAllocation.НомерПаллеты= '" & Replace(d, "'", "''") & "' AND" + _
"tblGoodsAllocation.АдресЯчейки= '" & Replace(g, "'", "''") & "' AND tblGoodsAllocation.АдресСклада= '" & Replace(f, "'", "''") & "' AND" + _
"tblGoodsAllocation.Станция= '" & Replace(f, "'", "''") & "'""
...
Рейтинг: 0 / 0
Как правильно написать код
    #38742584
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Admiral67В чем может быть причина?В первой строке кавычка не закрыта
Admiral67Если кто скинет ссылку на литературу - конечно почитаюа если не кинет - не почитаешь?
любой учебник по SQL для начинающих подойдет, первые несколько глав

Но, сюдя по всему, явно нужен нужен еще учебник по VB
...
Рейтинг: 0 / 0
Как правильно написать код
    #38742590
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Admiral67Поле "кол-во" не числовое, так как количественный учет ведется в корпоративной информационной системе.апельсины оранжевые так как пингвины живут на южном полюсе.

почему в аксессовской базе поле "количество" не должно быть числовым? в вашей КИС количество прописью пишут?
...
Рейтинг: 0 / 0
Как правильно написать код
    #38743653
Admiral67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
друзья вы бы лучше помогли, вместо того чтобы шутить. Вроде форум для этого создан, а не чтобы свое самолюбие тешить.

Исправил код. Он заработал. Публикую - вдруг кому понадобится.

DoCmd.SetWarnings (0)

SQL = "INSERT INTO tblGoodsAllocation (Код, ОЗМ, Количество, НомерПаллеты, АдресЯчейки, АдресСклада, Станция)" & _
"values (Forms![frmGoodsAllocationAdd]![Код], Forms![frmGoodsAllocationAdd]![ОЗМ], Forms![frmGoodsAllocationAdd]![Количество], Forms![frmGoodsAllocationAdd]![НомерПаллеты], Forms![frmGoodsAllocationAdd]![АдресЯчейки],Forms![frmGoodsAllocationAdd]![АдресСклада], Forms![frmGoodsAllocationAdd]![Станция]) ;"

DoCmd.RunSQL SQL
...
Рейтинг: 0 / 0
Как правильно написать код
    #38744007
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Admiral67друзья вы бы лучше помогли, вместо того чтобы шутитья не вижу в топике ни одной шутки. В то же время, если вы не видите в топике помощи, то помочь вам в принципе проблематично.
Admiral67Исправил код. Он заработал.Что интересно, исправленный код делает абсолютно другую вещь. И как же мы могли догадаться, что вам нужно именно это? Ваши синтаксические ошибки мы исправили, а вот придумать за вас ТЗ, не имея никаких исходных данных мы не в состоянии - увы. Даже что вы работаете в Access-е стало понятно только сейчас, для вопросов по аксессу есть другой подфорум, рекомендую на будущее обращаться туда.
...
Рейтинг: 0 / 0
Как правильно написать код
    #38744116
капитанская дочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Admiral67друзья вы бы лучше помогли, вместо того чтобы шутить. Вроде форум для этого создан, а не чтобы свое самолюбие тешить.

Исправил код. Он заработал. Публикую - вдруг кому понадобится.

DoCmd.SetWarnings (0)

SQL = "INSERT INTO tblGoodsAllocation (Код, ОЗМ, Количество, НомерПаллеты, АдресЯчейки, АдресСклада, Станция)" & _
"values (Forms![frmGoodsAllocationAdd]![Код], Forms![frmGoodsAllocationAdd]![ОЗМ], Forms![frmGoodsAllocationAdd]![Количество], Forms![frmGoodsAllocationAdd]![НомерПаллеты], Forms![frmGoodsAllocationAdd]![АдресЯчейки],Forms![frmGoodsAllocationAdd]![АдресСклада], Forms![frmGoodsAllocationAdd]![Станция]) ;"

DoCmd.RunSQL SQL

это беда всех российских форумов. обращающийся за помощью автоматом является потехой для завсегдатых. завсегдатые или так называемые гуру сначала поиздеваются втопчут в грязь потешат свое самолюбие и между делом помогут намеками (иногда случается и прямо помогут) как решить проблему. это все гаденькая натура человека который понимает что раз ты сюда обратился то деваться тебе некуда. и это ваша плата за помощь. не обращайте на это внимания и все. будьте выше этого.
...
Рейтинг: 0 / 0
Как правильно написать код
    #38744124
капитанская дочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProAdmiral67друзья вы бы лучше помогли, вместо того чтобы шутить
я не вижу в топике ни одной шутки.

может у меня юмор какой не такой но разве здесь нет шутки?
Shocker.ProПотому что (внезапно!))) перед FROM текстовая строка заканчивается (кавычка закрывается)

А оператора FROM в VB как бэ нет
кстати вы же меня прилюдно носом в мой русский и каверканья тыкали господин модератор топика а сами что-то неважнецкий пример поадете. далее это более чем просто безобидная шутка. вы же поддеваете автора тыкая его в его незнание. он и без того знаеет что не знает поэтому и обратился сюда. хороша помощь - оскорбить и помочь. что скажете не тешите самолюбие?

что здесь тоже шутки нет?
Shocker.Proа если не кинет - не почитаешь?
или здесь?
Antonariyапельсины оранжевые так как пингвины живут на южном полюсе.

да к предыдущему моему сообщению. наблюдается еще одна картина. когда отвечающие меряются глубиной знаний чтобы показать у коже глубина длиньше.
...
Рейтинг: 0 / 0
Как правильно написать код
    #38744206
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
капитанская дочка автоматом является потехой для завсегдатых
между делом помогут намеками (иногда случается и прямо помогут)
На странных форумах Вы общаетесь...Прямо таки раз за разом прямо топчут? И только если снизойдет благодать на посетителя - то помогут? А Вы, случаем, не преувеличиваете?
Дам совет: не надо мешать всех в одну кучу. Если взять, например, Shocker.Pro и посмотреть процент сколько он помог и сколько "пошутил-потоптал" - скорее всего "пошутил-потоптал" будет практически незаметным на фоне более полезных сообщений. Да Вы и сами это знаете.

Я сам завсегдатай не одного форума - и принял Ваши высказывания как обращенные и ко мне лично тоже. Так что прошу аргументировать все свои слова в отношении завсегдатаев форумов. Притом, как я посмотрю, Вы на всех побывали, раз так уверенно пишите. Тогда уж прям со ссылками на каждого :-)
...
Рейтинг: 0 / 0
Как правильно написать код
    #38744230
капитанская дочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Pristкапитанская дочка автоматом является потехой для завсегдатых
между делом помогут намеками (иногда случается и прямо помогут)
На странных форумах Вы общаетесь...Прямо таки раз за разом прямо топчут? И только если снизойдет благодать на посетителя - то помогут? А Вы, случаем, не преувеличиваете?
Дам совет: не надо мешать всех в одну кучу. Если взять, например, Shocker.Pro и посмотреть процент сколько он помог и сколько "пошутил-потоптал" - скорее всего "пошутил-потоптал" будет практически незаметным на фоне более полезных сообщений. Да Вы и сами это знаете.

Я сам завсегдатай не одного форума - и принял Ваши высказывания как обращенные и ко мне лично тоже. Так что прошу аргументировать все свои слова в отношении завсегдатаев форумов. Притом, как я посмотрю, Вы на всех побывали, раз так уверенно пишите. Тогда уж прям со ссылками на каждого :-)

как я и ожидал. не надо ваши огрехи переваливать теперь на меня или как бы то ни было со мной связывать. и оправдваться тоже не надо. и советы приберегите для тех кто в них нуждается. и себе хотя бы не врите. и разводить демагогию я не собираюсь вы и сами это знаете.
...
Рейтинг: 0 / 0
Как правильно написать код
    #38744291
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, я смотрю, у меня появилась внешняя совесть. Я очень рад, теперь мне придется считаться с тем, чтобы совесть вдруг не проснулась и не потыкала носом в мое безобразное поведениекапитанская дочкаShocker.Proя не вижу в топике ни одной шутки.


может у меня юмор какой не такой но разве здесь нет шутки?я уточню, раз непонятно. автор сообщил нам:Admiral67друзья вы бы лучше помогли, вместо того чтобы шутить.так вот - не было шуток ВМЕСТО ответов по существу.

Предполагая продолжение придирок, в том числе и к этому сообщению, уведомлю вас, что я и сам прекрасно умею придираться к каждой букве (постоянно работая с ТЗ и его дословным выполнением ), поэтому, по вашему меткому выражению считаю, что "у меня длиннее", так что продолжать спор не буду.

Искренне ваш,
...
Рейтинг: 0 / 0
Как правильно написать код
    #38744474
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
капитанская дочкане надо ваши огрехи переваливать теперь на меня
А где Вы увидели, что я на кого-то что-то переваливаю? Я попросил аргументировать высказывание по поводу всех завсегдатаев, помощь которых Вы так легко назвали потехой над новичками и втаптыванием в грязь. Раз сказали слово - будьте любезны обосновать. В противном случае Вы просто пустозвон и балабол, которому заняться нечем было и он язык решил почесать.
Это скорее Вы свое плохое настроение на форум переваливаете, прикрываясь дородетелью.
Вы покажите для начала хотя бы одно свое полезное форуму сообщение в данной теме. Вы лично чем помогли автору темы? С шутками в свою сторону, я думаю, он и без Вас прекрасно разберется.
Может Вы забыли, как сами общаетесь с форумчанами? - http://www.sql.ru/forum/1098604/skriptik?hl= - верх уважения и приличия.
Так что нечего тут из себя совесть форума строить, а вдобавок и всех форумов российских, о которых Вы нам тут так красочно рассказываете.
...
Рейтинг: 0 / 0
27 сообщений из 27, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как правильно написать код
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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