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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сборка отчета по критериям 
:(
    Опции темы
Igor Graf
  Дата 12.4.2005, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Привет всем!

Сегодня у меня появилась следующая задача: есть бд под названием AMD в ней данные о работниках , форма
управления бд, отчет выполненый через data report.

Необходимо сделать следующее: нужно, чтобы мой отчет можно было составить при помощи определения критерия , например чтобы в нем были только те , кто работает более 10 лет, таких критериев несколько.

Вопрос : как можно програмно "Собрать" отчет при помощи выбора критерия?

Буду рад любым предложениям, заранее благодарен



С уважением Graf
PM MAIL   Вверх
Exception
Дата 12.4.2005, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



В datareport sql не катит? Т.е. он как работает?
PM   Вверх
Igor Graf
Дата 14.4.2005, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



В то -то и дело, что я не знаю работает ли sql в нем. Но не обязательно нужен data report , я буду рад любым
идеям, например сделать отчет в excel или типа того
PM MAIL   Вверх
Exception
Дата 14.4.2005, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Не в смысле ты можешь отфильтровать recordset по sql а потом генерить отчет.
PM   Вверх
Igor Graf
Дата 15.4.2005, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Привет Run-time error, спасибо за предложение!
Если можно опиши по подробнее как отфильтровать recordset по sql или мпожет ссылочка на какой-нибудь ресурс есть?



С уважением Graf
PM MAIL   Вверх
Exception
Дата 15.4.2005, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Ну смотри
Код

dim cn as connection,rs as adodb.recordset
'открываешь соединение и т.д.
'...
'...
rs.open "Select * From table1 where ID>50 and Name like 'А%'"
'...
'А дальше пихаешь результат(rs) в отчет

PM   Вверх
Igor Graf
Дата 16.4.2005, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Run-time error Большое тебе спасибо.

Если не трудно, плиз , поясни: создаем соединение , рекордсет-это понятно , а вот как результат- то в отчет запихать, и что означает 'А%'"?


С уважением Graf. smile
PM MAIL   Вверх
Exception
Дата 16.4.2005, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



A% это я для примера привел (это условие отбора в sql) а результат как записать я не знаю - с отчетами вообще не знаком. Можно построчно копировать из река в отчет...
PM   Вверх
Igor Graf
Дата 19.4.2005, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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




Run-time error Спасибо за помощь.


Народ если кто знает, как запрос в отчет вставить, пожалуйста подскажите.


С уважением Graf
PM MAIL   Вверх
Gannibal
Дата 19.4.2005, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



почитай МСДН русский... вот ссылочка хорошая там подробно можно сказать описанно как работать с БД и создать отчёт

http://www.microsoft.com/Rus/Msdn/Activ/MS...nvironment.mspx


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


Бывалый
*


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

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



M.E.G.U.S Спасибо за ссылку. Я знаком с содержанием статьи, мне надо узнать как закинуть в отчет sql - запрос, и желательно (хотя не принципиально) програмно


С уважением Graf
PM MAIL   Вверх
Gannibal
Дата 19.4.2005, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



можно отчёт вот так вот сделать тогда, я вот так вот отчёт создавал ;)

Код

Dim Db As Database
Dim Rst As Recordset

Private Sub Form_Load()
Dim Cena As Double
Dim CenaCelkem As Double
Set Db = OpenDatabase("c:\sklad\sklad97.mdb")
Set Rst = Db.OpenRecordset("SELECT * FROM sklad ORDER BY ID")
lblInventura.Caption = "на складе : " & Date & " время : " & Time
On Error GoTo Chyba
Rst.MoveFirst
Zacatek:
Cena = Rst.Fields("штук") * Rst.Fields("цена")
CenaCelkem = Cena + CenaCelkem
lblInventura.Caption = lblInventura.Caption & Chr(10) & Rst.Fields("товар") & " - " & Rst.Fields("штук") & " " & Rst.Fields("тип") & " - " & Cena & " баксов"
Rst.MoveNext
GoTo Zacatek
Chyba:
lblInventura.Caption = lblInventura.Caption & Chr(10) & Chr(10) & "цена полностю : " & CenaCelkem & " Kè"
inventura.PrintForm
End Sub


я незнаю если ты типа такого хочешь чтото я туга понял.. если нет то обясни мне ....

Это сообщение отредактировал(а) M.E.G.U.S - 19.4.2005, 14:38


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


Бывалый
*


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

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



