Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/run time error 3709 - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » run time error 3709 (Макросы/Sub)
run time error 3709
PYCTAM Дата: Вторник, 01.07.2014, 09:46 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 60% ±

Excel 2010
Запускаю форму partnet_f и выбираю из strana_combo (илова кардан (добавить)) появляется другая форма и закрывается нынешняя и добавляю то что хочу добавить... все вроде бы не чего, НО вторая форму не получается закрыть, и когда опят хочу добавить программа ругает... После того я останавливаю программу и когда запускаю заново выдается ошибка run time error 3709 невозможно использование подключения для выполнения операции...
К сообщению приложен файл: tst.rar (55.5 Kb)


Сообщение отредактировал PYCTAM - Вторник, 01.07.2014, 09:50
 
Ответить
СообщениеЗапускаю форму partnet_f и выбираю из strana_combo (илова кардан (добавить)) появляется другая форма и закрывается нынешняя и добавляю то что хочу добавить... все вроде бы не чего, НО вторая форму не получается закрыть, и когда опят хочу добавить программа ругает... После того я останавливаю программу и когда запускаю заново выдается ошибка run time error 3709 невозможно использование подключения для выполнения операции...

Автор - PYCTAM
Дата добавления - 01.07.2014 в 09:46
doober Дата: Вторник, 01.07.2014, 10:48 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Создавайте подключение по мере необходимости,зачем держать его открытым.
Аналогично подправте код на открытие книги

[vba]
Код
Private Sub UserForm_Initialize()
     Dim sql As String
     If flag_strana = True Then Unload strana_f
     flag2 = False
     flag = True
     flag_strana = False
     calendar.Show
     data.Caption = sana
     Set rs = New ADODB.Recordset
         Set cn = New ADODB.Connection
     cn.Open ConnectionString:="Provider=Microsoft.ACE.OLEDB.12.0;" & _
     "Data Source=" & ThisWorkbook.Path & "/tst.accdb" & ";"
     If cn.State <> 1 Then Exit Sub
     sql = "select distinct faculta from omuzgoron order by faculta"
     rs.Open sql, cn, adOpenStatic, adLockBatchOptimistic
     For i = 1 To rs.RecordCount
         strana_сombo.AddItem rs.Fields(0).Value
         rs.MoveNext
     Next i
     strana_сombo.AddItem "(Илова кардан)"
     rs.Close
     cn.Close
      Set cn = Nothing
End Sub
[/vba]


 
Ответить
СообщениеСоздавайте подключение по мере необходимости,зачем держать его открытым.
Аналогично подправте код на открытие книги

[vba]
Код
Private Sub UserForm_Initialize()
     Dim sql As String
     If flag_strana = True Then Unload strana_f
     flag2 = False
     flag = True
     flag_strana = False
     calendar.Show
     data.Caption = sana
     Set rs = New ADODB.Recordset
         Set cn = New ADODB.Connection
     cn.Open ConnectionString:="Provider=Microsoft.ACE.OLEDB.12.0;" & _
     "Data Source=" & ThisWorkbook.Path & "/tst.accdb" & ";"
     If cn.State <> 1 Then Exit Sub
     sql = "select distinct faculta from omuzgoron order by faculta"
     rs.Open sql, cn, adOpenStatic, adLockBatchOptimistic
     For i = 1 To rs.RecordCount
         strana_сombo.AddItem rs.Fields(0).Value
         rs.MoveNext
     Next i
     strana_сombo.AddItem "(Илова кардан)"
     rs.Close
     cn.Close
      Set cn = Nothing
End Sub
[/vba]

Автор - doober
Дата добавления - 01.07.2014 в 10:48
PYCTAM Дата: Вторник, 01.07.2014, 17:50 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 60% ±

Excel 2010
doober, огромное спасибо... проблема с 3709 решена...а вот проблема с не закрывающей формой никак не получается решить...
проста откройте пожалуйста форму strana_f запустив форму partner_f и выбрав из списка strana_combo (илова кардан т.е. добавить) и нажмите кнопку выход... форма strana_fне закрывается и когда опят хочу добавить программа ругает...
К сообщению приложен файл: 1237031.rar (64.2 Kb)
 
Ответить
Сообщениеdoober, огромное спасибо... проблема с 3709 решена...а вот проблема с не закрывающей формой никак не получается решить...
проста откройте пожалуйста форму strana_f запустив форму partner_f и выбрав из списка strana_combo (илова кардан т.е. добавить) и нажмите кнопку выход... форма strana_fне закрывается и когда опят хочу добавить программа ругает...

Автор - PYCTAM
Дата добавления - 01.07.2014 в 17:50
doober Дата: Вторник, 01.07.2014, 22:25 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Измените код в форму strana_f

