powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Посчитать количество непустых полей в запросе
11 сообщений из 11, страница 1 из 1
Посчитать количество непустых полей в запросе
    #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
Посчитать количество непустых полей в запросе
    #40039994
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slava_1987
Добрый всем вечер.

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


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

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

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



Писал с мобилы, но надеюсь смысл понятен
...
Рейтинг: 0 / 0
Посчитать количество непустых полей в запросе
    #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
Посчитать количество непустых полей в запросе
    #40040027
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я понял так:
-подсчитать количество пустых полей(без разницы какого типа или только в текстовых) во всех записях запроса
-если в текстовом поле цифра её считать текстом (или это исключено)
правильно?
...
Рейтинг: 0 / 0
Посчитать количество непустых полей в запросе
    #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
Посчитать количество непустых полей в запросе
    #40040033
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПыСы:Прошу прощения за почти копирование сообщения от уважаемого alecko
Когда начал писать его сообщения еще не было,затем надолго отвлекли,затем,не глядя,отправил
...
Рейтинг: 0 / 0
Посчитать количество непустых полей в запросе
    #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
Посчитать количество непустых полей в запросе
    #40040214
Slava_1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku
я понял так:
-подсчитать количество пустых полей(без разницы какого типа или только в текстовых) во всех записях запроса
-если в текстовом поле цифра её считать текстом (или это исключено)
правильно?


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

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

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


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