Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Есть таблица Problems поля T1(дата) TR(дата) Надо Т1 занести в массив по циклу i= 1 to n-1 где n количество элементов таблицы проблемс поля Т1(с етоим проблем нет Dcount....) А вот с синтаксисом занесение элементов таблицы в массив слабовато. Тоесть я хочу увидеть на выходе к примеру msgbox a(i) . . . msgbox a(n-1) Тоесть как то пощупать значения элементов столбца Т1, может ето решается и не массивами. Тоесть мне надо в ТR занести значения из Т1 по формуле B(j)=А(i+1)-A(i), where i=1....n-1 j=2...m при условии количество элементов A(i)>1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 10:52 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
А можно как-то попроще описать? Три раза прочитал - ничего не понял. Давайте на примере - приведите пример исходной таблицы и результата, который требуется получить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 11:44 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Есть к примеру таблица problems надо все элементы problems.Т1 занести в массив к примеру array1. Далее нажимаю к примеру на кнопку срабатывает msgbox array1(4) тоесть выводит пятий элемент массива. Скажем задача такая если разбирусь в синтаксисе как ее решить с остальным тоже разберусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 12:08 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Kirill96, Ну а синтаксис чего нужен-то? Подключения к базе? Получения рекордсета? Определения массива? Цикла? Занесения в массив? MsgBox? Во что уперлись-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 12:16 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Получения рекордсета Определения массива Занесения в массив ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 12:19 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Kirill96Получения рекордсета Примеров работы тут полно например вот Kirill96Определения массива Почитайте хелп по инструкциям Dim и ReDim, примеры там тоже есть Kirill96Занесения в массив a(i)=5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 12:26 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Kirill96Есть к примеру таблица problems надо все элементы problems.Т1 занести в массив к примеру Например, Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 15:52 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Добавлю. Функция GetRows есть и в DAO, и в ADO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2010, 15:53 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Dim n, i As Integer Dim arr(), arr1() Dim rst, rst1 As Recordset n = DCount("T1", "Problems") Set rst = CurrentDb.OpenRecordset("SELECT Problems.T1 FROM Problems;") arr = rst.GetRows(n) For i = 0 To (n - 1) arr1(0, i) = arr(0, i + 1) - arr(0, i) Next i End Sub ubscript out of range 9. Массив, к элементам которого Вы пытались получить доступ, содержат меньше элементов, чем Вы предполагали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 10:02 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 10:43 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
массив arr он нормально считывает а вот arr1(0,i) пишет subscript out of range буквально на первой иттерации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 10:54 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Kirill96массив arr он нормально считывает а вот arr1(0,i) пишет subscript out of range буквально на первой иттерации чему при этом равно i и LBound(arr,2)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 10:55 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro Код: plaintext Кстати, сразу не заметил в цикле i+1 правильно так: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 10:57 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
чему при этом равно i и LBound(arr,2)-1? тишет 7 так и должен впрочем если и поставить n-1 тоже 7 выдает т.к n = DCount("T1", "Problems") Видимо я как то неправильно обьявил массив arr1 т.к выделяет строку желтым arr1(0, i) = arr(0, i + 1) - arr(0, i) из них при наведении arr1(0,i)-subscript out of range arr(0, i + 1)-значение из таблицы arr(0, i)-значение из таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 11:13 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Kirill96Видимо я как то неправильно обьявил массив arr1 да, что-то я сегодня невнимательный. вам нужно переопределить массив arr1 под нужную размерность с помощью ReDim ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 11:16 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Shocker.Proвам нужно переопределить массив arr1 под нужную размерность с помощью ReDim И пока Антонарий снова меня не обругал. Под нужный размер и под нужную размерность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 11:17 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Добавил в тестовом режиме Private Sub Кнопка4_Click() Dim n, i, j As Integer Dim arr() Dim arr1() ------>ReDim arr1(8) Та же ошибка но уже при i=4 тоесть цикл проходит от 0 до 4 и стопорится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 11:39 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Целиком приведите код со всеми изменениями и используйте пожалуйста тэги для оформления кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 11:43 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Kirill96Dim n, i, j As Integer Dim rst, rst1 As Recordset правильно так Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 11:46 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Может я как дядя вася который заменяя зуботехника молотком все делает но вместо redim зделал вот что и работает Private Sub Кнопка4_Click() Dim n, i, j, m As Integer Dim arr() Dim arr1() Dim rst, rst1 As Recordset //считает кол-во элементов столбца такого то таблицы такойто n = DCount("T1", "Problems") //заносим в рекордсет елеметы Set rst = CurrentDb.OpenRecordset("SELECT Problems.T1 FROM Problems;") \\определяем масси и его ко-лво arr = rst.GetRows(n) Set rst1 = CurrentDb.OpenRecordset("SELECT Problems.TR FROM Problems;") arr1 = rst1.GetRows(n) For i = 0 To n - 2 arr1(0, i) = arr(0, i + 1) - arr(0, i) Next i MsgBox arr1(0, 0) MsgBox arr1(0, 1) MsgBox arr1(0, 2) MsgBox arr1(0, 3) MsgBox arr1(0, 4) MsgBox arr1(0, 5) MsgBox arr1(0, 6) End Sub Щас осталось условие зделать на количество элементов больше двух а то ругаться будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 12:22 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
может как то можно и без рекордсета arr1 определить тоесть заменить как то Set rst1 = CurrentDb.OpenRecordset("SELECT Problems.TR FROM Problems;") arr1 = rst1.GetRows(n) т.к на данный момент етот рекордсет пустой так как в TR ничего нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 12:27 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Еще вопрос образовался щас имею масси arr1 с числовыми значениями real Можно ли как то значения массива аrr1 занести в таблицу tr по циклу Или ети значения изначально по циклу можно было не в массив arr1 а в таблицу занести ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 12:31 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Kirill96ReDim arr1(8) Kirill96arr1(0, i) Сначала определяете одномерный массив, а потом обращаетесь к нему, как к двумерному, в этом-то и была проблема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 12:33 |
|
||
|
access+VBA+массив=?
|
|||
|---|---|---|---|
|
#18+
Kirill96Еще вопрос образовался щас имею масси arr1 с числовыми значениями real Можно ли как то значения массива аrr1 занести в таблицу tr по циклу Или ети значения изначально по циклу можно было не в массив arr1 а в таблицу занести Можно это сделать просто SQL-запросом при условии, что в таблице есть ключи без пробелов в нумерации. Кстати тут у вас логическая ошибка: SELECT Problems.TR FROM Problems если вы не сортируете (ORDER BY), то результат выборки не обещает быть адекватным. То есть что из чего будет вычитаться заранее предсказать нельзя, элементы могут оказаться в произвольном порядке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2010, 12:39 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=120&tid=2159442]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 387ms |

| 0 / 0 |
