Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подсчет кол-ва записей в удаленной базе?
 
 автор: Tip   (02.10.2006 в 22:00)
 
 

Все таки, как?
Мне на форме надо вывести результаты подсчета из нескольких таблиц? Как правельно считать, без тормозов? Если можно весь текстик функции! Спасибо!

  Ответить  
 
 автор: osmor   (03.10.2006 в 09:04)   личное сообщение
 
 

nz(DCount("*", "tbl1"),0)+nz(DCount("*", "tbl2"),0)+....+ nz(DCount("*", "tblN"),0)

  Ответить  
 
 автор: Tip   (03.10.2006 в 16:25)
 
 

А как можно посчитать если у меня используется переменная в которой хранится "SELECT * FROM Table". Тогда эта функция не считает!
Как тогда быть, с учетом что еще не в одной таблице считать надо?
Типа функция один считает в таблице 1 и выводит данные в поле 1
Типа функция два считает в таблице 2 и выводит данные в поле 2

  Ответить  
 
 автор: osmor   (03.10.2006 в 17:03)   личное сообщение
 
 

dcount считает только в таблице или сохраненном запросе.
Но запрос вида "SELECT * FROM Table" вполне можно заменить именем таблицы т.е.
nz(DCount("*", ПеременнаяСИменемТаблицы),0)

т.е.
Public Function mydcount(strtblName As String) As Long
mydcount = Nz(DCount("*", strtblName))
End Function
в поле формы в свойстве данные пишите:
=mydcount("Таблица1")
в другом поле
=mydcount("Таблица2")
и т.д.

  Ответить  
 
 автор: Tip   (03.10.2006 в 17:07)
 
 

Все понятно.............. просто помимо таблицы, в переменной содержится и другие параметры типа WHERE и так далее. То есть смысл задачи, нужен посдчет строк на соновании перменной в которой задержиться запрос!

  Ответить  
 
 автор: osmor   (03.10.2006 в 17:51)   личное сообщение
 
 

используйте Recordset и свойство его Recordcount

  Ответить  
 
 автор: Tip   (05.10.2006 в 17:23)
 
 

Ни как немогу разобраться с циклом ADO по записям для подсчета: функцию взял по аналогии с DAO

Private Sub Schitat()
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset

rst.Open "SELECT ДатаПоступления FROM Квартиры WHERE ДатаПоступления=Date()", CurrentProject.Connection, adOpenDynamic, adLockOptimistic

If rst.RecordCount <> 0 Then
rst.MoveLast
rst.MoveFirst
Do Until rst.EOF
rst.MoveNext
Loop
MsgBox "Сегодня поступило: " & rst.RecordCount
Else
MsgBox "За сегодня заявок не поступало"
End If

rst.Close
Set rst = Nothing
End Sub

  Ответить  
 
 автор: osmor   (05.10.2006 в 17:55)   личное сообщение
 
 


Public Sub Schitat()
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset

rst.Open "ДатаПоступления FROM Квартиры WHERE ДатаПоступления = " & Format(Date, "\#mm\/dd\/yyyy\#"), CurrentProject.Connection, adOpenStatic, adLockReadOnly

If rst.RecordCount <> 0 Then
    rst.MoveLast
    MsgBox "Сегодня поступило: " & rst.RecordCount
Else
MsgBox "За сегодня заявок не поступало"
End If

rst.Close
Set rst = Nothing
End Sub

  Ответить  
 
 автор: Tip   (06.10.2006 в 10:00)
 
 

Ах вот оно как надо!..... блин теперь заново для себя открывать акцес!
Спасибо за ответы!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList