Как перемещать запись вверх или вниз?

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

Как перемещать запись вверх или вниз?

Сообщение гудвин » 22.06.2004 (Вт) 8:21

Есть форма. На ней есть поле ( аб|). Там ( в поле) расположены записи (имена контрагентов). Например:

Вася
Петя
Маша
......
Коля

Эти имена хранятся в таблице (столбцы-поля num - нумерация от 1, kontragent - имя и nrec (берется по запросу, но это наверно не важно...). Дак вопрос - как перемещать эти записи вверх с помощью кнопки, расположенной рядом с полем (просто кнопочка со стрелкой вверх). Какую процедуру написАть? Как? В смысле, выделил запись в поле, нажал на кнопочку, запись переместилась на один уровень вверх - маша стала выше пети, но ниже васи. Че делать та?

ЗЫ: привет Челябе
Заранее спасибо

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.06.2004 (Вт) 9:30

Гы...
Ты делаешь запрос, а многострочный результат выводишь в текстбокс? Оригинально! :)
Может, лучше grid? Или listbox хотя бы?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

гудвин
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 22.06.2004 (Вт) 8:05

Сообщение гудвин » 22.06.2004 (Вт) 9:40

...ББлллиннн....
Это и есть список, млин. Чего я написал, что это просто поле??!!! Науке это неизвестно....
В общем, поправка - слово "поле" меняется на слово "список".
Дык че делать та??
Заранее спасибо

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.06.2004 (Вт) 9:44

Дык эта...
Сначала remove, а потом add "text", newpos
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

гудвин
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 22.06.2004 (Вт) 8:05

Сообщение гудвин » 22.06.2004 (Вт) 9:51

а можна пападробней? Я ж новичкоф, чайник и т.д. :shock: Чего ремув, куда newpos?? C Примером бы....
Заранее спасибо

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.06.2004 (Вт) 10:01

dim s as string

s=listbox1.list(5)
listbox1.removeitem 5
listbox1.additem s, 6
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

гудвин
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 22.06.2004 (Вт) 8:05

Сообщение гудвин » 22.06.2004 (Вт) 11:30

М-м-м-м.....а в VBA??
Заранее спасибо

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.06.2004 (Вт) 11:32

Мммм... а разница?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

гудвин
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 22.06.2004 (Вт) 8:05

Сообщение гудвин » 22.06.2004 (Вт) 11:45

Почти никакой. Тока ни removeitem, ни additem нету после точки в VBA. Не выскакивают они для Listbox1. Тока не надо думать што я не подставил свое имя списка заместо "listbox1". Т.е.

ListKontrItog.removeitem 5

не получается.
Заранее спасибо

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.06.2004 (Вт) 14:45

Странный листбокс какой-то...
Как же записи в него добавлять-то?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 22.06.2004 (Вт) 16:22

Странно, у меня все есть... :|

Как бы то ни было,
Код: Выделить всё
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const LB_ADDSTRING As Long = &H180
Private Const LB_DELETESTRING As Long = &H182
Private Const LB_INSERTSTRING As Long = &H181

Sub ListAddItem(Str$)
SendMessage ListBox1.hwnd, LB_ADDSTRING, 0&, ByVal Str
End Sub

Sub ListInsertItem(Str$, Index&)
SendMessage ListBox1.hwnd, LB_INSERTSTRING, Index, ByVal Str
End Sub

Sub ListDeleteItem(Index&)
SendMessage ListBox1.hwnd, LB_DELETESTRING, Index, 0&
End Sub

гудвин
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 22.06.2004 (Вт) 8:05

Сообщение гудвин » 23.06.2004 (Ср) 6:05

AAZ, ты даешь!!! Ты бы мне ещё предложил отдельную прогу создать для простого перемещения выделенного имени в списке. Проще то ничего нет??? Яж вопрос подробно задал. Может ченить с номерами сделать?? Поле Num я имею ввиду.....

И вообще, таблица выглядит так:

num nrec kontragent

1 4546 Петя
2 4587 Вася
3 8852 Маша
...
99 2178 Коля

Дак мене нада Колю переместить вверх например на восемь позиций, а машу вниз на пять позиций. Чего говорю делать та????
Заранее спасибо

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 23.06.2004 (Ср) 6:15

А листбокс ли это? :?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

гудвин
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 22.06.2004 (Вт) 8:05

Сообщение гудвин » 23.06.2004 (Ср) 6:41

Это он. Список, листбокс, listbox. Я говорил, что таблица быглядит так, а не листбокс. В листбоксе тока контрагенты видны. А я описал в последнем сообщении источник строк.
Заранее спасибо

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 23.06.2004 (Ср) 10:41

Меняй тогда поле Num запросом SQL для своей Маши и рефрешь заново список :)

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 23.06.2004 (Ср) 18:27

гудвин писал(а):AAZ, ты даешь!!! Ты бы мне ещё предложил отдельную прогу создать для простого перемещения выделенного имени в списке.
Ты знаешь, бывает гораздо хуже...
Иногда на ТАКИХ МЕЛОЧАХ приходиться надолго останавливаться, просто диву даешься! :!:


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

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

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

    TopList  
cron