Помогите разобраться с кодом

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Помогите разобраться с кодом

Сообщение zaf » 10.05.2006 (Ср) 21:45

Код: Выделить всё

Option Explicit

Dim Zakaz(10, 200) As Variant
'_______________

Private Sub Command2_Click()
Data2.Recordset.MoveFirst 'Считываем базу данных из Access - Таблица заказчиков
            For i = 0 To 5
            For j = 0 To 5
                Zakazchik(j, i) = Text2(j).Text
                List2(j).AddItem Zakazchik(j, i)
            Next j
                Data2.Recordset.MoveNext
            Next i
End Sub


Что значат эти цифры в скобках Dim Zakaz(10, 200) As Variant и на что они влияют?

И что делает код этой кнопки
P.s. визуально вижу что происходит при нажатии, но не пойму как програмно происходит... :( обясните plizz

[Zeus]
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 06.05.2005 (Пт) 8:58
Откуда: Krasnoyarsk

Сообщение [Zeus] » 10.05.2006 (Ср) 21:56

Dim Zakaz(10, 200) As Variant - это двумерный массив, размерностью 10 на 200
Код этой кнопки заполняет массив данными из текстовых полей (Text2(j).Text) и заполняет теми же данными списки List2(j).
Тока не понятно зачем тут Data2.Recordset.MoveNext т.к. данные из БД не используются.
Data2.Recordset.MoveFirst - это установка на первый элемент в полученом списке из БД.

Lil Alex
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 06.05.2006 (Сб) 17:17
Откуда: Portugal, Lisbon

Сообщение Lil Alex » 10.05.2006 (Ср) 22:19

Код: Выделить всё
Private Sub Command2_Click()
Data2.Recordset.MoveFirst 'Считываем базу данных из Access - Таблица заказчиков
            For i = 0 To 5
            For j = 0 To 5
                Zakazchik(j, i) = Text2(j).Text
                List2(j).AddItem Zakazchik(j, i)
            Next j
                Data2.Recordset.MoveNext
            Next i
End Sub


Идёт в самоё начало таблици
затем записываеться в ListBox заказчики, данные которых берёться из TextBox'ов
i - это лини в таблице от 0 до 5 ячеек
j - это колонки в таблице от 0 до 5 ячеек

т.е. например Zakazchik(1, 1) это первая линия, первая колонка
принимает значание которое находиться в textbox(1)
и выводит его в ListBox

а с помощью MoveNext передвигаеться на следующую записть в базе

[Zeus]
Тока не понятно зачем тут Data2.Recordset.MoveNext т.к. данные из БД не используются.


Наверное используются, но только не при клике на эту кнопу (Command2)

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 10.05.2006 (Ср) 23:09

спасибо! :)

ВОПРОС
---
1) почему при нажатии на одну из стрелок в Data2 данные записываются в текст боксы? как он находит куда записывать?
---
2) как можно сделать чтобы нажав на кнопку данные из Access записалиь в текстБокс без той хернюшк ( Data2 )
:) P.S. Если с Data удобнее чем без него то на этот вопрос не отвечайте
---

Что бы я без вас делал? ( на него отвечать ненада :P )

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 10.05.2006 (Ср) 23:20

1) свойства TextBox, начинающиеся на 'Data...'

miwutka
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 76
Зарегистрирован: 10.11.2005 (Чт) 16:34
Откуда: Moscow, Elektrostal

Сообщение miwutka » 11.05.2006 (Чт) 8:41

угу,
1. текстбокс привязан свойством "DataSource" к Data, поэтому бд туда и пишется
2.так проще

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 12.05.2006 (Пт) 21:18

Код: Выделить всё
Data1.Recordset.MoveFirst

Do Until Data1.Recordset.EOF
    i = i + 1
Loop


Чему i будет равно?
Что значят Util и Data1.Recordset.EOF
*
Как можно узнать количество строк в таблице?

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 12.05.2006 (Пт) 21:47

zaf писал(а):
Код: Выделить всё
Data1.Recordset.MoveFirst

Do Until Data1.Recordset.EOF
    i = i + 1
Loop

Чему i будет равно?

Бесконечности -- это бесконечный цикл. А если добавишь:
Код: Выделить всё
Data1.Recordset.MoveNext
то числу записей в таблице.

zaf писал(а):Что значят Util и Data1.Recordset.EOF

:shock: RTFM
MSDN писал(а):Syntax

Do [{While | Until} condition]
[statements]
[Exit Do]
[statements]
Loop

MSDN писал(а):EOF -- returns a value that indicates whether the current record position is after the last record in a Recordset object.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 121

    TopList