|
|
|
| Всем привет.
Подключаю базу access к word.
Столкнулся с такой проблемой.
Как узнать количество строк данных подгружаемых из запроса, чтобы отобразить их на одном листе
конструкция такого вида ругается с ошибкой 3078 что не удалось найти входящую таблицу или запрос(в моем случае запрос), хотя парой строк ранее подключение к базе с этим запросом прошло успешно и в ворде это видно.
Set rst = CurrentDb.OpenRecordset("Select * From 'Запрос1'")
|
Необходимо данными из запроса заполнить таблицу ворда, в зависимости от количества данных в запросе должно быть столько же строк в таблице.
планировал сделать через цикл но застопорился на выяснении количества строк в запросе. | |
|
| |
|
|
|
| Аргументы: strQuery - название сохраненного запроса или SQL запроса.
Назначение: Получить количество строк возвращаемое запросом или SQL выражением
Возвращает: Количество строк в запросе
Public Function QRCount(strQuery As String) As Long
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset(strQuery)
rst.MoveLast
QRCount = rst.RecordCount
rst.Close
End Function | |
|
| |
|
|
|
| Хм что-то не пойму что делаю не так. Снова валится с ошибкой 3078 "" на строке Set rst = CurrentDb.OpenRecordset(SQLStatement), а подключение к базе проходит нормально...
Public Function QRCount(SQLStatement As String) As Long
Dim rst As Recordset
'''SQLStatement = "Select * From 'Запрос1'"
Set rst = CurrentDb.OpenRecordset(SQLStatement)
rst.MoveLast
QRCount = rst.RecordCount
rst.Close
End Function
Sub main()
MsgBox QRCount("Select * From 'Запрос1'")
Dim MyCounter As Integer
ActiveDocument.MailMerge.OpenDataSource Name:=ActiveDocument.Path & "\Склад.accdb" _
, SQLStatement:="SELECT * FROM 'Запрос1'", SQLStatement1:="", _
SubType:=wdMergeSubTypeAccess
...
End Sub
|
| |
|
| |
|
|
|
| попробуй предварительно создать нужный запрос, назови его SQLStatement
И справь строку
Set rst = CurrentDb.OpenRecordset(SQLStatement)
на
Set rst = CurrentDb.OpenRecordset("SQLStatement") | |
|
| |
|
|
|
| Так у меня 100% есть запрос с названием Запрос1 при подключении базы он выполняется. и я пробовал заменять переменную на запрос та же ошибка, так же пробовал использование различных типов кавычек и скобок свойственных запросам sql. | |
|
| |
|
|
|
| ну хотя бы
раскомментируй строку
'''SQLStatement = "Select * From [Запрос1]"
создай типа переменную строковую
dim SQLStatement | |
|
| |
|
|
|
| или так
Set rst = CurrentDb.OpenRecordset("Запрос1") | |
|
| |
|
|
|
|
Как узнать количество строк данных подгружаемых из запроса, чтобы отобразить их на одном листе
|
а лист верда резиновый???
если есть готовый запрос - то кол-во получим вот так
Set rst = CurrentDb.OpenRecordset("Select count(*) From Запрос1 group by Запос1.Поле1")
|
| |
|
| |
|
|
|
|
| Всем спасибо. Заработало.
В итоге для полной работоспособности предложенного решения от Alex не хватало
Возможно достаточно было подключить какую-то библиотеку, но я не знаю какую именно.
По поводу закоменченой строки
'''SQLStatement = "Select * From 'Запрос1'"
|
при подключении базы к ворду используется тоже имя переменной, так что запрос в ней уже есть и эта строка тут не нужна вовсе, потому и закоменчена.
По поводу резиновости листа. в запросе не более 20ти позиций так что в этом плане все нормально) | |
|
| |