DataReport (вывод отчёта по критерию...)

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Андрей260276
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 21.07.2006 (Пт) 8:16
Откуда: Рязань

DataReport (вывод отчёта по критерию...)

Сообщение Андрей260276 » 26.07.2006 (Ср) 9:43

Как правильно написать выражение,что бы содержимое отчёта соответствовало задаваемому критерию из формы?

SELECT число,продавец,резерв,зарплата,(резерв-зарплата)as aaasum FROM финансы WHERE финансы.продавец='Зубова Г.А.'

Такой запрос отлично работает,а как подставить объект DataCombo1 , что бы подставлять фамилии продавцов?
Что то у меня не выходит. Помогите кто знает! Заранее спасибо !

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 26.07.2006 (Ср) 10:36

Код: Выделить всё
select [продавец] FROM [финансы] GROUP BY [продавец]


это в комбик твой

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Сообщение HandKot » 26.07.2006 (Ср) 12:07

это?
Код: Выделить всё
SELECT число,продавец,резерв,зарплата,(резерв-зарплата)as aaasum FROM финансы WHERE финансы.продавец = '" & cmbox.Column(NumRow, cmbox.ListIndex) & "'"

Андрей260276
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 21.07.2006 (Пт) 8:16
Откуда: Рязань

Сообщение Андрей260276 » 26.07.2006 (Ср) 12:50

Ничего не понял.Куда я должен прописать DataCombo1 ? Я попробывал вместо cmbox, ничего не работает... В чём моя ошибка ?

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Сообщение HandKot » 26.07.2006 (Ср) 14:07

прошу прощения, писал для КомбоБокса
для ДатаКомбо используется св-во SelectedItem

SELECT число,продавец,резерв,зарплата,(резерв-зарплата)as aaasum FROM финансы WHERE финансы.продавец = '" & DataCombo1.SelectedItem & "'"

Андрей260276
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 21.07.2006 (Пт) 8:16
Откуда: Рязань

Сообщение Андрей260276 » 26.07.2006 (Ср) 14:29

Выдаёт ошибку...Может эту команду на кнопку посадить? Тогда вопрос ,а для какого свойства её прописать? Простите за банальные вопросы, но мне действительно пока не понятно. Заранее спасибо!!!

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 26.07.2006 (Ср) 14:36

выкладывай сюда свой исходник - подправим :wink:

Андрей260276
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 21.07.2006 (Пт) 8:16
Откуда: Рязань

Сообщение Андрей260276 » 26.07.2006 (Ср) 14:54

"SELECT число,продавец,резерв,зарплата,(резерв-зарплата)as aaasum FROM финансы WHERE финансы.продавец Like " + Chr(39) + "%" + DataCombo1.Text + "%" + Chr(39) + ")And финансы.число BETWEEN #" & Format(CDate(DTPicker1.Value), "mm\/dd\/yyyy") & "# AND #" & Format(CDate(DTPicker2.Value), "mm\/dd\/yyyy") & "#"

Просто на форму выводит результат,а в запрос незнаю как это всё взграмоздить... подскажите , куда и что надо прописать,чтобы отчёт формировался по критерию из формы...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 26.07.2006 (Ср) 15:05

это не проект - это просто попытка написать неправильный запрос :evil:

что конкретно у тебя не получается, в каком месте, в какой процедуре твоей программы, и кстати, где сам код :shock:

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Сообщение HandKot » 26.07.2006 (Ср) 16:33

WHERE финансы.продавец Like " + Chr(39) + "%" + DataCombo1.Text + "%" + Chr(39) + ")And

")And
1) нет открывающей скобки
2) нет пробела

надо поставить брекпоинт после формирования сторки запроса
и попробовать данный запрос выполнить в среде БД и все станет ясно

Андрей260276
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 21.07.2006 (Пт) 8:16
Откуда: Рязань

Сообщение Андрей260276 » 26.07.2006 (Ср) 19:38