M.E.G.U.S
Мне тоже нужно создавать отчет. Я этот вопрос поднимал в своем топике "Создание базы данных" - никто не откликнулся и я решил перейти суда.
Есть запрос. Как создать отчет в БД. Имеется ввиду готовый объект как во вкладке Отчеты в Access, чтобы реагировал на изменения сведений в запросе?
Твой код подойдет для этого??? smile
--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
Igor Graf
Дата 19.4.2005, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



M.E.G.U.S предложил неплохой код, спасибо ему будем пробовать.


С уважением Graf
PM MAIL   Вверх
Gannibal
Дата 19.4.2005, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата
M.E.G.U.S
Мне тоже нужно создавать отчет. Я этот вопрос поднимал в своем топике "Создание базы данных" - никто не откликнулся и я решил перейти суда. Есть запрос. Как создать отчет в БД. Имеется ввиду готовый объект как во вкладке Отчеты в Access, чтобы реагировал на изменения сведений в запросе?
Твой код подойдет для этого???


должен подойти почему бы и нет ты из базы данных берёш парамтры и сним чёто делаешь ;) и выводишь на печать у меня.. ;) просто показано как можно работать с параметрами из БД


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


Бывалый
*


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

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



Привет M.E.G.U.S, всетаки я не понял как вставить запрос в отчет , мне нужно сделать следующее:
вот у меня бд , в ней ,допустим данные о сотрудниках, мне надо выбрать всех иногородних и все сведения о них поместить в отчет. Запрос я сделал, надо его в отчет data report запихать.
Запрос:
Код

 Private Const ksCN1$ = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=c:\"
  Private Const ksCN2$ = ";Persist Security Info=False"
Set cn = New ADODB.Connection
  cn.Open ksCN1 & "\BASE.mdb" & ksCN2
  Set rs = New ADODB.Recordset
  rs.Open "SELECT * FROM Table" & IIf(Text1.Text = "", "", " WHERE (Nemestnie LIKE '" & Text1.Text & "*')"), cn, adOpenKeyset, adLockOptimistic"


Вот такие дела, спасибо за участие.

Это сообщение отредактировал(а) Igor Graf - 20.4.2005, 08:12
PM MAIL   Вверх
Gannibal
Дата 20.4.2005, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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

http://azbukavb.narod.ru/dbdoc/RepDB1.html
http://azbukavb.narod.ru/dbdoc/RepDB2.html


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


Опытный
**


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

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



а вот так бы у тебя скорее всего код должен бы был написан

Код

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

With cn
    .Provider = "Microsoft.Jet.OLEDB.3.51"     ' указываем провайдера
    .ConnectionString = "C:\DataReport.mdb"     'указываем путь к нашей базе
    .Open ' открываем
End With

With rs
    .ActiveConnection = cn
    .LockType = adLockReadOnly
    .CursorType = adOpenDynamic
    .Source = "SELECT * FROM Table" & IIf(Text1.Text = "", "", " WHERE (Nemestnie LIKE '" & Text1.Text & "*')"
    .Open
End With

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


DataReport1.Sections("Section4").Controls("lblRHeader").Caption = "Отчёт" ' заголовок отчёта

DataReport1.Show 1 ' показать отчёт

Set rs = Nothing  ' убить обэкты
Set cn = Nothing ' убить обэкт

End Sub


Это сообщение отредактировал(а) M.E.G.U.S - 20.4.2005, 17:20


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


Опытный
**


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

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



извини просто перед этим тебя плхо понял как отчёт хочешь создать ;)


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


Бывалый
*


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

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



M.E.G.U.S прими мою благодарность, похоже это то самое, буду пробовать, как наберу 100 сообщений, обязательно поставлю тебе+, если не получится еще спрошу, еще раз спасибо.
По последним 2 ссылкам дает ошибки, может у меня провайдер глючит

С уважением Graf

Это сообщение отредактировал(а) Igor Graf - 22.4.2005, 07:52
PM MAIL   Вверх
Gannibal
Дата 22.4.2005, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Igor @ 22.4.2005, 06:23)
По последним 2 ссылкам дает ошибки, может у меня провайдер глючит

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


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


Бывалый
*


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

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



Ok еще раз спасибо.

Это сообщение отредактировал(а) Igor Graf - 23.4.2005, 07:32
PM MAIL   Вверх
Igor Graf
Дата 30.4.2005, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Привет!
Наконец-то получилось создать отчет с sql запросом, и я подумал, вдруг кому пригодится, код выглядит так:
Код

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
 Private Const CN1$ = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=c:\"
 Private Const CN2$ = ";Persist Security Info=False"
