Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: В режиме отладки процедура работает нормально, а в обычном режиме - нет
 
 автор: Axc   (26.03.2007 в 14:11)   личное сообщение
 
 

MSA 2003. Речь идёт об открытии ADO рекордсета, в режиме отладки при пошаговом исполнении всё ОК, как только в обычном режиме обращаешься к этой процедуре, MSA выдаёт сообщение, что в БД обнаружена ошибка и закрывается, что за хрень?

  Ответить  
 
 автор: osmor   (26.03.2007 в 14:19)   личное сообщение
 
 

Код покажите. И нельзя ли поточнее на какой строке вылетает.

  Ответить  
 
 автор: Axc   (26.03.2007 в 14:29)   личное сообщение
 
 

Public Sub RaschitatItogSummu()
Dim mes As String

mes = "#" & "3" & "/" & "1" & "/" & "2007" & "#" ' это для примера, значение mes будет меняться
On Error GoTo Err_RaschitatItogSummu

Dim cnCurrent As ADODB.Connection
Dim rst As ADODB.Recordset
Dim strSQL As String

Set cnCurrent = CurrentProject.Connection
Set rst = New ADODB.Recordset

strSQL = "SELECT quИтоговыеСуммыПоМесяцам.Сумма " & _
"FROM quИтоговыеСуммыПоМесяцам " & _
"WHERE " & " quИтоговыеСуммыПоМесяцам.КодДоговора " & " = " & Forms![Главная]![пфФирмы].Form![КодДоговора] & _
" AND " & " quИтоговыеСуммыПоМесяцам.Месяц " & " = " & mes

rst.Open strSQL, cnCurrent, adOpenDynamic, 'Вот здесь и вылетает
'Forms![Главная]![полеИтоговаяСуммаSQL] = rst!Сумма

rst.Close
cnCurrent.Close
Set rst = Nothing
Set cnCurrent = Nothing

Exit_RaschitatItogSummu:
Exit Sub

Err_RaschitatItogSummu:
MsgBox Err.Description
Resume Exit_RaschitatItogSummu

End Sub

  Ответить  
 
 автор: osmor   (26.03.2007 в 14:51)   личное сообщение
 
 

а если тупо поставить

" AND " & " quИтоговыеСуммыПоМесяцам.Месяц = #3/1/2007#


Выполниться?

  Ответить  
 
 автор: Axc   (26.03.2007 в 15:45)   личное сообщение
 
 

На самом деле, проблема, как выяснилось, вот здесь Forms![Главная]![полеИтоговаяСуммаSQL] = rst!Сумма, именно при присвоении свободному полю формы значения rst!Сумма. Хотя почему это не работает непонятно.

  Ответить  
 
 автор: ДрЮня   (26.03.2007 в 15:55)   личное сообщение
 
 

если rst возвращает NULL - будет ошибка. надо анализировать

  Ответить  
 
 автор: Axc   (26.03.2007 в 16:07)   личное сообщение
 
 

Null здесь не бывает, а почему тогда в режиме отладки работает?

  Ответить  
 
 автор: ДрЮня   (26.03.2007 в 16:52)   личное сообщение
 
 

NULL бывает даже там, где бы Вы никогда не подумали...

поставьте перед присваиванием печать или вывод в MSGBOX

  Ответить  
 
 автор: Axc   (26.03.2007 в 17:46)   личное сообщение
 
 

Видмо действительно rst возвращает NULL , виноват

  Ответить  
 
 автор: ДрЮня   (26.03.2007 в 17:55)   личное сообщение
 
 

ничего страшного - главное победить проблему
учтите в аксесе

1 + NULL = NULL

при суммировании надо анализировать все слагаемые
успехов

  Ответить  
 
 автор: osmor   (26.03.2007 в 17:03)   личное сообщение
 
 

А еще рекордсет может быть пустым...

  Ответить  
 
 автор: ДрЮня   (26.03.2007 в 14:58)   личное сообщение
 
 

для начала попробуйте убрать из текста запроса условие

strSQL = "SELECT quИтоговыеСуммыПоМесяцам.Сумма FROM uИтоговыеСуммыПоМесяцам "

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList