Из vba в vb6

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

Из vba в vb6

Сообщение Neithan » 01.06.2010 (Вт) 19:28

Установил vb6 и сразу же столкнулся с проблемой, например, код, написанный в vba для ComboBox1 не работает в vb6, хотя я его и модернизировал под тамашние названия, аля:

Код: Выделить всё
Private Sub Form1_Initialize()
    Combo1.AddItem "Первый фрейм"
    Combo1.AddItem "Второй фрейм"
    Combo1.ListIndex = 0
End Sub


в vba же это всё выглядело так:

Код: Выделить всё
Private Sub UserForm_Initialize()
    ComboBox1.AddItem "Первый фрейм"
    ComboBox1.AddItem "Второй фрейм"
    ComboBox1.ListIndex = 0
End Sub


В чем я не прав? Не вылетает никаких ошибок, просто в выпадающем списке нет моих выражений...Что это еще за тонкости такие? (((

П.С. прошу прощения за идиотские вопросы.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Из vba в vb6

Сообщение iGrok » 01.06.2010 (Вт) 19:41

По идее, всё правильно.
Лучше проект покажи.
label:
cli
jmp label

Neithan
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 30.05.2010 (Вс) 8:10

Re: Из vba в vb6

Сообщение Neithan » 01.06.2010 (Вт) 20:05

Кстати я в этом проекте попробовал Ваш код, который меняет значение запятых на точки, однако не вышло, по крайней мере числа с запятыми мой калькулятор суммирует не верно =/ Вас не в коем разе не обвиняю, это всё мои руки)
Последний раз редактировалось Neithan 01.06.2010 (Вт) 23:46, всего редактировалось 1 раз.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Из vba в vb6

Сообщение iGrok » 01.06.2010 (Вт) 20:30

А что, сюда на форум zip-архив трудно прикрепить?

А то так ты можешь долго ждать помощи...
http://www.rapidshare.ru/1505488 писал(а):Получить файл
Вы хотите скачать файл: test Calk.rar
объемом 0.00 мегабайт.
Файл был запрошен 1 раз(а).
Файл был скачан 0 раз(а).

Все слоты бесплатного скачивания заняты. Пожалуйста попробуйте еще раз через некоторое время.



Для снятия ограничений Вы можете приобрести VIP доступ.
label:
cli
jmp label

Neithan
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 30.05.2010 (Вс) 8:10

Re: Из vba в vb6

Сообщение Neithan » 01.06.2010 (Вт) 20:36

Извиняюсь, не знал про эту функцию))
П.С. скачал калькулятор Дениса из соседней темы, так там у него есть тоже комбобоксы, но у меня они все пустые, мб это локальная моя пролема с клиентом...
Последний раз редактировалось Neithan 01.06.2010 (Вт) 23:46, всего редактировалось 1 раз.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Из vba в vb6

Сообщение iGrok » 01.06.2010 (Вт) 20:43

Тьфу блин..
Ну конечно. У тебя эта твоя "Form1_Initialize" никогда не вызывается. Не надо совсем-то бездумно копировать код.
В окне кода наверху слева выбери Form, справа Initialize. Или Load. И вот туда уже пиши инициализацию - заполнение комбобоксов.
Ну или прямо в дизайнере выбери свой комбобокс, и в Properties заполни List для него..

В общем, если ты так и не прочитаешь хоть какую-то книжку по VB, это ничем хорошим не закончится...
label:
cli
jmp label

Neithan
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 30.05.2010 (Вс) 8:10

Re: Из vba в vb6

Сообщение Neithan » 01.06.2010 (Вт) 21:26

