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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Error 6 MS Access 2002
 
 автор: RainmanAndr   (02.08.2007 в 15:19)   личное сообщение
 
 

Доброе время суток! Подскажите что это за ошибка? Если нужно больше информации то я расскажу более подробнее.

  Ответить  
 
 автор: osmor   (02.08.2007 в 15:22)   личное сообщение
 
 

нужно.

  Ответить  
 
 автор: RainmanAndr   (02.08.2007 в 15:41)   личное сообщение
 
 

Есть два файла. Интерфейс и база. При старте первая форма пролинковывает таблицы, закрывается и открывает форму приветствия. В форме приветствия проверяется контрольное значение (номер и ключ) и если они не совпадают то после 20 запуска автоматом открывается форма регистрации где указан рег. номер и нужно указать регистрационный ключ. Дело в том что у большинства ошибки 6 не выдает (у меня в том числе), но некоторые жалуются что сразу же при первом запуске просится регистрация и выдает эту ошибку. Если нужно то могу выслать коды к этим трем формам.

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

а какого нибуть описания к этой ошибке нет? кроме ее номера?
Высылайте...

  Ответить  
 
 автор: Анатолий (Киев)   (02.08.2007 в 20:39)   личное сообщение
 
 

?Error(6)
Overflow

Переполнение. Это может быть, например, кода числовой переменной присваивается значение больше, чем она может проглотить. Иногда это происходит неявно, например:
lng = int1 * int2 может вызвать такую ошибку, т.к. под промежуточный результат вычислений VBA выделяет Integer, если в выражении не принимают участие переменные покруче.
Лечение:
lng = CLng(int1) * int2
или
lng = int1 * int2 * 1.0

Покажите кусок кода, где это происходит.

  Ответить  
 
 автор: RainmanAndr   (02.08.2007 в 22:05)   личное сообщение
 
 

Dim rst As ADODB.Recordset
Dim sId As String
Dim iCounter As Integer
Set rst = New ADODB.Recordset
rst.Open "tblStart", CurrentProject.Connection, adOpenStatic, adLockOptimistic
sId = rst.Fields("Keyz")
iCounter = rst.Fields("Raz")
Me.txttimecounter = iCounter + 1
If iCounter > 19 Then
If sId <> Otzyv(Parol) Then
MsgBox sRegisterProgRazEnd, vbCritical, UCase(sRegister)
DoCmd.Close acForm, "CopyRight"
DoCmd.OpenForm "Register"
End If
Else
DoCmd.Close acForm, "CopyRight"
End If

rst.Close
Set rst = Nothing

или

On Error GoTo FUNCTION_Err




Dim rst As ADODB.Recordset
Dim sId As String
Dim iCounter As String
Set rst = New ADODB.Recordset
rst.Open "tblStart", CurrentProject.Connection, adOpenStatic, adLockOptimistic
sId = rst.Fields("Keyz")
iCounter = rst.Fields("Raz")
iCounter = 20 - iCounter
If iCounter < 0 Then iCounter = 0
If sId <> Otzyv(Parol) Then
Me.Caption = sUnRegisterProg + " " + LCase(sRemains) + " " + iCounter + " " + sRegisterProgRaz
Else
Me.Caption = sRegisterProg
End If
rst.Close
Set rst = Nothing

Me.lblProgramm.Caption = sName & " " & sVersion

FUNCTION_Exit:
Exit Sub
FUNCTION_Err:
MsgBox Err.Number & sErrorNumber, vbInformation, UCase(sInfoTitle)
Resume FUNCTION_Exit

Числа в принципе используются только тут. Подробностей кроме кода ошибки не знаю, так как эту ошибку у многих пользователей не выдает. А у кого она выскакивает то пользователи получают сообщение с кодом ошибки и просьбой соообщить об этом автору.

  Ответить  
 
 автор: ДрЮня   (03.08.2007 в 00:31)   личное сообщение
 
 

при работе с рекордсетами корректнее делать присваивание с проверкой. Для аксеса примерно так
sId = IIF(Nz(rst("Keyz"))="", "-",rst("Keyz"))
iCounter = IIF(Nz(rst("Raz"))="",0,rst("Raz"))

  Ответить  
 
 автор: Анатолий (Киев)   (03.08.2007 в 10:19)   личное сообщение
 
 

Во 2-й процедуре:
Dim iCounter As String
...
iCounter = rst.Fields("Raz")
iCounter = 20 - iCounter
If iCounter < 0 Then iCounter = 0

Если у вас так, как в примере, то iCounter - строка, а участвует в вычислениях и сравнении с числом.
Если не это, и вы не можете лично проверить ситуацию у клиента, то добавьте в код сообщения на каждый шаг и договоритесь с кем-то из них чтоб проверили и сообщили, после какого шага ошибка. Тогда будем копать дальше.

  Ответить  
 
 автор: RainmanAndr   (03.08.2007 в 15:36)   личное сообщение
 
 

Спасибо за помощь. Буду пробовать.

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