Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Создать массив??? Добавлено: 09.03.05 22:15  

Автор вопроса:  Andrey999 | Web-сайт: www.radio-device.narod.ru | ICQ: 30852361 
Помогите создать массив из переменной cKomis так чтобы ее значениями я смог заполнить набор текстовых строк text1.text - text10.text

Dim sSQL As String, cKomis As String
     sSQL = "SELECT * FROM paramYZI where yzi_ID = '" & nazv & "'"
        Set rs = db.OpenRecordset(sSQL)
        Do While Not rs.EOF
            If Not IsNull(rs.Fields("yzi_ID")) Then
                cKomis = Data11.Recordset![imia] ' - CCur(rs.Fields("vid").Value)
            Set Data11.Recordset = rs
        End If
        
      rs.MoveNext
       Loop

Пожалуста

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 Andrey999



ICQ: 30852361 

Вопросов: 73
Ответов: 168
 Web-сайт: www.radio-device.narod.ru
 Профиль | | #1
Добавлено: 10.03.05 22:25
Видно не подъемный вопрос, даже для спецов и профи.

Ответить

Номер ответа: 2
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #2 Добавлено: 10.03.05 22:41
Да нет, просто вопросы задавать - тоже уметь надо. А чем у тебя данные в cKomis разделены?

Ответить

Номер ответа: 3
Автор ответа:
 Andrey999



ICQ: 30852361 

Вопросов: 73
Ответов: 168
 Web-сайт: www.radio-device.narod.ru
 Профиль | | #3
Добавлено: 10.03.05 23:43
Ну судя по коду что я на шкрябал читается таблица paramYZI где строки равны переменной nazv и пполучаемые значения передаются в переменную cKomis (раз прошел по циклу переменная cKomis получила строку из базы и передала ее в массив лучше конечно в text1.text ПОТОМ выбрала вторую строку и передала ее в text2.text и так далее

Ответить

Номер ответа: 4
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 10.03.05 23:46
Почему бы сразу не заполнять поля при считывании из БД? Зачем какая-то лишняя строка?

Ответить

Номер ответа: 5
Автор ответа:
 Andrey999



ICQ: 30852361 

Вопросов: 73
Ответов: 168
 Web-сайт: www.radio-device.narod.ru
 Профиль | | #5
Добавлено: 10.03.05 23:50
так вот я и не знаю как. если есть пример буду очень благодарен

Ответить

Номер ответа: 6
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #6 Добавлено: 11.03.05 01:54
Назови свои текстовые поля не text1-text10, а text1(0) - text1(9), т.е. с индексами, чтобы их можно было в цикле перебирать

И потом в таком же цикле, как у тебя, только не Do-Loop, а For - Next

sSQL = "SELECT * FROM paramYZI where yzi_ID = '" & nazv & "'"
Set rs = db.OpenRecordset(sSQL)
For i = 0 To 9
    If Not IsNull(rs.Fields("yzi_ID";)) Then
        text1(i) = Data11.Recordset![imia] ' - CCur(rs.Fields("vid";).Value)
        Set Data11.Recordset = rs
    End If
    rs.MoveNext
    If rs.EOF Then Exit For
Next i

Ответить

Номер ответа: 7
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #7 Добавлено: 11.03.05 01:59
Пардон, немного погорячился :) Текстовые поля считать надо отдельно.
Так правильней будет:

Dim index As Long
index=0
sSQL = "SELECT * FROM paramYZI where yzi_ID = '" & nazv & "'"
Set rs = db.OpenRecordset(sSQL)
For i = 0 To 9
    If Not IsNull(rs.Fields("yzi_ID";)) Then
        text1(index) = Data11.Recordset![imia] ' - CCur(rs.Fields("vid";).Value)
        index=index+1
        If index=10 Then Exit For
        Set Data11.Recordset = rs
    End If
    rs.MoveNext
    If rs.EOF Then Exit For
Next i

Ответить

Номер ответа: 8
Автор ответа:
 Andrey999



ICQ: 30852361 

Вопросов: 73
Ответов: 168
 Web-сайт: www.radio-device.narod.ru
 Профиль | | #8
Добавлено: 11.03.05 10:16
Спасибо, дома вечером попробую

Ответить

Номер ответа: 9
Автор ответа:
 Andrey999



ICQ: 30852361 

Вопросов: 73
Ответов: 168
 Web-сайт: www.radio-device.narod.ru
 Профиль | | #9
Добавлено: 13.03.05 17:15
Большое спасибо, работает, только как то странно.

Ответить

Номер ответа: 10
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #10 Добавлено: 15.03.05 12:03
И в чем странность заключается? Что не так? Наверное, текстовые поля заполняются только если интересующие тебя значения находятся среди первых 10 записей рекордсета?
Код набирался в онлайне, без проверки. Поэтому надо творчески подходить к нему. Сейчас For-Next заменен на Do-Loop. На всякий случай еще раз, с комментариями:

Dim index As Long
index=0
sSQL = "SELECT * FROM paramYZI where yzi_ID = '" & nazv & "'"
Set rs = db.OpenRecordset(sSQL)

Do While Not rs.EOF 'цикл, пока не дойдем до конца рекордсета
    'если поле yzi_ID не пустое, заносим значение в тестбокс(i)
    If Not IsNull(rs.Fields("yzi_ID";)) Then
        text1(index) = Data11.Recordset![imia]  
        'теперь будем заносит в следующий текстбокс
        index=index+1
        'если все текстбоксы заполнены, выходим из заполнения
        If index=10 Then Exit Do
        Set Data11.Recordset = rs
    End If
    'переходим к следующей записи в рекордсете
    rs.MoveNext
' и повторяем цикл Do-Loop, если конец рекодсета не достигнут
Loop

'тут оказываемся в любом из двух случаев: или все 10 текстбоксов заполнены и заполнять больше нечего, или рекодсет пройден весь до конца и считывать больше неоткуда.

Ответить

Номер ответа: 11
Автор ответа:
 Andrey999



ICQ: 30852361 

Вопросов: 73
Ответов: 168
 Web-сайт: www.radio-device.narod.ru
 Профиль | | #11
Добавлено: 15.03.05 12:23
Да делов том, что Text1(index) всего 18, заполняются они прекрастно НО если значений заполнить надо всего 5 там или 12 в остальных ячейках остаются предыдущие значения. Меня уже накрывает, я уже три вечера сижу с этой проблемой и не пришел не к каким результам

Ответить

Номер ответа: 12
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #12 Добавлено: 15.03.05 15:52
Ну так обнули текстбоксы перед тем как считывать информацию
For i = 0 To 18
    Text(i)=""
Next i
И затем заполняй их.

Ответить

Номер ответа: 13
Автор ответа:
 Andrey999



ICQ: 30852361 

Вопросов: 73
Ответов: 168
 Web-сайт: www.radio-device.narod.ru
 Профиль | | #13
Добавлено: 15.03.05 16:37
Ты просто гений!!! Большое спасибо.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам