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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Проблемма с кодировкой
 
 автор: user12345   (12.11.2011 в 09:41)   личное сообщение
 
 

Добрый день.
Недавно у одного пользователя переустановил систему (Windows XP).
Перед этим на компьютере работала программа, написанная на access-е (2003).
После установки новой системы программа стала работать с ошибками, в тех местах где используется код на VB при запуске программа дает какую ту непонятную ошибку, что то про кодировку.
На других машинах все работает нормально.
Может кто то сталкивался с такой проблемой, если да то пожалуйста, подскажите как его решить.

  Ответить  
 
 автор: час   (12.11.2011 в 10:02)   личное сообщение
 
 

Версия XP - английская?

  Ответить  
 
 автор: kot_k_k   (12.11.2011 в 10:27)   личное сообщение
 
 

воткни ему МУИ - в поиграй кодировкой, хотя по идее акс английский (американский) как ни крути все остальное это наслоение. так что должно дуплить. возможно что-то было на старом ХР доустановлено, на что он ругается - типа шрифт уйгуров с дагестанской литерацией

  Ответить  
 
 автор: user12345   (13.11.2011 в 19:16)   личное сообщение
 
 

Нашел проблему, решил, а почему так получился для меня остался так и непонятен.
Дело в том что в VB не знаю почему не было включено библиотека "Microsoft Access Object Library". Пришлось снова взять исходник (файл mdb), включить библиотеку и снова преобразовать его в mde.
У меня такой вопрос, можно ли при входе в программу с помощью кода проверить подключение соответствующих библиотек автоматически исправить (подключить)

  Ответить  
 
 автор: час   (13.11.2011 в 19:27)   личное сообщение
 
 

можно тока не помню как.
Если найду - выложу.
подключить DAO
Public Function CheckReferenceDAO() As Boolean
'-------------------------------------------------------------------------------
On Error GoTo CheckReferenceDAO_Error
'-------------------------------------------------------------------------------
CheckReferenceDAO = False

Dim ref As Reference, i As Integer
Const strDAOGUID = "{00025E01-0000-0000-C000-000000000046}"
'Const strExcelReferenceName = "*DAO*"
    
 For Each ref In References
  If ref.BuiltIn Then GoTo refNext
  If ref.IsBroken Then
    References.Remove ref
    GoTo refNext
  End If
'  If ref.Name Like strExcelReferenceName Then
  If InStr(1, ref.NAME, "DAO", vbTextCompare) > 0 Then
    CheckReferenceDAO = True
    Exit Function
  End If
refNext:
 Next ref

On Error Resume Next
 For i = 5 To 2 Step -1
    References.AddFromGuid strDAOGUID, 1, i
  If Err = 0 Then
    CheckReferenceDAO = True
   Exit Function
  End If
    Err.Clear
 Next i
 
'-------------------------------------------------------------------------------
On Error GoTo 0
Exit Function
CheckReferenceDAO_Error:
Call Zapis_ERR("ssilki" & "ïðîöåäóðà->" & "CheckReferenceDAO", Err.Number, Err.Description)
End Function

  Ответить  
 
 автор: час   (13.11.2011 в 19:42)   личное сообщение
 
 

вот ещё то же самое
для двух ссылок

Function JS_ReferencesRestore()
Dim MyReference As Reference
'Массив на 4 ссылки
Dim RefGUID(1, 5) As String
Dim i As Integer

'Набивка массива
'DAO 3.6

RefGUID(0, 0) = "{00025E01-0000-0000-C000-000000000046}"
RefGUID(0, 1) = "DAO"
RefGUID(0, 2) = 5
RefGUID(0, 3) = 0
RefGUID(0, 4) = "DAO360.DLL"
RefGUID(0, 5) = "Microsoft DAO 3.6 Object Library"

 

'OLE Automation

RefGUID(1, 0) = "{00020430-0000-0000-C000-000000000046}"
RefGUID(1, 1) = "stdole"
RefGUID(1, 2) = 2
RefGUID(1, 3) = 0
RefGUID(1, 4) = "STDOLE2.TLB"
RefGUID(1, 5) = "OLE Automation"

For i = 0 To 1
    On Error Resume Next
    Set MyReference = References(RefGUID(i, 1))
    'Если ссылка не установлена - пытаемся восстановить из реестра
    If Err > 0 Then
        Err.Clear
        Set MyReference = References.AddFromGuid(RefGUID(i, 0), RefGUID(i, 2), RefGUID(i, 3))
            'Если ссылка не прописана в реестре
            If Err > 0 Then
                GoTo For_Err
            End If
    End If
    'Если версии требуемой и установленной совпадают с уже установленной ссылкой
    If MyReference.guid = GUIDFromString(RefGUID(i, 0)) Then
        'MsgBox RefGUID(i, 4) & " - " & RefGUID(i, 4) & " у порядке!"
        GoTo ForBye
    Else 'Если версии требуемой и установленной НЕ совпадают
        References.Remove MyReference 'Удаляем установленную
        'Пытаемся подключить требуюмую
        Set MyReference = References.AddFromGuid(RefGUID(i, 0), RefGUID(i, 2), RefGUID(i, 3))
            If Err > 0 Then
                GoTo For_Err
            End If
    End If
    'Проверяем "Не отвалилась ли???"
    If MyReference.IsBroken = True Then
        MsgBox "Reference to: " & RefGUID(i, 5) & " is broken"
    End If
    GoTo ForBye

For_Err:
    MsgBox "Can't find file: " & RefGUID(i, 4) & " for reference: " & RefGUID(i, 5)

ForBye:
Next i

Set MyReference = Nothing
End Function

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