Запросы к Базе помогите Плзз

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
SK | Heaton
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 16.08.2005 (Вт) 10:10

Запросы к Базе помогите Плзз

Сообщение SK | Heaton » 18.08.2005 (Чт) 8:30

мне так тут понравилось просто супер..
Помогите плиз с запросами как можно при помощи кодинка ВБ + SQL создать запрос. скажем у меня 3 столбца символ, сумма, дата. и запрос по Дате, чтоб он мне вывел отчет по Дате на таблицу Exel (у меня программа на ВБ а база МДБ-ешка)..
============================
Учимся кодить
============================

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 18.08.2005 (Чт) 8:45

Для применения запросов тебе нужно изменить некоторые свойства adodc, хочешь программно в коде, хочешь в дизайнере.
CommandType=adcmdtext
в дизайнере в свойствах контрола на закладке REcordSource в поле Command Text (SQL) пиши свой запрос, либо программно устанавливай проперть RecordSource=твой запрос.
В эксель можно всатвлять через буфер (пробег в цикле по гриду и заполнение буфера), либо создавать обьект excell.application подлючать экселевскую библиотеку и заполнять лист инфой. На форуме поищи, точно есть и про буфер, и как Range рекордсетом заполнить.

SK | Heaton
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 16.08.2005 (Вт) 10:10

Сообщение SK | Heaton » 18.08.2005 (Чт) 9:01

насчёт отчета я поищу. а вот насчет запроса у меня стоит adcmdtable, напиши мне просто пример. чтоб программно он изменил свойство адода и маленький пример запроса на SQL плизз
============================
Учимся кодить
============================

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 18.08.2005 (Чт) 9:26

Лови...
У вас нет доступа для просмотра вложений в этом сообщении.

SK | Heaton
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 16.08.2005 (Вт) 10:10

Сообщение SK | Heaton » 18.08.2005 (Чт) 9:52

пасиб большое :D :oops:
============================
Учимся кодить
============================

SK | Heaton
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 16.08.2005 (Вт) 10:10

Сообщение SK | Heaton » 18.08.2005 (Чт) 10:24

возникла еще одна проблема. у стоит Тектбокс куда вводится дата **.**.**** при нажатие на кпонку идет запрос
dim d as date
d=text1.text
select * from bla where date='d '
такой запрос не проходит...

Что я делаю не так ?!
============================
Учимся кодить
============================

SK | Heaton
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 16.08.2005 (Вт) 10:10

Сообщение SK | Heaton » 18.08.2005 (Чт) 10:25

возникла еще одна проблема. у мя стоит Тектбокс куда вводится дата **.**.**** при нажатие на кпонку идет запрос
dim d as date
d=text1.text
Adodc1.RecordSource = select * from bla where date='d '
такой запрос не проходит...

Что я делаю не так ?!
============================
Учимся кодить
============================

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 18.08.2005 (Чт) 15:15

18
Последний раз редактировалось Al Khamid 03.11.2007 (Сб) 17:11, всего редактировалось 1 раз.
"Время пришло..." ©

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 18.08.2005 (Чт) 15:57

Al Khamid писал(а):Для преобразования даты я использую такую функцию:
Код: Выделить всё
Function sAmericanDateStyle(datDate As Date) As String
   sAmericanDateStyle = "#" & Format(month(datDate), "00") & "/" & Format(Day(datDate), "00") & "/" & Format(year(datDate), "0000") & "#"
End Function


Что-то дюже сложно - сделай попроще:

Код: Выделить всё
Function sAmericanDateStyle(datDate As Date) As String
    sAmericanDateStyle = "#" & Format$(datDate, "mm\/dd\/yyyy") & "#"
End Function
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

SK | Heaton
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 16.08.2005 (Вт) 10:10

Сообщение SK | Heaton » 19.08.2005 (Пт) 6:36

ща попробую :)
============================
Учимся кодить
============================

SK | Heaton
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 16.08.2005 (Вт) 10:10

Сообщение SK | Heaton » 19.08.2005 (Пт) 6:45