[vba]
Код
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    
End Sub
Private Sub vixod_Click()
    Me.Hide
      If flag_strana = True Then
         partner_f.Show
     End If
End Sub
[/vba]

Здесь ругается правильно,у вас в базе нет таблицы strana
[vba]
Код
     sql = "select strana  from strana"
     rs.Open sql, cn, adOpenDynamic, adLockBatchOptimistic
[/vba]


 
Ответить
СообщениеИзмените код в форму strana_f

[vba]
Код
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    
End Sub
Private Sub vixod_Click()
    Me.Hide
      If flag_strana = True Then
         partner_f.Show
     End If
End Sub
[/vba]

Здесь ругается правильно,у вас в базе нет таблицы strana
[vba]
Код
     sql = "select strana  from strana"
     rs.Open sql, cn, adOpenDynamic, adLockBatchOptimistic
[/vba]

Автор - doober
Дата добавления - 01.07.2014 в 22:25
PYCTAM Дата: Среда, 02.07.2014, 13:10 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 60% ±

Excel 2010
doober, ещё раз огромное-огромное спасибо.
тут другая проблема у меня нарисовалась, незнаю именно когда, но переодический появляется это злощасная ошибка... закрываю книгу и открываю заново проблема исчезает...
К сообщению приложен файл: 8897252.png (22.8 Kb)
 
Ответить
Сообщениеdoober, ещё раз огромное-огромное спасибо.
тут другая проблема у меня нарисовалась, незнаю именно когда, но переодический появляется это злощасная ошибка... закрываю книгу и открываю заново проблема исчезает...

Автор - PYCTAM
Дата добавления - 02.07.2014 в 13:10
doober Дата: Среда, 02.07.2014, 13:45 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Ответ в моем первом посте.
У вас обнуляется публичная переменная строки подключения
Уберите с публичных переменных подключение и рекордсет.
Создавайте их в процедуре и закрывайте


 
Ответить
СообщениеОтвет в моем первом посте.
У вас обнуляется публичная переменная строки подключения
Уберите с публичных переменных подключение и рекордсет.
Создавайте их в процедуре и закрывайте

Автор - doober
Дата добавления - 02.07.2014 в 13:45
PYCTAM Дата: Четверг, 03.07.2014, 21:17 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 60% ±

Excel 2010
doober, очень Вам благодарен за все...
тут ещё одна не понятно для меня ситуация получилась...
хочу ограничить ввод символов на текстовое поле мейл, чтобы кроме латиницы, цифр, @, ".", _ и - не чего не вводилась....
[vba]
Код
    If (KeyAscii < 65 Or KeyAscii > 91) And (KeyAscii < 97 Or KeyAscii > 122) And (KeyAscii < 48 Or KeyAscii > 58) And KeyAscii <> 64 And KeyAscii <> 46 And KeyCode <> 45 And KeyAscii <> 95 Then KeyAscii = 0
[/vba]
Все нормально работает кроме символа -... Почему???
 
Ответить
Сообщениеdoober, очень Вам благодарен за все...
тут ещё одна не понятно для меня ситуация получилась...
хочу ограничить ввод символов на текстовое поле мейл, чтобы кроме латиницы, цифр, @, ".", _ и - не чего не вводилась....
[vba]
Код
    If (KeyAscii < 65 Or KeyAscii > 91) And (KeyAscii < 97 Or KeyAscii > 122) And (KeyAscii < 48 Or KeyAscii > 58) And KeyAscii <> 64 And KeyAscii <> 46 And KeyCode <> 45 And KeyAscii <> 95 Then KeyAscii = 0
[/vba]
Все нормально работает кроме символа -... Почему???

Автор - PYCTAM
Дата добавления - 03.07.2014 в 21:17
_Boroda_ Дата: Четверг, 03.07.2014, 21:40 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А зачем Вы черточку (45-й символ) в KeyCode вместо KeyAscii засунули?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА зачем Вы черточку (45-й символ) в KeyCode вместо KeyAscii засунули?

Автор - _Boroda_
Дата добавления - 03.07.2014 в 21:40
RAN Дата: Четверг, 03.07.2014, 22:05 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Так понагляднее
[vba]
Код
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     Select Case KeyAscii
     Case 45, 46, 48 To 57, 64 To 90, 95, 97 To 122
     Case Else
         KeyAscii = 0
     End Select
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеТак понагляднее
[vba]
Код
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     Select Case KeyAscii
     Case 45, 46, 48 To 57, 64 To 90, 95, 97 To 122
     Case Else
         KeyAscii = 0
     End Select
End Sub
[/vba]

Автор - RAN
Дата добавления - 03.07.2014 в 22:05
Мир MS Excel » Вопросы и решения » Вопросы по VBA » run time error 3709 (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!