Помогите с Public переменными

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

Помогите с Public переменными

Сообщение vrodo » 09.10.2003 (Чт) 19:19

Доброе время суток всезнающий ALL

У меня возникла проблема с Public переменными
как сделать так чтобы переменная с именем korder была доступна во всем проэкте без дополнительных переназначений? проблем :oops:
В акцесе обходился без этого, но база разрослась с 1 отдела(10 чел) на весь офис (почти 100) и акцесс не выдерживает :cry:
переписываю все на VB + SQL2000
Скорость ахренительная :lol: но возникли проблемы с мозгами программера :wink:
Чтобы понять свои ошибки их достаточно написать (c)
Интернет большой, ему видней
С наилучшими Пожеланиями и Всех Благ :D

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 09.10.2003 (Чт) 19:32

Не совсем въехал.... :roll:
На всякий случай, в модуле пишешь Public kodesr As Variant(Integer, Single)

Но видимо тебе другое нужно...
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

vrodo
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 109
Зарегистрирован: 09.10.2003 (Чт) 18:45
Откуда: Дубна МО, Москва

Сообщение vrodo » 09.10.2003 (Чт) 19:42

да пишу в модуле
Код: Выделить всё
Public korder as long


затем из другого модуля присваиваю ей значение

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


далее
из 3 модуля пишу
Код: Выделить всё
rst.filter = "k_order =" & korder


вот собстно чево надобно
Чтобы понять свои ошибки их достаточно написать (c)
Интернет большой, ему видней
С наилучшими Пожеланиями и Всех Благ :D

Urvin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 518
Зарегистрирован: 04.06.2003 (Ср) 10:47
Откуда: с Марса

Сообщение Urvin » 10.10.2003 (Пт) 17:31

Еще можно попробовать:
Код: Выделить всё
a  = "k_order" + ИМяМодуляОбъявления.korder

Или я чего-то не понял
Не так страшен русский танк, как его пьяный экипаж

Yurich
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 675
Зарегистрирован: 05.03.2003 (Ср) 3:43
Откуда: DONBASS/Gorlovka

Сообщение Yurich » 10.10.2003 (Пт) 17:33

vrodo писал(а):да пишу в модуле
Код: Выделить всё
Public korder as long


затем из другого модуля присваиваю ей значение

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


далее
из 3 модуля пишу
Код: Выделить всё
rst.filter = "k_order =" & korder


вот собстно чево надобно


Попробуй rst.filter = "k_order =" & str(korder)

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 30.09.2007 (Вс) 18:29

Код: Выделить всё
На каждой отдельной форме все работает:

Private Sub S_click()
With MMControl1
    .FileName = App.Path & "\" & "Sound\Click.wav"
    .Command = "Open"
    .Command = "Sound"
    .Command = "Close"
End With
End Sub

Private Sub Command1_Click()
Call S_click()
Form3.Hide
Form4.Show
End Sub


Можно ли и КАК сделать, чтобы
Call S_click()
работал для всех форм?

Типа:
Код: Выделить всё
Public Sub S_click()
With MMControl1
    .FileName = App.Path & "\" & "Sound\Click.wav"
    .Command = "Open"
    .Command = "Sound"
    .Command = "Close"
End With
End Sub


Заранее признателен!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.09.2007 (Вс) 18:36

Да, можно. Пусть MMControl1 принимает своим параметром.
Изображение

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 30.09.2007 (Вс) 18:57

