Заполнить массив данными из RecordSet

У меня есть запрос, который содержит нужные мне данные, но мне нужно получить данные из запроса в формате
номер объекта - идентификатор сотрудника
номер объекта - идентификатор сотрудника
номер объекта - идентификатор сотрудника

И так далее... Я пытался написать свой код, как показано ниже, но получаю ошибку компиляции
'Ошибка компиляции:
Несоответствие типов'
Эта ошибка выдается на &



Как правильно получить данные из настройки запроса в нужном мне формате? Полная картина, я хочу получить данные из запроса в формате XXXX - XXXX, чтобы я мог использовать их в теле письма, которое я генерирую в своем коде VBA.

Dim en() As String
Dim ei() As String                                                   
Set rs = db.OpenRecordset("qryData")
If Not (rs.BOF And rs.EOF) Then
rs.MoveLast
rs.MoveFirst
While (Not rs.EOF)
    en = en & vbCrLF & Space(7) & rs![public systems.entity number]
    ei = ei & vbCrLF & Space(7) & rs![public systems.employee id]
    rs.MoveNext
  Wend
End If

вы добавляете объект набора записей в строковый объект. Не знаю наизусть, но rs![public systems.entity number].ToString невозможен

ywwy 28.05.2019 14:12

если я добавлю в .ToString - я все еще получаю ошибку компиляции в &

Doctor Ford 28.05.2019 14:13

Вы работаете с массивом, не так ли? : en(counter) = vbCrLF & Space(7) & rs![public systems.entity number].ToString. counter = 0 к количеству записей

ywwy 28.05.2019 14:20

Используя код, который вы предложили выше, я получаю ошибку отладки ошибки времени выполнения «424»: Object Required on my Set rs = .... line

Doctor Ford 28.05.2019 14:25

en(0) = vbCrLF & Space(7) & rs![public systems.entity number].ToString Если вы замените en на en(0), в качестве начала .

ywwy 28.05.2019 14:27

Все еще ошибка объекта требуется в строке Set rs.....

Doctor Ford 28.05.2019 14:29

Мы говорим о VBA, верно?

FunThomas 28.05.2019 14:31

Да — доступ к VBA

Doctor Ford 28.05.2019 14:33

Сначала сделайте так, чтобы ваш массив работал правильно без набора записей, используя некоторые жестко запрограммированные строки, а затем добавьте набор записей.

ywwy 28.05.2019 14:35
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
9
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

I am wanting to get the data from the query in the XXXX - XXXX format so I can use it in the body of an email

Это не массив, поэтому используйте строку:

Dim rs As DAO.Recordset
Dim en As String
Dim ei As String                                                   

Set rs = CurrentDb.OpenRecordset("qryData")
If Not (rs.BOF And rs.EOF) Then
    rs.MoveLast
    rs.MoveFirst
    While Not rs.EOF
        en = en & vbCrLF & Space(7) & rs![public systems.entity number].Value
        ei = ei & vbCrLF & Space(7) & rs![public systems.employee id].Value
        rs.MoveNext
    Wend
End If
rs.Close

Используя код, который вы предложили выше, я получаю ошибку отладки ошибки времени выполнения «424»: Object Required on my Set rs = .... line

Doctor Ford 28.05.2019 14:33

Это невозможно. Я думаю, вы пропустили CurrentDb.

Gustav 28.05.2019 14:42

Другие вопросы по теме