Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Посчитать количество непустых полей в запросе / 11 сообщений из 11, страница 1 из 1
29.01.2021, 19:22
    #40039985
Slava_1987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посчитать количество непустых полей в запросе
Добрый всем вечер.

Помогите пожалуйста. После долгого перерыва в профессии возвращаюсь к Access and VBA. На данный момент нужно посчитать количество непустых полей в запросе. То есть у меня запрос и там 72 поля. В одних есть пустые записи, а в других текст. Нужно вывести 73 поле где будет просто количество полей в которых содержиться текст. Но в начале у меня еще три технических поля, то есть цыкл нужно начинать с 4-го поля.

Вот пробую через Vba, но знаний пока не достаточно.

Function CountFields()

Dim baza As DAO.Database
Dim zap, zapOpen As DAO.QueryDef
Dim i As Integer

Set baza = CurrentDb
Set zap = Nothing
Set zap = baza.QueryDefs("003_No_Cur_ICW_Add_Data")


Set zapOpen = zap.OpenRecordset


For i = 4 To 72

If zapOpen(4)

Next i

End Function
...
Рейтинг: 0 / 0
29.01.2021, 20:12
    #40039994
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посчитать количество непустых полей в запросе
Slava_1987
Добрый всем вечер.

Помогите пожалуйста. После долгого перерыва в профессии возвращаюсь к Access and VBA


Возвращайтесь побыстрей. Всё очень просто:

Код: vbnet
1.
2.
3.
4.
5.
... 

Set zapOpen = zap.OpenRecordset("SELECT * FROM таблица WHERE ваше_поле <>'' " )
  ZeroCount= zapOpen.recordCount 'количество строк с непустым полем 
... 



Писал с мобилы, но надеюсь смысл понятен
...
Рейтинг: 0 / 0
29.01.2021, 20:22
    #40039996
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посчитать количество непустых полей в запросе
Slava_1987, на скорую руку накидал
(DAO, ну... хозяин барин)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Function CountFields()
On error goto err
Dim i as long, zapOpen as DAO.recordset, strsl as string, y as long
strsql="003_No_Cur_ICW_Add_Data"

set zapOpen =currentdb.openrecordset(strql,2)
if .eof and .bof then exit function
With zapOpen 
.MoveFirst
   Do Until .EOF
y=0
       for i=3 to .fields.count-2
       if .fields(i)<>"" then y=y+1
      next i
.edit
.fields(.fields.count-1)=y
.update
.MoveNext
Loop
.close
End With
exit:
set zapOpen =nothing
exit function
err:
' здесь обработка ошибок: минимально если regRazrabotki - это глобальная переменная режима разработки
if regRazrabotki=true then Debug.Print Err.Number; Tab; Err.Description: Stop: Resume
resume exit
End function

...
Рейтинг: 0 / 0
30.01.2021, 00:29
    #40040027
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посчитать количество непустых полей в запросе
я понял так:
-подсчитать количество пустых полей(без разницы какого типа или только в текстовых) во всех записях запроса
-если в текстовом поле цифра её считать текстом (или это исключено)
правильно?
...
Рейтинг: 0 / 0
30.01.2021, 01:34
    #40040032
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посчитать количество непустых полей в запросе
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub my()
Dim rs As Recordset, myFaields, myCount, i
Set rs = CurrentDb.OpenRecordset("запрос")
myFaields = rs.Fields.Count
Do Until rs.EOF
    For i = 0 To myFaields - 1
        If IsNull(rs(i)) Or rs(i) = "" Then myCount = myCount + 1
    Next
rs.MoveNext
Loop
End Sub
...
Рейтинг: 0 / 0
30.01.2021, 01:50
    #40040033
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посчитать количество непустых полей в запросе
ПыСы:Прошу прощения за почти копирование сообщения от уважаемого alecko
Когда начал писать его сообщения еще не было,затем надолго отвлекли,затем,не глядя,отправил
...
Рейтинг: 0 / 0
30.01.2021, 01:51
    #40040034
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посчитать количество непустых полей в запросе
Slava_1987
....у меня запрос и там 72 поля. В одних есть пустые записи, а в других текст.
Нужно вывести 73 поле где будет просто количество полей в которых содержиться текст.
Но в начале у меня еще три технических поля, то есть цыкл нужно начинать с 4-го поля..

Код: sql
1.
2.
3.
4.
SELECT ....
Count(Поле4) + Count(Поле5) + Count(Поле6) + Count(Поле7) + Count(Поле8)..... + Count(Поле72) AS Поле73
....
FROM ....


Count(*) - возвращает полное количество записей
Count(ИмяПоля) - возвращает количество записей, в которых указанное поле ИмяПоля непустое.
...
Рейтинг: 0 / 0
31.01.2021, 05:49
    #40040214
Slava_1987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посчитать количество непустых полей в запросе
sdku
я понял так:
-подсчитать количество пустых полей(без разницы какого типа или только в текстовых) во всех записях запроса
-если в текстовом поле цифра её считать текстом (или это исключено)
правильно?


Без разницы. В непустых полях находятся адреса отделений. Вот просто нужно общее количество отделений.
...
Рейтинг: 0 / 0
31.01.2021, 05:52
    #40040215
Slava_1987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посчитать количество непустых полей в запросе
Спасибо, что все так бысто откликнулись. Переключили меня на срочную другую задачу, по этому не пробовал еще предложенные варианты. Но еще раз зпасибо больное за советы.
...
Рейтинг: 0 / 0
01.02.2021, 14:11
    #40040488
ИВП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посчитать количество непустых полей в запросе
Slava_1987
зпасибо больное за советы.

Лечите спасибо
...
Рейтинг: 0 / 0
01.02.2021, 15:00
    #40040517
Прогер_самоучка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посчитать количество непустых полей в запросе
ИВП
Slava_1987
зпасибо больное за советы.

Лечите спасибо
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Посчитать количество непустых полей в запросе / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]