Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Меню и формы Добавлено: 21.12.08 21:31  

Автор вопроса:  Aston | ICQ: 214-179-991 
Привет всем!
У меня тут возникла проблема. У меня есть материнская форма и 3 дочерние окна. На материнской форме есть меню. И почему то щёлкнув на одно меню открывается одна фома - как я прописал( это нормально) А щёлкнув на другое меню ( в котором прописано frmREdakt.Shom вылазиет сразу 3 формы не подскажите с чем это может быть связано. В процедуре лоад загрузка других форм не прописана.

Ответить

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

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



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #1
Добавлено: 21.12.08 21:45
Код покажи.

Ответить

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



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #2 Добавлено: 21.12.08 23:32
Вот код:
  1. Private Sub mCreate_Click()
  2. frmSozd.Show
  3. End Sub
  4.  
  5. Private Sub mRedakt_Click()
  6. frmRedaktir.Show
  7. End Sub


я чуть поменял и теперь у меня в 1 случае 2 формы грузится, а во втором 3. И просто не могу понять почему.
Тут же сразу вопрос. Могут ли функции объявленные в модуле (их используют все три формы) как то на это влиять?

Ответить

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



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #3
Добавлено: 22.12.08 00:11
Если ты в какой-то функции упомянул форму (или ссылку на форму, не важно) и такой код выполнился, то форма будет загружена.

Ответить

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



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #4 Добавлено: 22.12.08 00:55
Ни в одной функции нет кода на загрузку формы. Все функции связаны с работой БД.
  1. Public m_db As ADODB.Connection
  2. Public rs As ADODB.Recordset
  3.  
  4. Public Function DBConnect(ByVal szDataBase As String) As Boolean
  5.     On Error GoTo err_h
  6.  
  7.      Set m_db = New ADODB.Connection
  8.      m_db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & szDataBase & ";Persist Security Info=False"
  9.      Call m_db.Open
  10.      DBConnect = True
  11.  Exit Function
  12. err_h:
  13.      DBConnect = False
  14.      Set m_db = Nothing
  15.  End Function
  16.  
  17.  Public Function DBrecordset(ByVal szSQL As String) As Boolean
  18.     On Error GoTo errr
  19.     Set rs = New ADODB.Recordset
  20.      rs.CursorType = adOpenKeyset
  21.      rs.LockType = adLockOptimistic
  22.      rs.Source = szSQL
  23.      rs.ActiveConnection = m_db
  24.      rs.Open
  25.      DBrecordset = True
  26.      Exit Function
  27. errr:
  28.     DBrecordset = False
  29.     Set rs = Nothing
  30.  End Function
  31.  
  32. Public Function Exxit()
  33. Call rs.Close
  34. Set rs = Nothing
  35. Call m_db.Close
  36. Set m_db = Nothing
  37. frmSozd2.Show
  38. End Function


ну в некоторых случаях я набору записей обращаюсь отдельно в форме после подключения тое
rs.Close
rs.Sourse
и тому подобное, примерно так я обращался в каждой форме. Вот тут то я и не пойму это как то влияет на их загрузку?
Потому что когда я нажимаю на вкладку появляется 2 формы в 1 случае и 3 во втором, Но активны те формы что надо. но почему другие подгружаются я так и не понял. По логике не должна.
Что самое интересное раньше было 2 дочерних формы и эти функции были объявлены в коде каждой формы. ВСё работало нормально, но как только я начал создавать 3 форму и использовал те же функции то и заметил что первые 2 работают нормально, а когда запускаешь 3 вылазит сразу 3 формы. После этого я решил перекинуть всё эти функции в модуль и после этого и первые 2 начали появлятся не так как надо.

Ответить

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



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #5
Добавлено: 22.12.08 02:40
так всё равно не понятно. Нужен код подробнее имхо.

Ответить

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



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #6 Добавлено: 22.12.08 11:21
Д куда подробнее. Есть МДА форма у которой есть 3 дочерних формы. Эти дочерние формы открываются с помощью меню. вот код.


Код как видно не сложный.
Проблема состоит в том, что при клики на меню открывается не 1 форма а несколько с а ктивной той формой которая должна была просто открыться.
Я думаю что на это влияет АДО подключение, функции которого я прописал в модуле, вот код:
  1.    1. Public m_db As ADODB.Connection
  2.    2. Public rs As ADODB.Recordset
  3.    3.  
  4.    4. Public Function DBConnect(ByVal szDataBase As String) As Boolean
  5.    5.     On Error GoTo err_h
  6.    6.  
  7.    7.      Set m_db = New ADODB.Connection
  8.    8.      m_db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & szDataBase & ";Persist Security Info=False"
  9.    9.      Call m_db.Open
  10.   10.      DBConnect = True
  11.   11.  Exit Function
  12.   12. err_h:
  13.   13.      DBConnect = False
  14.   14.      Set m_db = Nothing
  15.   15.  End Function
  16.   16.  
  17.   17.  Public Function DBrecordset(ByVal szSQL As String) As Boolean
  18.   18.     On Error GoTo errr
  19.   19.     Set rs = New ADODB.Recordset
  20.   20.      rs.CursorType = adOpenKeyset
  21.   21.      rs.LockType = adLockOptimistic
  22.   22.      rs.Source = szSQL
  23.   23.      rs.ActiveConnection = m_db
  24.   24.      rs.Open
  25.   25.      DBrecordset = True
  26.   26.      Exit Function
  27.   27. errr:
  28.   28.     DBrecordset = False
  29.   29.     Set rs = Nothing
  30.   30.  End Function
  31.   31.  
  32.   32. Public Function Exxit()
  33.   33. Call rs.Close
  34.   34. Set rs = Nothing
  35.   35. Call m_db.Close
  36.   36. Set m_db = Nothing
  37.   37. frmSozd2.Show
  38.   38. End Function
  39.   39.
  40.  


В модуле больше ничего нет, и уж точно я не прописывал больше нигде загрузку форм. Моё мнение что как то АДО влияет, буду вечером пробовать. Потому что раньше работал с МДА формами и всё было нормально а тут такой казус.

Ответить

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



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #7 Добавлено: 22.12.08 11:22
там де первый код чё то не прописался
  1. # Private Sub mCreate_Click()
  2. # frmSozd.Show
  3. # End Sub
  4. #  
  5. # Private Sub mRedakt_Click()
  6. # frmRedaktir.Show
  7. # End Sub

Ответить

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



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #8 Добавлено: 22.12.08 16:52
Ребята всё нашёл ошибку. Функция работает во всех формах и при загрузке тоже используется.
  1. Public Function Exxit()
  2. Call rs.Close
  3. Set rs = Nothing
  4. Call m_db.Close
  5. Set m_db = Nothing
  6. frmSozd2.show (ОШИБКА мая(: )
  7. End Function

Ответить

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



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #9
Добавлено: 23.12.08 01:27
ну вот. Само по себе бы оно так не глючило)

Ответить

Страница: 1 |

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



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