Private Sub Command1_Click()
Dim strSQL As String
strSQL = "Select * From Table Where Field='" & Text1.Text & "'"
Set rs = cn.Execute(strSQL)
Set DataReport1.DataSource = rs
DataReport1.Sections("Section4").Controls("Label4").Caption = "Otchet"
DataReport1.Sections("Section2").Controls("Label1").Caption = "Fio"
DataReport1.Sections("Section2").Controls("Label2").Caption = "Fakultet"
DataReport1.Sections("Section2").Controls("Label3").Caption = "Gruppa"
DataReport1.Sections("Section1").Controls("Text1").DataField = "Fio"
DataReport1.Sections("Section1").Controls("Text2").DataField = "Fakultet"
DataReport1.Sections("Section1").Controls("Text3").DataField = "Gruppa"
DataReport1.Show

End Sub

Private Sub Form_Load()
Set cn = New ADODB.Connection
cn.Open CN1 & "\Base.mdb" & CN2
End Sub

Private Sub Form_Unload(Cancel As Integer)
rs.Close
rs = Nothing
cn.Close
cn = Nothing
End Sub

Должен отметить, что поле Field должно иметь тип данных текст, иначе не получается, у меня стоял memo и пока не изменил в отчете данные не отображались.

Еще раз большое спасибо M.E.G.U.S за ссылки.

С уважением Graf


PM MAIL   Вверх
amt
Дата 6.5.2005, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Igor Graf
Попробовал твой код примастрячить к своей БД.
Возникают проблемы с юзером и паролем.

Так я создаю базу
Код

   Set newDB = dao.Workspaces(0).CreateDatabase("C:\temp.mdb", dbLangGeneral & ";pwd=1", dbVersion30 + dbEncrypt)


А этим кодом открываю

Код

 Dim strConnect As String
Dim pwd As String
pwd = "1"
strConnect = ";database=" & App.Path & "\db23.mdb" & ";PWD=" & pwd & ""  'data access with password"
Set mdb = OpenDatabase("", True, False, strConnect)



Не подскажешь как при таком открытии запихать сведения из ГОТОВОГО запроса в DataReport
Заранее благодарен
С уважением, АМТ

--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
Igor Graf
Дата 6.5.2005, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Приветствую Amt!!

Сначала не понял что у тебя не получается , посижу дома , попробую, жаль времени сейчас нет.


С уважением Graf

Это сообщение отредактировал(а) Igor Graf - 6.5.2005, 13:31
PM MAIL   Вверх
Igor Graf
Дата 10.5.2005, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



amt Привет!
Вот блин зараза никак не могу программно подключиться к такой базе, пробовал так:

Код

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
 Private Const CN1$ = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\"
 Private Const CN2$ = ";Persist Security Info=true"
Private Sub Command1_Click()
Dim strSQL As String
strSQL = "Select * From Table Where Field='" & Text1.Text & "'"
Set rs = cn.Execute(strSQL)
Set DataReport1.DataSource = rs
DataReport1.Show
End Sub
Private Sub Form_Load()
Set cn = New ADODB.Connection
cn.Open CN1 & "\1.mdb" & CN2, "admin", "Password"
End Sub
Private Sub Form_Unload(Cancel As Integer)
rs.Close
rs = Nothing
cn.Close
cn = Nothing
End Sub

не как не выходит, может к ней надо строго через Dao подключаться? Щас пробую через Dao
как получу положительный результат напишу. Да подключиться я через Dao смог вот теперь пихаю запрос

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


Бывалый
*


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

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



Это снова я , что-то вроде получилось
Код

Dim strConnect As String
Dim pwd As String
Dim mdb As Database


Private Sub Command2_Click()
Data1.DatabaseName = "c:\1.mdb"
Data1.RecordSource = "Select * From 1 where ID=2"
Data1.Refresh
mdb.Close
End Sub

Private Sub Form_Load()
pwd = "'1'"
strConnect = ";database=c:\1.mdb" & ";PWD=" & pwd & ""
Set mdb = OpenDatabase("", True, False, strConnect)
End Sub


Вот так реально работает .
Если теперь data как- нибудь присобачить к отчету, то все будет круто

Это сообщение отредактировал(а) Igor Graf - 10.5.2005, 09:23
PM MAIL   Вверх
amt
Дата 14.5.2005, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Присетсвую
Igor Graf!
С прошедшими праздниками.
Спасибо за код буду пробовать у себя.
--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

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


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

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


 




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


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

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