Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Банальный вопрос по синтаксису нумеруемых переменных
 
 автор: TupoyProgrammer   (07.11.2011 в 16:33)   личное сообщение
 
 

В общем смысл проблемы. Access 2003.
цикл:

Dim VarName As String
For i = 1 To XX
VarName = "XXX" & i
[VarName] = (Int((YYY) * Rnd + 1)) - Вот тут я просто не знаю как правильно писать имя переменной
Next i

Мне надо объявить несколько переменных которые имеют один тип и имя отличающееся на "i" Перерыл весь хелп и форум - нашёл только синтаксис Me(VarName) = бла бла бла... Но мне не нужно работать с формой, мне нужны только переменные.
Буду очень признателен за ответ.

  Ответить  
 
 автор: kot_k_k   (07.11.2011 в 17:40)   личное сообщение
 
 

а массив низя использовать

  Ответить  
 
 автор: TupoyProgrammer   (07.11.2011 в 17:57)   личное сообщение
 
 

Если честно не шарю я в массивах - не работал с ними ни разу... Сейчас попробую порыть как ими пользоваться.

  Ответить  
 
 автор: kot_k_k   (07.11.2011 в 18:14)   личное сообщение
 
 

тогда в такую темень как твои переменные и не стоит лазать - прочти 1 раз про массивы и будет счастье

п.с. если че не понятно спрашивай, пришлем ответ

  Ответить  
 
 автор: snipe   (07.11.2011 в 18:51)   личное сообщение
 
 

Dim VarName(1 to XX) As Doudle' тут вместо ХХ должно стоять конкретное число если не знаете
' какое - объявляйте массив с запасом либо читайте про динамические массивы
For i = 1 To XX
VarName(i) = (Int((YYY) * Rnd + 1))
Next i

целая часть числа YYY умноженная на случайное число в диапазоне от 0 до 1 плюс 1
непонятно

  Ответить  
 
 автор: TupoyProgrammer   (07.11.2011 в 19:40)   личное сообщение
 
 

Намёк про динамические массивы понял - Спасибо - мне как раз надо именно такой.
А Int((YYY) * Rnd + 1) - (тут ещё округлить надо) - это я так задаю рандомное число от 1 до числа YYY - 1. Возможно есть способ и попроще, но пока допёр только до такого варианта.

  Ответить  
 
 автор: час   (07.11.2011 в 19:55)   личное сообщение
 
 

Но этот RND - он Вам свинку может подложить - в виде выдачи повторяющихся значений.
Кстати округлять - нечего, если int использовать.
I= Int(Rnd * 256)

  Ответить  
 
 автор: TupoyProgrammer   (08.11.2011 в 09:49)   личное сообщение
 
 

В общем у меня получилось так. Спасибо всем.

Dim Array() As Long

ReDim Array(1 To XX)

For i = 1 To XX
Array(i) = Int((YYY - 1) * Rnd + 1)
Next i

Возник ещё вопрос для получения определённого значения из массива мне всегда нужно запускать Цикл для перебора значений или есть какой то другой способ???
К примеру мне надо вернуть значение Array21 - я запускаю цикл в котором при условии i=21 выполняю какие то действия???

  Ответить  
 
 автор: snipe   (08.11.2011 в 10:35)   личное сообщение
 
 

зачем цикл?
просто Array(21) - и все
(скобки обязательно - без скобок это просто переменная)

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList