|
|
|
| MSA 2003. Речь идёт об открытии ADO рекордсета, в режиме отладки при пошаговом исполнении всё ОК, как только в обычном режиме обращаешься к этой процедуре, MSA выдаёт сообщение, что в БД обнаружена ошибка и закрывается, что за хрень? | |
|
| |
|
|
|
| Код покажите. И нельзя ли поточнее на какой строке вылетает. | |
|
| |
|
|
|
| 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 | |
|
| |
|
|
|
| а если тупо поставить
" AND " & " quИтоговыеСуммыПоМесяцам.Месяц = #3/1/2007#
|
Выполниться? | |
|
| |
|
|
|
| На самом деле, проблема, как выяснилось, вот здесь Forms![Главная]![полеИтоговаяСуммаSQL] = rst!Сумма, именно при присвоении свободному полю формы значения rst!Сумма. Хотя почему это не работает непонятно. | |
|
| |
|
|
|
| если rst возвращает NULL - будет ошибка. надо анализировать | |
|
| |
|
|
|
| Null здесь не бывает, а почему тогда в режиме отладки работает? | |
|
| |
|
|
|
| NULL бывает даже там, где бы Вы никогда не подумали...
поставьте перед присваиванием печать или вывод в MSGBOX | |
|
| |
|
|
|
| Видмо действительно rst возвращает NULL , виноват | |
|
| |
|
|
|
| ничего страшного - главное победить проблему
учтите в аксесе
1 + NULL = NULL
при суммировании надо анализировать все слагаемые
успехов | |
|
| |
|
|
|
| А еще рекордсет может быть пустым... | |
|
| |
|
|
|
| для начала попробуйте убрать из текста запроса условие
strSQL = "SELECT quИтоговыеСуммыПоМесяцам.Сумма FROM uИтоговыеСуммыПоМесяцам " | |
|
| |