Доброго день всемVBA несоответствие типов в доступе
Я attmepting реализовать аудит за небольшую базу данных здесь на работе, и я одолжил свой код с сайта Martin Зеленого Fontstuff Martin Green's Audit trail
поэтому у меня есть модуль кода, который constist из
Sub AuditChanges(IDField As String)
On Error GoTo AuditChanges_Err
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim ctl As Control
Dim datTimeCheck As Date
Dim strUserID As String
Dim strReason As String
Dim strName As String
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open "SELECT * FROM tblAuditTrail", cnn, adOpenDynamic, adLockOptimistic
datTimeCheck = Now()
strUserID = Environ("USERNAME")
strReason = InputBox("Enter Reason", "Reason")
'strName = InputBox("Enter Name", "Name")
For Each ctl In Screen.ActiveForm.Controls
If ctl.Tag = "Audit" Then
If Nz(ctl.Value) <> Nz(ctl.OldValue) Then
With rst
.AddNew
![DateTime] = datTimeCheck
![UserName] = strUserID
![FormName] = Screen.ActiveForm.Name
![RecordID] = Screen.ActiveForm.Controls(IDField).Value
![FieldName] = ctl.ControlSource
![OldValue] = ctl.OldValue
![NewValue] = ctl.Value
![Reason] = strReason
![Name] = CurrentUser()
.Update
End With
End If
End If
Next ctl
AuditChanges_Exit:
On Error Resume Next
rst.Close
cnn.Close
Set rst = Nothing
Set cnn = Nothing
Exit Sub
AuditChanges_Err:
MsgBox Err.Description, vbCritical, "ERROR!"
Resume AuditChanges_Exit
End Sub
и короткая линия в перед методом обновления каждого элемента управления на форме следующим образом
If Not Me.NewRecord Then Call AuditChanges("ID")
Моя проблема в том, что если я запустил базу данных на машине с Windows 7, все будет работать так, как должно.
У нас есть несколько компьютеров с XP, на которых должен быть доступ к дБ, и по какой-то причине я получаю ошибку несоответствия типа при выполнении кода, к сожалению, я не могу легко получить доступ к этим машинам, поскольку они находятся на другой сайт
Любые идеи?
Thanks
unfortunatley У меня нет доступа к машине XP они находятся на другом сайте 60 миль –
сделано спасибо за указатель Hans –
Возможно ли это версия ADO? Windows 7, где вы разрабатываете, имеет доступ к более поздней версии, чем машина XP. https://msdn.microsoft.com/en-us/library/windows/desktop/ms676506%28v=vs.85%29.aspx – Sobigen