Блин и правда, протупил...ну это всё от недалекого незнания, учусь ( А книжка у меня есть, но я такой идиотский человек, что всегда должен обжечься, даже если прочел, прошу за это прощения, я понимаю, что Вы не обязаны мне помогать, тем более я так туплю...

Я вот щас в разделе Combo1 выставил действие Change и прописал туда код для фреймов:
Код: Выделить всё
Private Sub Combo1_Change()
Select Case Combo1.ListIndex
   
        Case 1
    Frame1.Visible = True
    Frame2.Visible = False

   
        Else case
    Frame1.Visible = False
    Frame2.Visible = True

 
   
        End Select
End Sub


Так вот он не пашет, не скрывает фреймы, это может как то в раздел фреймов пихать надо? Опять я не прав..

И насчет замены запятых точками, в какое действие это все таки прописать? Прямо в рассчет кнопки, то есть или как - то отдельно для всего листа можно это свойство установить?
Код: Выделить всё
a = Val( Replace$( text, ",", "." ) )


Попытался в закладки General - Declarations прописать
Код: Выделить всё
Dim a As Double
a = Val(Replace$(Text, ",", "."))
Dim b As Double
b = Val(Replace$(Text, ",", "."))


Ошибку выбивает(

Мне очень жаль, что заставляю Вас нервничать, но и отступить после всего не могу(
Последний раз редактировалось Neithan 01.06.2010 (Вт) 23:46, всего редактировалось 1 раз.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Из vba в vb6

Сообщение iGrok » 01.06.2010 (Вт) 22:29

Ну, во первых в General Declarations вообще нельзя писать код. Только объявления переменных, и ещё некоторые подобные вещи.

Любой код пишется в какой-либо процедуре/функции.

Собственно " Else case " - это опять неправильно. Вспоминай синтаксис конструкции "Select Case...".
А почему не срабатывает код с фреймами ты можешь выяснить, поставив перед (или после) нужной строкой что-то типа Debug.Print "test".
Если выполнение программы доходит до этого места, внизу (Immediate Window) ты увидишь строку "test".

З.Ы. Да, залезь в Tools - Options и поставь там галку Require Variable Declaration. Тогда среда будет ругаться на ошибки, связанные с неправильным указанием имён переменных и т.п.
label:
cli
jmp label

Neithan
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 30.05.2010 (Вс) 8:10

Re: Из vba в vb6

Сообщение Neithan » 01.06.2010 (Вт) 22:53

Я всё понял!!!))) Спасибо за ценные советы!!! Со словом тест особо помогло))) Изменил конструкцию:
Код: Выделить всё
Private Sub Combo1_Click()
  Select Case Combo1.ListIndex
   
        Case 0
    Frame1.Visible = True
    Frame2.Visible = False
   
        Case 1
    Frame1.Visible = False
    Frame2.Visible = True
   
   End Select
End Sub


Блин даже радостно стало)) Хотя до этого я тоже самое сделал с if then else, но этот код проще гораздо)) СпасибО!!!

Neithan
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 30.05.2010 (Вс) 8:10

Re: Из vba в vb6

Сообщение Neithan » 01.06.2010 (Вт) 22:58

Есть простой вопрос, когда запускаю прогу у меня между строками можно щелкать табом (Tab) текстбоксы, но почему-то теперь он табает снизу вверх, а не сверху вниз, хотя некоторое время назад всё ок было в чем косяк? =D

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Из vba в vb6

Сообщение iGrok » 01.06.2010 (Вт) 23:46

Смотри свойство TabIndex у контролов на форме.

З.Ы. По поводу "посмотреть что и когда выполняется", есть ещё возможность выполнять код пошагово (F8) и ставить Breakpoint - точку остановки.
Поизучай это.
label:
cli
jmp label

Neithan
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 30.05.2010 (Вс) 8:10

Re: Из vba в vb6

Сообщение Neithan » 01.06.2010 (Вт) 23:59

Всё отлично))) Всё пашет, как Вы и посоветовали))) Огромное Вам человеческо-измученное СПАСИБО!!!
Три вопроса лишь остались нерешенными для меня в этой программе:
1) Как же всё таки сделать возможным суммировать несколько чисел в одном TextBox
2) Равносилен ли код
Код: Выделить всё
a = Val(Replace$(Text1, ",", "."))

этому коду
Код: Выделить всё
a=Val(text1.text)

Касательно второго вопроса, я всё протестировал, вроде всё отлично и работает, считает и с запятыми и с точками равносильно, но не теряется ли при этом свойств? Т.к. я полностью заменил нижний код Вашим верхним))
3) Как же округлить переменную Val до сотых)))

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Из vba в vb6

Сообщение iGrok » 02.06.2010 (Ср) 0:27

1) Уже отвечал. Ищи мат. парсер. На этом форуме. В "кирпичах".
2) Не равносилен. Не должен он одинаково считать и с запятыми и с точками. Если тебе кажется, что считает - ты что-то упустил.
3) Round
label:
cli
jmp label


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

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

Сейчас этот форум просматривают: AhrefsBot, Google-бот, Mail.ru [бот] и гости: 21

    TopList  
cron