Ребят,мы сильно отклонились от сути.Начну сначала... У меня есть база,называется финансы.Есть форма с обьектом DataGrid в которой выводятся данные по моему запросу:
frmОтчёт.Adodc1.RecordSource = "SELECT * FROM финансы WHERE (финансы.продавец Like " + Chr(39) + "%" + DataCombo1.Text + "%" + Chr(39) + ")And финансы.число BETWEEN #" & Format(CDate(DTPicker1.Value), "mm\/dd\/yyyy") & "# AND #" & Format(CDate(DTPicker2.Value), "mm\/dd\/yyyy") & "#"

Всё отлично работает.Теперь я хочу,чтобы при нажатии кнопки в DataReport формировался отчёт точно по такому же критерию как и в форме.Теперь вопрос: Как правильно написать выражение для объекта Command? которое я использую для окружения данных.Я копирую этот запрос в окно SQL Statement и ничего не выходит.

SELECT число,продавец,резерв,зарплата,(резерв-зарплата)as aaasum FROM финансы WHERE финансы.продавец='Зубова Г.А.'

Такой запрос работает,но мне надо, что бы я мог при работе любого продавца подставить и получить отчёт именно по этому продавцу. Вот ! Помогите ,подскажите ! Только не надо умничать и давить терминами.Я новичёк,самоучка.Учу язык только из книжек.Так что отнеситесь с пониманием и помогите с проблемой!!! Заранее спасибо !

Андрей260276
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 21.07.2006 (Пт) 8:16
Откуда: Рязань

Сообщение Андрей260276 » 27.07.2006 (Чт) 13:49

Неужели никто не знает как решить эту проблему???

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 28.07.2006 (Пт) 5:12

Андрей260276, я так понял тебе надо подставить любую фамилию?Положи н форму текстбокс или листбокс... Примерно синтаксис такой:

Запрос = "SELECT число,продавец,резерв,зарплата,(резерв-зарплата)as aaasum FROM финансы WHERE финансы.продавец='" & ТвойКонтрол.Text & "'"
Должно работать :D
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

Андрей260276
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 21.07.2006 (Пт) 8:16
Откуда: Рязань

Сообщение Андрей260276 » 28.07.2006 (Пт) 8:04

Видитили ,если для подключения использовать DataEnvironment, то в таком виде почемуто не работает запрос, а если конкретно подставлять продавец='Зубова' всё отлично работает.Но я хочу сделать запрос универсальным.Люди,кто нибудь работал с DataReportom? Помогите ,подскажите,ведь есть же решение.

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 28.07.2006 (Пт) 8:28

Андрей260276, покажи код или выложи кусочек проекта. :?
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

Андрей260276
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 21.07.2006 (Пт) 8:16
Откуда: Рязань

Сообщение Андрей260276 » 28.07.2006 (Пт) 10:14

Парни,всё сделал,Хотите пример вот пользуйтесь работает 100%

Option Explicit

Private Sub cmdОтчёт_Click()

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

With cn
'указываем путь к нашей базе(Это моя база)
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\Program Files\Microsoft Visual Studio\VB98\Белоснежка\Финансы.mdb"
.Open
End With
'Устанавливаем свойства рекордсета и открываем его
With rs
.ActiveConnection = cn
.LockType = adLockReadOnly
.CursorType = adOpenDynamic
.Source = "SELECT число,продавец,резерв,зарплата,(резерв-зарплата)as aaasum FROM финансы WHERE (финансы.продавец Like " + Chr(39) + "%" + DataCombo1.Text + "%" + Chr(39) + ")And финансы.число BETWEEN #" & Format(CDate(DTPicker1.Value), "mm\/dd\/yyyy") & "# AND #" & Format(CDate(DTPicker2.Value), "mm\/dd\/yyyy") & "#"
.Open
End With

'Связываем DataReport с рекордсетом
Set DataReport1.DataSource = rs

DataReport1.Show

Set rs = Nothing
Set cn = Nothing

End Sub

Вот и всё!!! Пользуйтесь!


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

    TopList  
cron