У меня есть файл Access ADP. Я обновил внутреннюю базу данных, чтобы она указывала на сервер SQL 2005 вместо сервера SQL 2000, и соответствующим образом изменил информацию о подключении к базе данных. Файл отлично работает в моей собственной системе, работающей под управлением Windows 7 (64-разрядная версия) и Access 2007. В целевых системах под управлением Windows XP и Access 2007 основная функциональность базы данных почти сразу же взрывается с сообщением «Ошибка выполнения» «13»: ошибка несоответствия типа.
Сначала я думал, что страдаю от той же проблемы, что описана в этом вопросе здесь, где определение соединения по умолчанию - DAO, но база данных использует объект ADO. Однако при просмотре кода каждый экземпляр соединения специально объявляется как «ADODB.Connection».
Рассматриваемый код, вызывающий ошибку, таков:
Public Sub Tools()
dim db as ADODB.Connection
dim sql as String
sql = "Select SSPatch from tblPlastech"
set db = CurrentProject.Connection ' THIS LINE CAUSES THE TYPE MISMATCH ERROR
dim rst as ADODB.RecordSet
set rst = New ADODB.RecordSet
rst.open sql, db, adOpenKeyset, adLockOptimistic
gsSSpath = rst!sspath
QUOTES = Chr(34)
rst.Close
set rst = Nothing
db.Close
set db = Nothing
End Sub
Может ли кто-нибудь пролить свет на эту проблему? Прямо сейчас я в тупике.
rst.open sql, db, adopenkeyset, adlockoptimistic
наrst.open sql, currentproject.connection, adopenkeyset,adlockoptimistic
? Это вызывает ту же ошибку? - person Tim Lentine   schedule 31.05.2011