рекордсет + ехель

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
netfrog
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 186
Зарегистрирован: 27.06.2002 (Чт) 17:23
Откуда: Russia

рекордсет + ехель

Сообщение netfrog » 08.04.2003 (Вт) 15:22

Если не в напряг, подскажите.....
rsObjWorkMap - это то, что вернула ХП на клиента, как бы в зависимости от значения конкретного поля в рекордсете (например если .fields("status").value="лялял") то шрифт там изменить или еще что. И как эти ячейки завершении экспорта в рамку затолкать???

rsObjWorkMap.MoveFirst
Do Until rsObjWorkMap.EOF()
For Cell = 1 To rsObjWorkMap.Fields.Count
With objExcel.ActiveSheet
.Cells(Row, Cell + 2) = rsObjWorkMap.Fields(Cell - 1).Value
End With
Next Cell
Row = Row + 1
rsObjWorkMap.MoveNext
Loop
=================
Ничто так не ограничивает полет мысли программиста, как компилятор :)

Сатрап
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 03.04.2003 (Чт) 16:54

Сообщение Сатрап » 08.04.2003 (Вт) 16:19

Что-то наподобие того, наверное...

rsObjWorkMap.MoveFirst
Do Until rsObjWorkMap.EOF()
For Cell = 1 To rsObjWorkMap.Fields.Count
With objExcel.ActiveSheet
.Cells(Row, Cell + 2) = rsObjWorkMap.Fields(Cell - 1).Value
if .fields("status").value="лялял" then
.Cells(Row, Cell + 2).Select
.Selection.Font.Name = "Times New Roman CYR"
end if
End With
Next Cell
Row = Row + 1
rsObjWorkMap.MoveNext
Loop

With objExcel.ActiveSheet
.Range(Cells(1, 1), Cells(rsObjWorkMap.RecordCount, rsObjWorkMap.Fields.Count)).Select
.Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Selection.Borders(xlEdgeLeft).Weight = xlThin
.Selection.Borders(xlEdgeLeft).ColorIndex = xlAutomatic
.Selection.Borders(xlEdgeTop).LineStyle = xlContinuous
.Selection.Borders(xlEdgeTop).Weight = xlThin
.Selection.Borders(xlEdgeTop).ColorIndex = xlAutomatic
.Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Selection.Borders(xlEdgeBottom).Weight = xlThin
.Selection.Borders(xlEdgeBottom).ColorIndex = xlAutomatic
.Selection.Borders(xlEdgeRight).LineStyle = xlContinuous
.Selection.Borders(xlEdgeRight).Weight = xlThin
.Selection.Borders(xlEdgeRight).ColorIndex = xlAutomatic
End With
я...

netfrog
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 186
Зарегистрирован: 27.06.2002 (Чт) 17:23
Откуда: Russia

Сообщение netfrog » 08.04.2003 (Вт) 18:03

как то не прокатывает :( ркгается на отсутствие метода или свойства (в перв. части вопроса)
=================
Ничто так не ограничивает полет мысли программиста, как компилятор :)

netfrog
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 186
Зарегистрирован: 27.06.2002 (Чт) 17:23
Откуда: Russia

Сообщение netfrog » 08.04.2003 (Вт) 18:05

да и .Cells(Row, Cell + 2).Select выглядит пугающе для юзверя :)))
=================
Ничто так не ограничивает полет мысли программиста, как компилятор :)

netfrog
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 186
Зарегистрирован: 27.06.2002 (Чт) 17:23
Откуда: Russia

Сообщение netfrog » 08.04.2003 (Вт) 18:14

sorry, эт я стормозил, след. конструкция работает, но красит всю строку, а мне надо именно определенную ячейку и только. Хелп!
Код: Выделить всё
Do Until rsObjWorkMap.EOF()
  For Cell = 1 To rsObjWorkMap.Fields.Count
  With objExcel.ActiveSheet
   .Cells(Row, Cell + 2) = rsObjWorkMap.Fields(Cell - 1).Value
   If rsObjWorkMap.Fields("fio").Value = "Отсутствует" Then
    '.Cells(Row, Cell + 2).Select
    .Cells(Row, Cell + 2).Font.Name = "Times New Roman CYR"
    .Cells(Row, Cell + 2).Interior.ColorIndex = 6
   Else
   End If
  End With
  Next Cell
Row = Row + 1
rsObjWorkMap.MoveNext
Loop
=================
Ничто так не ограничивает полет мысли программиста, как компилятор :)

Сатрап
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 03.04.2003 (Чт) 16:54

Сообщение Сатрап » 10.04.2003 (Чт) 18:12

А так? Я не пробовал, но можно... Только ничего не гарантирую :)

Do Until rsObjWorkMap.EOF()
For Cell = 1 To rsObjWorkMap.Fields.Count
With objExcel.ActiveSheet
.Cells(Row, Cell + 2).Interior.ColorIndex = 1
.Cells(Row, Cell + 2) = rsObjWorkMap.Fields(Cell - 1).Value
If rsObjWorkMap.Fields("fio").Value = "Отсутствует" Then
'.Cells(Row, Cell + 2).Select
.Cells(Row, Cell + 2).Font.Name = "Times New Roman CYR"
.Cells(Row, Cell + 2).Interior.ColorIndex = 6
Else
End If
End With
Next Cell
я...

netfrog
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 186
Зарегистрирован: 27.06.2002 (Чт) 17:23
Откуда: Russia

Сообщение netfrog » 11.04.2003 (Пт) 10:49

неа, все равно строки заливает :(
=================
Ничто так не ограничивает полет мысли программиста, как компилятор :)


Вернуться в Visual Basic 1–6

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

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

    TopList