powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Массив. Не могу передать из функции переменной
8 сообщений из 8, страница 1 из 1
Массив. Не могу передать из функции переменной
    #39685862
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Dim x() As Variant
ReDim x(LBound(y_func("ololol"), 1) To UBound(y_func("ololol"), 1), _            'изначально этой строки не было, написал в попытке'
 LBound(y_func("ololol"), 2) To UBound(y_func("ololol"), 2))                          'исправить, но оно всё равно не работает'
x = y_func("ololol")           'Пишет type mismatch'
End Sub

Function SplitPrmCln(NamePrmtr As String) As Variant
Dim y As String, x As Variant, i As Integer, j As Integer, cnt As Integer
y = CurrentDb.OpenRecordset("Select VLE from prmtr_main where Prmtr = '" & NamePrmtr & "'")!Vle        'y=1_4_3,2_4_6,3_5_-3,4_5_0'
x = Split(y, ",")
ReDim x(LBound(x) To UBound(x), 1 To 3)
For i = LBound(x, 1) To UBound(x, 1)
    For j = 0 To 2
        x(i, j + 1) = Split(Split(y, ",")(i), "_")(j)
    Next
Next
SplitPrmCln = x
End Function



Помогите, пожалуйста! Как передать значение этой функции?
____
vk.com/taenfox
...
Рейтинг: 0 / 0
Массив. Не могу передать из функции переменной
    #39685869
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Растолкуй ты мне, зачем ты сплитуешь y в массив x , а потом сразу всё насплитованное сливаешь в корзину переопределением?
...
Рейтинг: 0 / 0
Массив. Не могу передать из функции переменной
    #39685874
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaРастолкуй ты мне, зачем ты сплитуешь y в массив x , а потом сразу всё насплитованное сливаешь в корзину переопределением?

Это мой полуторный опыт работы с массивом. Когда делал функцию она почему то ругалась на размерность массива или я не правильно понял...

Если покажете как правильно нужно было это сделать буду безмерно благодарен! (куда уж больше...)
Но вот прям ща проблемес - не могу передать этот массив из функции
...
Рейтинг: 0 / 0
Массив. Не могу передать из функции переменной
    #39685876
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так?
Function SplitPrmCln(NamePrmtr As String) As Variant()
...
Рейтинг: 0 / 0
Массив. Не могу передать из функции переменной
    #39685878
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4d_monsterА если так?
Function SplitPrmCln(NamePrmtr As String) As Variant()

ну, это привело к аналогичной ошибке в строке
Код: vbnet
1.
SplitPrmCln = x
...
Рейтинг: 0 / 0
Массив. Не могу передать из функции переменной
    #39685882
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MokeevP
Код: sql
1.
Dim x() As Variant

скобки тут убери, и всё "наладиться"

Всякие ReDim-ы - нафик
Обращаться к элементам как x(i)(j)
...
Рейтинг: 0 / 0
Массив. Не могу передать из функции переменной
    #39685892
MokeevP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
courtMokeevP
Код: sql
1.
Dim x() As Variant

скобки тут убери, и всё "наладиться"

Всякие ReDim-ы - нафик
Обращаться к элементам как x(i)(j)

Работает! Спасибо!

правда с redim'ом не понял как правильно поступить надо
...
Рейтинг: 0 / 0
Массив. Не могу передать из функции переменной
    #39685895
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MokeevP,

нее, ReDim всё-таки понадобился ...

как-то так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Sub test()
    Dim s As String, arr As Variant, arr1 As Variant, i As Long, j As Long
    
    s = "1_4_3,2_4_6,3_5_-3,4_5_0"
    arr = Split(s, ",")
    arr1 = Array()
    ReDim arr1(UBound(arr))
    
    For i = LBound(arr) To UBound(arr)
        arr1(i) = Split(arr(i), "_")
    Next
    
    '   ------------------------------------------------------
    Debug.Print "i", "j", "value"
    Debug.Print "---------------------------------"
    For i = LBound(arr1) To UBound(arr1)
        For j = LBound(arr1(i)) To UBound(arr1(i))
            Debug.Print i, j, arr1(i)(j)
        Next
    Next
    
End Sub


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
i             j             value
---------------------------------
 0             0            1
 0             1            4
 0             2            3
 1             0            2
 1             1            4
 1             2            6
 2             0            3
 2             1            5
 2             2            -3
 3             0            4
 3             1            5
 3             2            0
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Массив. Не могу передать из функции переменной
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]