powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите с запросом
25 сообщений из 30, страница 1 из 2
Помогите с запросом
    #36630685
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
strobrez = Left(CommonDialog1.FileTitle,  8 )
MsgBox (strobrez)
Adodc2.ConnectionString = "DRIVER={Microsoft dBase Driver (*.dbf)};DBQ= C:\obmen\archive ;DefaultDir =C:\obmen\archive"
Adodc2.CommandType = adCmdText
Adodc2.RecordSource = "SELECT " + strobrez + ".KOD," + strobrez + ".NAME ,zayav.NAME FROM " + strobrez + _
"INNER JOIN zayav ON " + strobrez + ".KOD=zayav.KOD"
Set TDataLite2.DataSource = Adodc2
Adodc2.Refresh
TDataLite2.Refresh


Задача состоит в том чтобы вывести схожие позиции

Выдает ошибку
ошибка синтаксиса в предложении FROM
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630693
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05adm,

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

Код: plaintext
1.
Adodc2.RecordSource = "SELECT STB.KOD, STB.NAME, zayav.NAME FROM " + strobrez + _
" AS STB INNER JOIN zayav ON STB.KOD=zayav.KOD"
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630726
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Спасибо Большое )))

не подскажете как обнулить схожие позиции в двух таблицах и последующей записью их в таблицу zayav в adodc1
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630736
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admне подскажете как обнулить схожие позиции в двух таблицах и последующей записью их в таблицу zayav в adodc1

Б-р-р-р.
Каша какая-то.

1) Что такое "обнулить позицию"?
2) Что значит "записать в таблицу zayav", что именно?
3) Что значит zayav в adodc1? Таблица, надо полагать, в базе находится, причем тут adodc1?
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630753
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

это два dbf файла подключены через ado ,файл zayav.dbf находится в adodc1,
а в adodc2 как раз результат запроса в котором вы мне помогли,
так вот хотелось бы в схожих значениях в поле KOD в adodc1 и adodc2 в поле ZAKAZ поставить 0,
надеюсь сейчас понятно объяснил
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630761
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы перемешали теплое с мягким.
Сколько у вас баз?
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630779
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
формируется dbf файл в 1с с остатками
далее открываю в viusal basic через ado (zayav.dbf)
при отправке заказа (менеджеру)он добавляется в папку архив
, так вот хотелось чтобы при следующем формировании заказа
схожие позиции(в файле zayav.dbf и тем что открываю через CommonDialog с папки архив) в поле ZAKAZ(zayav.dbf) можно было автоматом проставить 0
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630785
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть базы две...

К сожалению, с dBase не работал, не знаю синтаксиса, как из одной базы сделать запрос к другой базе, объединив INNER JOIN-ом таблицы из разных баз. Скорее всего можно, но лучше об этом спросить на форуме dBase-ников.

А если принципиально делать через ADO на клиенте, то "объединять" базы придется вручную с помощью цикла имитируя JOIN для двух коннектов.

ADODC вам, кстати, для этого не нужен.
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630793
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
через ADO пробовал так но понятно из кода что результат будет не всегда верным

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
ad2 = Me.Adodc2.Recordset.RecordCount
For B =  0  To ad2
If Me.Adodc1.Recordset.EOF = False Then
If Me.Adodc2.Recordset.EOF = False Then
namefilt1 = Me.Adodc1.Recordset("KOD").Value
namefilt2 = Me.Adodc2.Recordset("KOD").Value
If namefilt1 = namefilt2 Then
Me.Adodc1.Recordset("ZAKAZ").Value =  0 
End If
Me.Adodc1.Recordset.MoveNext
Me.Adodc2.Recordset.MoveNext
 End If
 End If
 Next B
Adodc1.Refresh
TDataLite1.Refresh
Adodc2.Refresh
TDataLite2.Refresh
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630797
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кто вас учил форматировать код... >:-o ничего ж непонятно

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
ad2 = Me.Adodc2.Recordset.RecordCount
For B =  0  To ad2
  If Me.Adodc1.Recordset.EOF = False Then
    If Me.Adodc2.Recordset.EOF = False Then
      namefilt1 = Me.Adodc1.Recordset("KOD").Value
      namefilt2 = Me.Adodc2.Recordset("KOD").Value
      If namefilt1 = namefilt2 Then
        Me.Adodc1.Recordset("ZAKAZ").Value =  0 
      End If
      Me.Adodc1.Recordset.MoveNext
      Me.Adodc2.Recordset.MoveNext
    End If
  End If
Next B
Adodc1.Refresh
TDataLite1.Refresh
Adodc2.Refresh
TDataLite2.Refresh
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630799
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему MoveNext находятся на одном уровне, оба во внутреннем цикле?
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630802
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

извините)))
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630803
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему MoveNext находятся на одном уровне, оба во внутреннем цикле?

Не, другой вопрос. У вас всегда одинаковое количество записей в обоих рекордсетах?
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630804
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

а как надо было?
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630805
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
нет разное , потому то и не получается с этим кодом правильное значение
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630808
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admShocker.Pro,
нет разное , потому то и не получается с этим кодом правильное значение

Ну, грубо говоря, есть два алгоритма, быстрый и простой. Вам какой?
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630814
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
любой рабочий)))
movenext во втором рекордсете надо было после цикла по всем строкам в первом пускать?
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630816
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admmovenext во втором рекордсете надо было после цикла по всем строкам в первом пускать?
Забудьте, это я глупость сморозил, ибо не ожидал увидеть..... эмммм.... такой странный алгоритм.

aduka05admлюбой рабочий)))
Устраиваете цикл по первому рекордсету. По каждой его строке во втором рекордсете ищете методом .Find нужную запись. Найдено - ставить нолик. Не забывайте делать .Update после изменения записи.
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630822
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
спасибо вам , не ожидал повстречать здесь такого замечательного человека)
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630826
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admне ожидал повстречать здесь такого замечательного человека)

Интересно, а где вы ожидали меня повстречать?
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630831
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
вот именно нигде))
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630834
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Код: plaintext
1.
2.
3.
namefilt1 = Me.Adodc1.Recordset("KOD").Value
namefilt2 = Me.Adodc2.Recordset("KOD").Value
Me.Adodc2.Recordset.Find ("KOD =" + namefilt1)
ошибку выдает так, неправильно написал?
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630836
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admShocker.Pro,
Код: plaintext
1.
2.
3.
namefilt1 = Me.Adodc1.Recordset("KOD").Value
namefilt2 = Me.Adodc2.Recordset("KOD").Value
Me.Adodc2.Recordset.Find ("KOD =" + namefilt1)
ошибку выдает так, неправильно написал?
без скобок надо оказывается
...
Рейтинг: 0 / 0
Помогите с запросом
    #36630838
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admShocker.Pro,
вот именно нигде))
Оптимистичней надо быть

aduka05admошибку выдает так, неправильно написал?
Наверное неправильно.
Текст ошибки я угадать не смог.

И не забывайте, что искать надо с самого начала, а не с текущей позиции
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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