Страница: 1 |
Страница: 1 |
Вопрос: Вывод данных2
Добавлено: 15.01.10 08:17
Автор вопроса: Iren | ICQ: 496876583
Добрый день! я вытаскиваю данные из рекордсета
Но вот если значение null, дает ошибку. Подскажите пожалуйста как это избежать?
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #1
Добавлено: 15.01.10 08:32
Номер ответа: 2
Автор ответа:
Iren
ICQ: 496876583
Вопросов: 11
Ответов: 25
Профиль | | #2
Добавлено: 15.01.10 09:29
If rspricall1.Fields(2).Value <> Null Then Cells(4, i).Value = rspricall1.Fields(2).Value
ошибку дает: Не удается найти объект в семействе, соответствующий имени или порядковому номеру
Номер ответа: 3
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #3
Добавлено: 15.01.10 11:10
Iren, покажи весь код.
Номер ответа: 4
Автор ответа:
Iren
ICQ: 496876583
Вопросов: 11
Ответов: 25
Профиль | | #4
Добавлено: 15.01.10 11:30
Pri_Call
End Sub
Sub Pri_Call()
Dim con As ADODB.Connection: Set con = New ADODB.Connection
'Dim dt As Date
'dt = Format(Date, "D.MM.YY"
dt = InputBox("Введите дату в формате дд.мм.гг", "Ввод даты", Format(Date, "dd.mm.yy")
con.Open "Provider=MSDAORA.1;Password=pwd;User ID=userata Source=mydb;Persist Security Info=True"
Cells(1, 1).Value = "Pri Call"
Cells(2, 1).Value = "Заказ мелодии категории 0,00$"
Cells(3, 1).Value = "Кол-во заявок (шт.)"
Cells(4, 1).Value = "Сумма, USD с НДС"
Dim w As Integer
Dim i As Integer
For i = 1 To ActiveSheet.Columns.Count
If Cells(1, i).Value = "" Then
w = i
Cells(1, i).Value = dt
'Заказ мелодии категории 0,00$
Dim rspricall1 As ADODB.Recordset: Set rspricall1 = New ADODB.Recordset
Set rspricall1.ActiveConnection = con
Sql = " select count(t.chrg_id), sum(t.amount_$)"
Sql = Sql & " from bis.charges t"
Sql = Sql & " where t.prcl_prcl_id=10287"
Sql = Sql & " and t.del_user is null"
Sql = Sql & " and t.navi_date like '" & dt & "'"
rspricall1.Open Sql, con
Sheets("Лист1".Select
Cells(3, i).Value = rspricall1.Fields(1).Value
If rspricall1.Fields(2).Value <> Null Then Cells(4, i).Value = rspricall1.Fields(2).Value
rspricall1.Close
Номер ответа: 5
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #5
Добавлено: 15.01.10 20:09
Номер ответа: 6
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #6
Добавлено: 15.01.10 20:15
Да, вот еще что. В результате запроса будет строка с 2 полями count(t.chrg_id) и sum(t.amount_$). А обращаться к ним нужно вот так 1 поле по порядку - Fields(0), второе - Fields(1). Т. е. нумерация с 0.
Можно также по именам: запрос первая строка как "select count(t.chrg_id) as MyCount, sum(t.amount_$) as MySum". А к полям обратиться как Fields("MyCount".Value, Fields("MySum".Value