tyomitch
Спасибо за быстрый ответ!
Я не против, "пусть MMControl1 принимает своим параметром"...
К сожалению, я не знаю, как это ему объяснить((((

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.09.2007 (Вс) 19:23

Код: Выделить всё
Public Sub S_click(ByVal MMControl1 As MMControl)
Изображение

netdemon
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 179
Зарегистрирован: 04.09.2007 (Вт) 15:51

Сообщение netdemon » 30.09.2007 (Вс) 19:30

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

rst.filter="k_order =" & CStr(korder)

Потомучто "k_order" - string, а korder - Long

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

public function PSound()

PlaySound App.Path & "\" & "Sound\Click.wav", ByVal 0&, SND_FILENAME Or SND_ASYNC

End function





А это в модуль



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

Public Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

Public Const SND_ASYNC = &H1
Public Const SND_FILENAME = &H20000

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.09.2007 (Вс) 19:39

netdemon
Аватару смени :!:
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.09.2007 (Вс) 20:10

netdemon писал(а):
Код: Выделить всё

rst.filter="k_order =" & CStr(korder)

Потомучто "k_order" - string, а korder - Long

Амперсенду без разницы. CStr ни к чему.
Изображение

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 30.09.2007 (Вс) 20:19

tyomitch
Большое спасибо, буду пробовать.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 30.09.2007 (Вс) 20:29

tyomitch
Попробовал, но, вероятно, я чего-то не допонимаю.
Код: Выделить всё
Public Sub S_click(ByVal MMControl1 As MMControl)
With MMControl1
    .FileName = App.Path & "\" & "Sound\Click.wav"
    .Command = "Open"
    .Command = "Sound"
    .Command = "Close"
End With
End Sub

Private Sub Command1_Click()
Call S_click
Unload Me
End
End Sub


Результат: Call S_click - "Argement not optional"

Прошу извинить гуманитария за слабые знания VB....

netdemon
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 179
Зарегистрирован: 04.09.2007 (Вт) 15:51

Сообщение netdemon » 30.09.2007 (Вс) 22:52

Summer.05 писал(а):tyomitch
Попробовал, но, вероятно, я чего-то не допонимаю.
Код: Выделить всё
Public Sub S_click(ByVal MMControl1 As MMControl)
With MMControl1
    .FileName = App.Path & "" & "Sound\Click.wav"
    .Command = "Open"
    .Command = "Sound"
    .Command = "Close"
End With
End Sub

Private Sub Command1_Click()
Call S_click
Unload Me
End
End Sub


Результат: Call S_click - "Argement not optional"

Прошу извинить гуманитария за слабые знания VB....



Пробуй PlaySound я выше писал как. Работает быстрее и ресурсов меньше жрёт.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 30.09.2007 (Вс) 23:44

netdemon
Спасибо, буду пробовать!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 01.10.2007 (Пн) 0:04

Summer.05 писал(а):Результат: Call S_click - "Argement not optional"

Ну вот так, глядишь, и параметры научишься передавать...

Код: Выделить всё
Call S_click(MMControl1)
Изображение

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 01.10.2007 (Пн) 7:14

tyomitch
Спасибо тебе большое!
Однако, из другой формы (Form2)
Код: Выделить всё
Private Sub Command1_Click()
Call S_click(MMControl1)
Unload Me
End
End Sub

отвечает:
Sub or Function not defined
Я чувствую, что тут не должно быть сложностей, но, вероятно, заблудился.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 01.10.2007 (Пн) 7:17

Sub or Function not defined

Что, совсем-совсем тебе это ни о чём не говорит?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 01.10.2007 (Пн) 7:35

Хакер
Ты уж прости, но, конечно, говорит. Говорит о том, что надо определить и прописать. Но не больше. Я же совсем не программист...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 01.10.2007 (Пн) 7:56

Ты уж прости, но, конечно, говорит.

Ну даёшь :) "Ты уж прости, но совсем ничего не говорит" - я бы понял. А так, я в принципе не совсем понимаю, за что должен прощать?

Говорит о том, что надо определить и прописать.

Ну так действуй.

Я же совсем не программист...

Это полностью зависит от того, кого считать программистом, а кого не считать. У всех свои мерки для этого понятия.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 01.10.2007 (Пн) 9:43

Summer.05, где у тебя написана Public Sub S_Click?
Изображение

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 01.10.2007 (Пн) 19:08

Хакер
Согласен со всем. Просто я гуманитарий и никогда не имел дела с программированием. На старости лет попробовал. Раньше мне Public был без надобности. а теперь вот потребовался. А прощение просил за мою безграмотность, которая в среде профессионалов не приветствуется.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 01.10.2007 (Пн) 19:09

tyomitch писал(а):Summer.05, где у тебя написана Public Sub S_Click?


Как я понимал, я ее и поставил в начальную форму, чтобы она была видна во всех остальных.

Проблема в том, что все работает в пределах одной формы. Вызов из другой формы типа
Код: Выделить всё
Call S_click(MMControl1)

со мной не соглашается ....

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 01.10.2007 (Пн) 22:06

Summer.05 писал(а):
tyomitch писал(а):Summer.05, где у тебя написана Public Sub S_Click?


Как я понимал, я ее и поставил в начальную форму, чтобы она была видна во всех остальных.

А нужно было в отдельный модуль. Только тогда она будет видна во всех формах.
Изображение

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 02.10.2007 (Вт) 7:35

tyomitch
Низкий поклон и большое спасибо! Все работает, как и должно! Очень признателен!


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

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

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

    TopList