|
автор: Tip (02.10.2006 в 22:00) |
|
| Все таки, как?
Мне на форме надо вывести результаты подсчета из нескольких таблиц? Как правельно считать, без тормозов? Если можно весь текстик функции! Спасибо! | |
|
| |
|
|
|
| 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 | |
|
| |
|
|
|
| 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 и так далее. То есть смысл задачи, нужен посдчет строк на соновании перменной в которой задержиться запрос! | |
|
| |
|
|
|
| используйте 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 | |
|
| |
|
|
|
|
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) |
|
| Ах вот оно как надо!..... блин теперь заново для себя открывать акцес!
Спасибо за ответы! | |
|
| |