У меня что-то не получается. после запроса у меня выходит пустая таблица. Сделал как вы тут сказали при помощи функции и при помощи DTPicker. Сиравно :(
============================
Учимся кодить
============================

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 19.08.2005 (Пт) 15:19

Последний раз редактировалось Al Khamid 04.12.2007 (Вт) 10:38, всего редактировалось 1 раз.

SK | Heaton
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 16.08.2005 (Вт) 10:10

Сообщение SK | Heaton » 22.08.2005 (Пн) 8:53

Мужики Насчет запроса по дате у мя все получилось пасиб Вам.
дело терь в другом как можно вывести отчет по периоду и как сложить, вычитать при помощи кодинга, не подскажите ?
============================
Учимся кодить
============================

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 22.08.2005 (Пн) 9:25

складывать, вычитать
Код: Выделить всё

select col1 + col2 from tab1 where data1 between #01.02.2005# and #01.05.2005#


сброс в Excel:
Код: Выделить всё

objExcel.range("a1").copyfromrecordset rs


rs - рекордсет
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

SK | Heaton
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 16.08.2005 (Вт) 10:10

Сообщение SK | Heaton » 23.08.2005 (Вт) 7:24

Дело в том что моя структура таблицы вот такая

sim cityId sum date
02 Khj 56532 **.**.**
04 Isf 21546
03 tab 21215
03 khj 4522
03 isf 235
02 tab 4646
02 isf 0
после запроса таблица должна выглядеть так


Символ Khj isf tab
02 56532 0 4646
03 4522 235 21215
04 0 21546 0
------------------------------
сумма1 сумма2 сумма3

Sum = сумма1+сумма2+сумма3
============================
Учимся кодить
============================

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 23.08.2005 (Вт) 8:45

Код: Выделить всё

select sum (col1), sum (col2), sum (col3) from tab1


общая сумма:
Код: Выделить всё

sum=val(rs.fields(0))+val(rs.fields(1))+val(rs.fields(2))
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

SK | Heaton
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 16.08.2005 (Вт) 10:10

Сообщение SK | Heaton » 24.08.2005 (Ср) 7:41

2 lord0n ой пасиб большое :)
============================
Учимся кодить
============================

SK | Heaton
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 16.08.2005 (Вт) 10:10

Сообщение SK | Heaton » 24.08.2005 (Ср) 9:17

Народ помогите!!! Мой ламерсуий котел не пашит че - то.
Структура таблица

Проблема
Код: Выделить всё
sim     cityid     sum      date 
          02       Khj        4500    01.01.2005
          03       dush      6548    01.01.2005
          03       khj        5456    01.01.2005
          02       dush      231      01.01.2005       

Не могу создать запрос чтоб он преобразовал таблицу для отчета в такой вид
Код: Выделить всё

sim(Символ)  khj(Худжанд)  dush(Душ)  по области
02                 4500                231            4731
03                 5456                6548          12004


символы от 02 до 61
от 02 до 32 приход, а от 40-61 расход

вот такая вот загвостка.. Помогите кто чем может :cry:
============================
Учимся кодить
============================

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 24.08.2005 (Ср) 9:22

ни черта не понял
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

SK | Heaton
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 16.08.2005 (Вт) 10:10

Сообщение SK | Heaton » 24.08.2005 (Ср) 11:54

Дело обстоит так это структура мой таблицы (база данный)

Код: Выделить всё
sim     cityid      sum      date 
02       Khj        4500     01.01.2005
03       dush      6548     01.01.2005
03       khj        5456     01.01.2005
02       dush      231      01.01.2005       


Мне надо создать отчет, вид должен быть такой
Код: Выделить всё
   
 
sim(Символ)  khj(Худжанд)    dush(Душ)  по области
02                 4500                   231            4731
03                 5456                   6548          12004


формат отчета Без разницы, можно вывести на текстовый файл (*.txt) или на (.xls)
А вот и вопрос как это сделать и вывести отчет в виде файла.
Код: Выделить всё
Код: Выделить всё
Код: Выделить всё
Код: Выделить всё
Код: Выделить всё
Код: Выделить всё
Код: Выделить всё
============================
Учимся кодить
============================

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 24.08.2005 (Ср) 11:56

Изучи язык запросов, там (смотри по ссылке) все понятно и легко обьяснено, успехов
http://sql-ex.ru/

SK | Heaton
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 16.08.2005 (Вт) 10:10

Сообщение SK | Heaton » 24.08.2005 (Ср) 12:10

Колонки двинулись. :-(
столбцу khj(Худжанд) соответствует 4500, dush(Душ) соответствует 231 а по области - 4731
============================
Учимся кодить
============================

SK | Heaton
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 16.08.2005 (Вт) 10:10

Сообщение SK | Heaton » 24.08.2005 (Ср) 12:17

ок почитаю :-)
============================
Учимся кодить
============================

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 24.08.2005 (Ср) 13:37

усе, я кажется догнал
те нуна найти все поля со значеними Khj (к примеру)

Код: Выделить всё

select * from tab1 where cityid = 'Khj'


твое решение
а так
Алексей К. писал(а):Изучи язык запросов, там (смотри по ссылке) все понятно и легко обьяснено, успехов
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

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

Сообщение Konst_One » 24.08.2005 (Ср) 13:50

короче - это тебе надо сделать CROSSTAB

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

Сообщение Konst_One » 24.08.2005 (Ср) 14:11

вот так :?:

Код: Выделить всё
SELECT  DISTINCT   sim,
           (SELECT     A.[SUM]
           FROM          Table1 A
           WHERE      A.cityid = 'khj' AND A.sim = M.sim)
   AS Khj,
           (SELECT     B.[SUM]
           FROM          Table1 B
           WHERE      B.cityid = 'dush' AND B.sim = M.sim)
   AS dush
FROM         Table1 M


но что такое [по области], я не смог понять


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

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

Сейчас этот форум просматривают: SemrushBot и гости: 2

    TopList