Почему Recordset от VBA просто возвращает одну запись? - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть 3 таблицы: "персоны", "per_resi" и "место жительства". Эти три таблицы образуют отношение "многие ко многим".

Поля таблицы "персона": id, имя и т. Д ....

Поля таблицы "место жительства": id, улица и т. Д. .....

Поля таблицы "per_resi": person_id и Residence_id (вместе основной индекс)

Ну, проблемаэто когда я создаю запрос в графическом инструменте доступа, он работает как должно.

enter image description here

Но если я делаю в VBA, он возвращает только 1 запись.

Dim svivienda As String
Dim rvivienda As Recordset

svivienda = "SELECT tbl_persona.Id, tbl_vivienda.Calle, tbl_vivienda.Numero " _
          & "FROM tbl_vivienda INNER JOIN (tbl_persona INNER JOIN tbl_perso_viv ON tbl_persona.Id = tbl_perso_viv.Id_persona) " _
          & "ON tbl_vivienda.Id = tbl_perso_viv.Id_vivienda WHERE tbl_persona.Id = " & 168 & ";"

Set rvivienda = CurrentDb.OpenRecordset(svivienda, dbOpenDynaset)

Я пробовал LEFT JOIN и RIGHT JOIN, но всегда одна и та же только одна запись на наборе записей.

Есть идеи?

MS access 2013

Заранее спасибо.

1 Ответ

0 голосов
/ 26 сентября 2018

Спасибо, ребята,

Это был очень новый вопрос.

Вот ответ.

Свойство RecordCount не сообщает о количестве записей, которые у вас есть.

Значение свойства RecordCount равно количеству записей, к которым был осуществлен доступ.Например, когда вы впервые создаете набор данных или снимок, вы получили доступ (или посетили) только к одной записи.Если вы проверяете свойство RecordCount сразу после создания набора или снимка (при условии, что в нем есть хотя бы одна запись), значение равно 1. Чтобы просмотреть все записи, используйте метод MoveLast сразу после открытия набора записей, а затем используйте MoveFirst для возвратак первой записи.Это не выполняется автоматически, поскольку может быть медленным, особенно для больших наборов результатов.

Подсчет количества записей в наборе записей DAO

Спасибо!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...