powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как определить кол-во добавляемых строк?
13 сообщений из 13, страница 1 из 1
Как определить кол-во добавляемых строк?
    #32398457
Димасик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строки добавляются методом Docmd.RunSql (Insert Into ......From ..... Where .... )

Вопрос:

Как определить количество добавляемых строк?
...
Рейтинг: 0 / 0
Как определить кол-во добавляемых строк?
    #32398463
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Взять селектную часть этого инсерта...
...
Рейтинг: 0 / 0
Как определить кол-во добавляемых строк?
    #32398467
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
select count (*) from [From ..... Where .... part]
...
Рейтинг: 0 / 0
Как определить кол-во добавляемых строк?
    #32398468
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сначала запустить SELECT Count(*) по тем же условиям отбора,
а уж потом insert

ПРоблема: а если будет ошибка уникальности при вставке?
...
Рейтинг: 0 / 0
Как определить кол-во добавляемых строк?
    #32398473
Димасик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е.:

рс = CurrentDb.OpenRecorset("Селектная часть...")
кол_строк = рс.RecordCount

А нельзя как нибудь по другому? В селектной части есть много параметров, берущих данные из форм, надо цикл делать для присвоения параметрам значений (из ФАКА взял), а запрос и так медленно выполняется

Как нибудь красиво?...
...
Рейтинг: 0 / 0
Как определить кол-во добавляемых строк?
    #32398476
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему не
currentdb.RecordsAffected
...
Рейтинг: 0 / 0
Как определить кол-во добавляемых строк?
    #32398482
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
естественно нужно заменить DoCmd на Currentdb
...
Рейтинг: 0 / 0
Как определить кол-во добавляемых строк?
    #32398489
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри на RecordsAffected property. Только тебе прийдётся не docmd использовать, а
currentdb.execute , что почти одно и то же.

-------------------------------------------------------------------
This example uses the RecordsAffected property with action queries executed from a Database object and from a QueryDef object. The RecordsAffectedOutput function is required for this procedure to run.

Sub RecordsAffectedX()

Dim dbsNorthwind As Database
Dim qdfTemp As QueryDef
Dim strSQLChange As String
Dim strSQLRestore As String

Set dbsNorthwind = OpenDatabase("Northwind.mdb")

With dbsNorthwind
' Print report of contents of the Employees
' table.
Debug.Print _
"Number of records in Employees table: " & _
.TableDefs!Employees.RecordCount
RecordsAffectedOutput dbsNorthwind

' Define and execute an action query.

strSQLChange = "UPDATE Employees " & _
"SET Country = 'United States' " & _
"WHERE Country = 'USA'"
.Execute strSQLChange

' Print report of contents of the Employees
' table.
Debug.Print _
"RecordsAffected after executing query " & _
"from Database: " & .RecordsAffected
RecordsAffectedOutput dbsNorthwind

' Define and run another action query.
strSQLRestore = "UPDATE Employees " & _
"SET Country = 'USA' " & _

"WHERE Country = 'United States'"
Set qdfTemp = .CreateQueryDef("", strSQLRestore)
qdfTemp.Execute

' Print report of contents of the Employees
' table.
Debug.Print _
"RecordsAffected after executing query " & _
"from QueryDef: " & qdfTemp.RecordsAffected
RecordsAffectedOutput dbsNorthwind

.Close

End With

End Sub

Function RecordsAffectedOutput(dbsNorthwind As Database)

Dim rstEmployees As Recordset

' Open a Recordset object from the Employees table.
Set rstEmployees = _
dbsNorthwind.OpenRecordset("Employees")

With rstEmployees
' Enumerate Recordset.
.MoveFirst
Do While Not .EOF
Debug.Print " " & !LastName & ", " & !Country
.MoveNext
Loop
.Close
End With

End Function
...
Рейтинг: 0 / 0
Как определить кол-во добавляемых строк?
    #32398490
Димасик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробую вариант VIG и Alexus12

Попутно вопрос:

В процедуре будет таким образом 2 селекта (один в моем SQL, другой в select count (*) from [From ..... Where .... part])

Означает ли это, что будет высчитываться и формироваться выборка 2 раза с вытекающим из этого удвоенным временем работы?
...
Рейтинг: 0 / 0
Как определить кол-во добавляемых строк?
    #32398499
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно так.
Поэтому есть вариант: скидывать эту выборку в отдельную таблицу (очищая ее перед этим) и уже по ней брать кол-во строк
...
Рейтинг: 0 / 0
Как определить кол-во добавляемых строк?
    #32398514
Димасик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2AlexJuice

Понятно

Тогда надо попробовать вариант мадама

Правда там Execute, что вызывает необходимость присваивать значения параметрам запроса, но по-моему он самый быстрый

Ну и как последний вариант твой

2мадама

А если не трудно, не могли бы опубликовать вместо примера RecordsAffected его описание, а то у меня хелп никак нихочет нормально работать, по этому свойству ничего не показывает
...
Рейтинг: 0 / 0
Как определить кол-во добавляемых строк?
    #32398539
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Public Function ExecuteCommand(strSQL As String) As Long
'возвращает к-во обработанных записей

Dim cmd As ADODB.Command
Dim lngAffected As Long

Set cmd = New ADODB.Command

With cmd
.ActiveConnection = CurrentProject.Connection
.CommandType = adCmdText
.CommandText = strSQL

.Execute lngAffected, , adExecuteNoRecords
End With
ExecuteCommand = lngAffected
Set cmd = Nothing

End Function
...
Рейтинг: 0 / 0
Как определить кол-во добавляемых строк?
    #32398543
Димасик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо, особенно guest и мадаме

Все получилось с RecordsAffected (хоть и со своими недостатками)

Больше не хочу переделывать

P.S. SQL.RU is the best
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как определить кол-во добавляемых строк?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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