Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
shady
-
- Постоялец
-
-
- Сообщения: 461
- Зарегистрирован: 09.11.2005 (Ср) 11:03
-
shady » 06.02.2006 (Пн) 9:31
здравствуйте.
Кто-нибудь пробывал SQL запрос SELECT подвязать к прогресс бару? чтобы прогресс бар показывал сам процесс селекта.
Понятно, что прогрессбару нужен max, и тут без .recordcount можно обойтись?
-
Sirik
-
- Perspicaz
-
-
- Сообщения: 2280
- Зарегистрирован: 19.02.2004 (Чт) 16:09
- Откуда: Бердичев, Украина
-
Sirik » 06.02.2006 (Пн) 11:15
по-моему сама процедура выборки занимает гараздо меньше времени, чем работа с самим рекордсетом.
поэтому можно поступить так: выставляешь max у bar'а в 100, и юзаешь .PercentPosition
-
shady
-
- Постоялец
-
-
- Сообщения: 461
- Зарегистрирован: 09.11.2005 (Ср) 11:03
-
shady » 06.02.2006 (Пн) 11:20
у стандартного bar'a нет .PercentPosition
-
shady
-
- Постоялец
-
-
- Сообщения: 461
- Зарегистрирован: 09.11.2005 (Ср) 11:03
-
shady » 06.02.2006 (Пн) 11:27
и у рекордсета нет
.
ну а если серьезно, то что делать-то?
-
Sirik
-
- Perspicaz
-
-
- Сообщения: 2280
- Зарегистрирован: 19.02.2004 (Чт) 16:09
- Откуда: Бердичев, Украина
-
Sirik » 06.02.2006 (Пн) 11:30
как нет? конечно есть!
-
shady
-
- Постоялец
-
-
- Сообщения: 461
- Зарегистрирован: 09.11.2005 (Ср) 11:03
-
shady » 06.02.2006 (Пн) 11:36
да нет такого у рекордсета, и у прогресс бара нету с чем-то спутали наверное
-
Sirik
-
- Perspicaz
-
-
- Сообщения: 2280
- Зарегистрирован: 19.02.2004 (Чт) 16:09
- Откуда: Бердичев, Украина
-
Sirik » 06.02.2006 (Пн) 11:48
ага, если у тебя рекорсет DAO - есть, иначе - нет
-
shady
-
- Постоялец
-
-
- Сообщения: 461
- Зарегистрирован: 09.11.2005 (Ср) 11:03
-
shady » 06.02.2006 (Пн) 12:02
рекордсет АДО.
-
Konst_One
-
- Член-корреспондент академии VBStreets
-
-
- Сообщения: 3041
- Зарегистрирован: 09.04.2004 (Пт) 13:47
- Откуда: Химки
-
Konst_One » 06.02.2006 (Пн) 12:10
делается ассинхронный запрос и ловится событие:
- Код: Выделить всё
Public WithEvents rsEvents As ADODB.Recordset
Public bComplete As Boolean
Private Sub rsEvents_FetchProgress(ByVal Progress As Long, ByVal MaxProgress As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
Me.lblRecordCount.Caption = rsEvents.RecordCount
End Sub
Private Sub rsEvents_FieldChangeComplete(ByVal cFields As Long, ByVal Fields As Variant, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
bComplete = True
End Sub
sub RefreshRS()
Dim cn As ADODB.Connection
If Not bComplete And Not Me.rsEvents Is Nothing Then
Me.rsEvents.Cancel
Else
bComplete = False
End If
Set cn = New ADODB.Connection
cn.CommandTimeout = 0
cn.ConnectionTimeout = 30
cn.CursorLocation = adUseClient
cn.Open modADO.GetConnectionString
Set rsEvents = New ADODB.Recordset
rsEvents.CursorLocation = adUseClient
rsEvents.PageSize = 100
rsEvents.CacheSize = 1000
Set rsEvents.ActiveConnection = cn
rsEvents.Open SQL, , adOpenStatic, adLockReadOnly, adAsyncFetchNonBlocking
Me.lblRecordCount.Caption = rsEvents.RecordCount
End Sub
ну а прикрутить прогресс-бар дело техники
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: SemrushBot и гости: 124