Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема при создании отчёта 
:(
    Опции темы
korob2001
Дата 29.5.2005, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Привет!!!
Я вам наверное уже надоел, со своими ламерскими вопросами. smile
Вобщем есть 3 связанных таблицы:

Таблица: Besteling
--Resize_Images_Alt_Text--

Таблица: Menu
--Resize_Images_Alt_Text--

Таблица: MenuGroups
--Resize_Images_Alt_Text--

Мне необходимо создать отчёт с помощью DataReport и всё вроде ничего, но этот отчёт должен состоять не со всех полей приведённых выше таблиц, а из следующих:
Код

MenuId      MenuGroup     MenuTitle     JoinTime     Prijs 

Отсюда видно, что отчёт долже быть сгенерирован из полей нескольких таблиц, причём не всех подряд.

Пишу такую процедуру:
Код

Private Sub cmdGetReport_Click()
    ' Создаём переменную для генерации SQL запросов
    Dim sSQL1 As String
    Dim sSQL2 As String
    Dim sSQL3 As String
    
    ' Строим запрос на выборку из таблицы Besteling
    sSQL1 = "SELECT MenuId, JoinTime, ColThis FROM Besteling"
    
    ' Выполняем запрос
    Set rs1 = modVar.cn.Execute(sSQL1)
    
    Set dtrReport.DataSource = rs1

    ' Циклически проходим по всем записям таблицы Besteling соответствующих SQL запросу rs1
    While Not rs1.EOF
        ' Строим запрос к талице Menu, на основе запроса к таблице Besteling
        sSQL2 = "SELECT MenuTitle, Prijs, GroupId FROM Menu WHERE MenuId=" & rs1.Fields("MenuId")
        
        ' Выполняем второй SQL запрос на выборку данных по меню
        Set rs2 = modVar.cn.Execute(sSQL2)
        
        sSQL3 = "SELECT MenuGroup FROM MenuGroups WHERE GroupId=" & rs2.Fields("GroupId")
        
        Set rs3 = modVar.cn.Execute(sSQL3)
        
        
        dtrReport.Sections("rptBody").Controls("labId").Caption = rs1.Fields("MenuId")
        dtrReport.Sections("rptBody").Controls("labDate").Caption = rs1.Fields("JoinTime")
        
        dtrReport.Sections("rptBody").Controls("labMenu").Caption = rs2.Fields("MenuTitle")
        dtrReport.Sections("rptBody").Controls("labPrice").Caption = rs2.Fields("Prijs")
        
        dtrReport.Sections("rptBody").Controls("labGroup").Caption = rs3.Fields("MenuGroup")
 
        
        
        rs1.MoveNext
    Wend
    dtrReport.Show
End Sub

Но все строки в отчёте одинаковые. smile((

Подскажите как создать отчёт при помощи DataReport из нескольких таблиц???

Спасибо.

Это сообщение отредактировал(а) korob2001 - 29.5.2005, 11:56


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
boevik
Дата 29.5.2005, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



Надо связать все три таблицы при помощи JOIN, к примеру так.
Код

SELECT MenuId,      MenuGroup,     MenuTitle,     JoinTime,     Prijs
FROM  Besteling INNER JOIN Menu 
        ON Besteling.MenuID = Menu.MenuID
   INNER JOIN MenuGroups 
       ON Menu.GroupID = MenuGroups.GroupID 


Этот запрос вернет тебе все результат уже трех связаных таблиц по указаным полям.

А дальше уже подцепляй RecordSet к DataReport.

Это сообщение отредактировал(а) boevik - 29.5.2005, 12:15


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
korob2001
Дата 29.5.2005, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



smile Получил такую ошибку:
--Resize_Images_Alt_Text--
Может я что-то не так написал???
Код

sSQL1 = "SELECT MenuId, MenuGroup, MenuTitle, JoinTime, Prijs"
sSQL1 = sSQL1 & " FROM  Besteling INNER JOIN Menu"
sSQL1 = sSQL1 & " ON Besteling.MenuID = Menu.MenuID"
sSQL1 = sSQL1 & " INNER JOIN MenuGroups ON Menu.GroupID = MenuGroups.GroupID"



--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
boevik
Дата 29.5.2005, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



Создай запрос в Access, он же построит и требуемый правильный SQL.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Gannibal
Дата 29.5.2005, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



если поможет smile ссылочка почитай может интерестно будет http://forum.vingrad.ru/index.php?showtopic=48417


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
korob2001
Дата 29.5.2005, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Запрос построил, вот так работает:
Код

SELECT Besteling.MenuId, Besteling.JoinTime, Menu.MenuTitle, Menu.Prijs, MenuGroups.MenuGroup
FROM (MenuGroups INNER JOIN Menu ON MenuGroups.GroupId = Menu.GroupId) INNER JOIN Besteling ON Menu.MenuId = Besteling.MenuId;

Мне нужно ещё отобрать те записи, у которых поле
JoinTime >= var1 AND JoinTime <= var2 AND Pyid=1 AND TranssControl=1
где:
Код

var1 = #29.05.2005 0:05:15#
var2 = #29.05.2005 16:05:15#

Т.е. я должен получить только одну запись, самую последнюю в таблице Besteling и всё её связи с другими таблицами, перая же запись за 29 число не должна пройти из-за того, что у неё не установлен флажок в поле TranssControl, хотя по дате и времени она проходит.

Как я понимаю, то нужно в конец добавить это условие, добавляю и получаю опять ошибку в SQL запросе. smile С чего начали, к тому и пришли.

M.E.G.U.S - да топик действительно по этой теме, но у меня не одна таблица а три и что самое плохое, это то, что нужно выдёргивать по нескольку полей из каждой, да ещё при этом сравнивать с датами и Boolean. С одной таблицей я разобрался сразу, по учебнику, а вот про несколько таблиц в нём ничего не нашёл.

Это сообщение отредактировал(а) korob2001 - 29.5.2005, 17:21


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
boevik
Дата 29.5.2005, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



korob2001, так в чем проблема?
Код

SELECT Besteling.MenuId, Besteling.JoinTime, Menu.MenuTitle, Menu.Prijs, MenuGroups.MenuGroup
FROM (MenuGroups INNER JOIN Menu ON MenuGroups.GroupId = Menu.GroupId) INNER JOIN Besteling ON Menu.MenuId = Besteling.MenuId
WHERE JoinTime  between #05/29/2005 0:05:15# and #05/29/2005 16:05:15#  AND TranssControl=1


Обрати внимание на формат даты.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
korob2001
Дата 29.5.2005, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Цитата

Обрати внимание на формат даты.

Я вот именно на неё и обращаю внимание.
У меня дата в базе и в переменной в таком формате:
БД: 22.05.2005 15:41:17
Переменная: Format( CDate( txtDate.text ), "ddddd ttttt")

Т.е. в переменной получается аналогичный формат, как и в БД. Но у тебя вместо разделителя точка, стоят слэши. Это играет какую-то роль или это зависит от региональных настроек??


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Gannibal
Дата 29.5.2005, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



в запросе со слешами .. а в таблице без с точкой тй.. должно нормально работать одно второму немешает у тебя всёравно должен формат переводиться в нормальный с точками как у тебя стоит..


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
korob2001
Дата 29.5.2005, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Да играет, уже проверил, такой формат не катит. Но дело в том, что я получаю дату из DTPicker, затем сохраняю её в переменную типа as Date.

Это сообщение отредактировал(а) korob2001 - 29.5.2005, 18:27


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Gannibal
Дата 29.5.2005, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



а как катит? или вообще никак ещё?


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
korob2001
Дата 29.5.2005, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Вот если я использую такой запрос:
Код

SELECT Besteling.MenuId, Besteling.JoinTime, Menu.MenuTitle, Menu.Prijs, MenuGroups.MenuGroup
FROM (MenuGroups INNER JOIN Menu ON MenuGroups.GroupId = Menu.GroupId) INNER JOIN Besteling ON Menu.MenuId = Besteling.MenuId
WHERE JoinTime  between #05/29/2005 0:05:15# and #05/29/2005 16:05:15#  AND TranssControl=1

т.е. вставляю дату в ручную, то всё работает так как надо, но если только подставляю вместо дат переменные, то сразуже получаю ошибку в SQL запросе. Даты в переменные я получаю так:
Код

    ' Объявляем локальные переменные, для получения ввыбранных пользователем дат
    Dim datFrom As Date
    Dim datTo As Date
    
    ' Создаём переменную для генерации SQL запросов
    Dim sSQL1 As String
    
    ' Получаем выбранные пользователем даты и сохраняем в переменных
    datFrom = Format(dtpVan.Value, "ddddd ttttt")
    datTo = Format(dtpTot.Value, "ddddd ttttt")
    
    ' MsgBox datFrom
    
    ' Если пользователь указал начальную дату, польше конечной,
    ' то выводим ему сообщение об ошибке и завершаем выполнение программы
    If datFrom > datTo Then
        MsgBox "Initial date more final. Correct a mistake and repeat again", vbOKOnly + vbCritical, "Error"
        Exit Sub
    End If
    
    ' Выгружаем форму и выводи отчёт
    Unload Me
    
    ' Строим запрос на выборку из таблицы Besteling
    sSQL1 = "SELECT Besteling.MenuId, Besteling.JoinTime, Menu.MenuTitle, Menu.Prijs, MenuGroups.MenuGroup"
    sSQL1 = sSQL1 & " FROM (MenuGroups INNER JOIN Menu ON MenuGroups.GroupId = Menu.GroupId) INNER JOIN Besteling ON Menu.MenuId = Besteling.MenuId"
    sSQL1 = sSQL1 & " WHERE JoinTime  BETWEEN #" & datFrom & "# AND #" & datTo & "# AND TranssControl=1"

Вот тут и получаю ошибку.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
boevik
Дата 29.5.2005, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



Цитата(korob2001)
 
Код

   ' Получаем выбранные пользователем даты и сохраняем в переменных
    datFrom = Format(dtpVan.Value, "ddddd ttttt")
    datTo = Format(dtpTot.Value, "ddddd ttttt")


Замени на
Код

    Dim datFrom As String
    Dim datTo As String

' Получаем выбранные пользователем даты и сохраняем в переменных
    datFrom = Format(dtpVan.Value, "mm/dd/yyyy ttttt")
    datTo = Format(dtpTot.Value, "mm/dd/yyyy ttttt")


и для сравнения дат лучше использовать DateDiff
Код

if datediff("s", datFrom , datTo ) > 0 then 
...


Это сообщение отредактировал(а) boevik - 29.5.2005, 18:48


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
korob2001
Дата 29.5.2005, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Исправил, но всё равно получаю сообщение:
--Resize_Images_Alt_Text--
Он всё равно расставляет точки. smile Мляяя, у меня уже нервы на пределе, сейчас буду лупить по клаве. smile

Это сообщение отредактировал(а) korob2001 - 29.5.2005, 18:56


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
boevik
Дата 29.5.2005, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



korob2001 обрати внимание, что datFrom и datTo типа String


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
korob2001
Дата 29.5.2005, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Код

    Dim datFrom As String
    Dim datTo As String
    
    Dim sSQL1 As String
    
    datFrom = Format(dtpVan.Value, "mm/dd/yyyy ttttt")
    datTo = Format(dtpTot.Value, "mm/dd/yyyy ttttt")

Результат тот же.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
boevik
Дата 29.5.2005, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



Показывай код и распечатай SQL который запускается.
Добавлено @ 19:18
Так как у тебя точка разделитель, то надо использовать:
Код

Format(dtpVan.Value, "mm\/dd\/yyyy ttttt")




--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
korob2001
Дата 29.5.2005, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Цитата

Format(dtpVan.Value, "mm\/dd\/yyyy ttttt")

То, что нужно. Всё заработало. smile
Мне этот отчёт уже все нервы вытрепал. smile

Спасибо ОГРОМНОЕ.

ЗЫ: полесдний вопрос по данной теме, для чего в запросе ты использовал between???

Это сообщение отредактировал(а) korob2001 - 29.5.2005, 19:29


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
boevik
Дата 29.5.2005, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



between используется для выбора между двумя значениями, т.е. X between Y and Z эквевалентен записи Х>Y and X<Z


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
korob2001
Дата 29.5.2005, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Ещё раз спасибо. Всё понял. smile


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
korob2001
Дата 30.5.2005, 03:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Вот ещё на какие грабли наступил. smile
Если чел задал диапазон даты, а в таблице нет записи с такой датой, то выводится сообщение об ошибке:

Invalig DataSource

Не гуд. Мне бы заменить его на сообщение типа "Не найдено ниодной записи с заданным диапазоном", в том же MsgBox.
Пытаюсь перехватить ошибку так:
Код

' Начало процедуры
On Error GoTo ErrCheck

' Тело процедуры, генерирующей отчёт

' Конец процедуры
    Exit Sub
    
ErrCheck:
MsgBox "Не найдено ниодной записи с заданным диапазоном."

Вроде всё правильно, но сообщение я так и получаю: Invalig DataSource
Что не так???


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
boevik
Дата 30.5.2005, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



Проверяй полученный recordset на наличие данных

Код

Set rst = cn.Execute(....)
if rst.bof and rst.eof then
    MsgBox "No data"
   Exit sub
end if


Если не поможет, то показывай код.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
korob2001
Дата 30.5.2005, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



boevik - Спасибо, всё работает так, как нужно.

Зы: код я уже показывал в начале этой темы.

Это сообщение отредактировал(а) korob2001 - 30.5.2005, 08:35


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
boevik
Дата 30.5.2005, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



Цитата(korob2001 @ 30.5.2005, 08:34)
Зы: код я уже показывал в начале этой темы

С той поры много воды утекло smile .
Твой код должен был претерпеть много изменений.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
korob2001
Дата 30.5.2005, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



smile ОК. Может кому и пригодится. Теперь он выглядит так:
Код

Private Sub cmdGetReport_Click()
    ' Объявляем локальные переменные, для получения ввыбранных пользователем дат
    Dim datFrom As String
    Dim datTo As String
    
    ' Создаём переменную для генерации SQL запросов
    Dim sSQL1 As String
    
    ' Получаем выбранные пользователем даты и сохраняем в переменных
    If DateDiff("d", dtpTot.Value, dtpVan.Value) > 0 Then
        datFrom = Format(dtpVan.Value, "mm\/dd\/yyyy ttttt")
        datTo = Format(dtpTot.Value, "mm\/dd\/yyyy ttttt")
    Else
        datFrom = Format(dtpVan.Value, "mm\/dd\/yyyy 0:00:00")
        datTo = Format(dtpTot.Value, "mm\/dd\/yyyy 23:59:59")
    End If
    
    ' MsgBox datFrom
    
    ' Если пользователь указал начальную дату, больше конечной,
    ' то выводим ему сообщение об ошибке и завершаем выполнение программы
    If DateDiff("s", datTo, datFrom) > 0 Then
        MsgBox "Initial date more final. Correct a mistake and repeat again", vbOKOnly + vbCritical, "Error"
        Exit Sub
    End If
    
    ' Выгружаем форму и выводи отчёт
    Unload Me
        
    ' Строим запрос на выборку из таблицы Besteling
    sSQL1 = "SELECT Besteling.MenuId, Besteling.JoinTime, Menu.MenuTitle, Menu.Prijs, MenuGroups.MenuGroup"
    sSQL1 = sSQL1 & " FROM (MenuGroups INNER JOIN Menu ON MenuGroups.GroupId = Menu.GroupId) INNER JOIN Besteling ON Menu.MenuId = Besteling.MenuId"
    sSQL1 = sSQL1 & " WHERE JoinTime BETWEEN #" & datFrom & "# AND #" & datTo & "# AND TranssControl=1"
    Unload Me
    
    ' Выполняем запрос
    Set rs = modVar.cn.Execute(sSQL1)
    If rs.BOF And rs.EOF Then
        MsgBox "It is not found records with the set range" & vbCrLf & _
               "Try to change a range", vbOKOnly + vbCritical, "Error"
        Exit Sub
    End If
    
    ' Циклически проходим по всем записям таблицы Besteling соответствующих SQL запросу rs1
    While Not rs.EOF
        Set dtrReport.DataSource = rs
        rs.MoveNext
    Wend
    dtrReport.Show
End Sub


Это сообщение отредактировал(а) korob2001 - 30.5.2005, 08:57


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Igor Graf
Дата 7.6.2005, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 10.2.2005

Репутация: нет
Всего: нет



Приве всем, тема у вас очень интересная, и у меня тоже возник по ней вопрос, а как быть если таблицы лежат в разных базах, можно ли как-нибудь сделать что-либо похожее.
Я так понимаю, для 2х баз нужно сделать 2 Connection , а как быть дальше?


С уважением Graf

Это сообщение отредактировал(а) Igor Graf - 7.6.2005, 09:50
PM MAIL   Вверх
Exception
Дата 7.6.2005, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



блин... у нас же отдельный форум по сиквелу есть! Туда бы и задал smile
PM   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0750 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.