• Đăng ký thư viện Tránh trường hợp lỗi ứng dụng khi sang máy khác
  • Đăng ký thư viện Tránh trường hợp lỗi ứng dụng khi sang máy khác

    tt1212 > 10-04-15, 04:57 PM

    Xin chào mọi người, mình viết ứng dụng trên một máy tính ở nhà, khi mang sang máy khác thì lại bị lỗi do thiểu thư viện hoặc là thư viện báo Missting vậy làm thế nào để giải quyết?
    Mình làm thế này có đúng không?
    Mình tạo một Forder Trong đó mình đặt ứng dụng, và các Activex ...dll;.occ.ild...
    Sau đó mình viết trong biến co Load Form
    Hàm copy file
    copy("..Đương dẫn tai thư mục", "ĐƯờng dẫn tại quy định window)
    ĐƯờng dẫn tại quy định window thông thường là C:\Progrm file \Command file \Off.....
    Sau đó mình đăng ký thư viện
    Shell "C:\WINDOWS\system32\regsvr32.exe /s strPath1, vbNormalNoFocus"
    Shell "C:\WINDOWS\system32\regsvr32.exe /s strPath2, vbNormalNoFocus"
    Shell "C:\WINDOWS\system32\regsvr32.exe /s strPath3, vbNormalNoFocus"
    Shell "C:\WINDOWS\system32\regsvr32.exe /s strPath4, vbNormalNoFocus"

    Rồi mình chạy hàm add thư viện
    Mã PHP:
    Sub AddReference()
            
    Dim strPath1 As String
    Dim strPath2 
    As String
    Dim strPath3 
    As String
    Dim strPath4 
    As String
    strPath1 
    CurrentProject.Path "\msado28.tlb"
    Access.References.AddFromFile strPath1
    'strPath2 = CurrentProject.Path & "\user32.dll"
    strPath3 = CurrentProject.Path & "\msjro.dll"
    Access.References.AddFromFile strPath3
    strPath4 = CurrentProject.Path & "\msadox28.tlb"
    '
    Access.References.AddFromFile strPath2

    Access
    .References.AddFromFile strPath4
    End Sub
    Mà bị lỗi mình chưa thành công vì trên win 64
    win 32 đểu bị lỗi mong mọi người giúp đỡ nhé 
  • RE: Đăng ký thư viện Tránh trường hợp lỗi ứng dụng khi sang máy khác

    maidinhdan > 10-04-15, 05:31 PM

    Không có file nên chưa test code trên như thế nào

    Xin gửi bạn ngâm cứu những 3 đoạn code sau đây, có thể hữu ít

    Code thứ nhất: Đăng ký thêm thư viện còn thiếu trong thư viện Access

    Mã PHP:
    Sub AddWS()
    ReferenceFromFile "C:\WINDOWS\System32\wshom.ocx"
    End Sub 
     
    Mã PHP:
    Function ReferenceFromFile(strFileName As String) As Boolean
      Dim ref 
    As Reference
          
             On Error 
    GoTo Error_ReferenceFromFile
             References
    .AddFromFile (strFileName)
     
            ReferenceFromFile True
          
      Exit_ReferenceFromFile
    :
     
            Exit Function
     
      
       Error_ReferenceFromFile
    :
     
            ReferenceFromFile False
             Resume Exit_ReferenceFromFile
    End 
    Function 

    Code thứ 2: Xóa thư viện
    Mã PHP:
     Sub DeleteRef(RefName)
     
     Dim ref As Reference
       
          
    'You need a reference to remove
          Set ref = References(RefName)
          References.Remove ref
       
      End Sub 

    Code thứ 3: Liệt kê danh sách các thư viện đã đăng ký
    Mã PHP:
     Sub ListRefs()
     
     Dim ref As Reference
       
      For Each ref In References
          Debug
    .Print RefFullName(ref.Name)
     
         Debug.Print "Built In: " ref.BuiltIn
          Debug
    .Print "Full Path: " ref.FullPath
          Debug
    .Print "GUID: " ref.Guid
          Debug
    .Print "Is Broken: " ref.IsBroken
          Debug
    .Print "Kind: " ref.Kind
          Debug
    .Print "Major (version number): " ref.Major
          Debug
    .Print "Minor (version number): " ref.Minor
          Debug
    .Print "Name: " ref.Name
          Debug
    .Print '=================================
      Next
       
      End Sub 

    Mã PHP:
     
      Function RefFullName
    (ReferenceName)
     
     'A mere handful of common names
      '
    These names are relevant to Access 2000 
      
    'and are for purposes of illustrating the name
      '
    as used in Reference Name and the library
      
    'name as it appears in Tools->References
      Select Case ReferenceName
          Case "Access"
              RefFullName = "Microsoft Access 9.0 Object Library"
          Case "ADODB"
              RefFullName = "Microsoft ActiveX Data Objects 2.1 Library"
          Case "CDO"
              RefFullName = "Microsoft CDO for Windows 2000 Library"
          Case "DAO "
              RefFullName = "Microsoft DAO 3.6 Object Library"
          Case "Excel"
              RefFullName = "Microsoft Excel 9.0 Object Library"
          Case "IWshRuntimeLibrary"
              RefFullName = "Windows Script Host Object Model"
          Case "Office"
              RefFullName = "Microsoft Office 9.0 Object Library"
          Case "Outlook"
              RefFullName = "Microsoft Outlook 9.0 Object Library"
          Case "stdole"
              RefFullName = "OLE Automation"
          Case "VBA"
              RefFullName = "Visual Basic For Applications"
          Case "VBIDE"
              RefFullName = "Microsoft Visual Basic for Applications Extensibility 5.3"
          Case "Word"
              RefFullName = "Microsoft Word 9.0 Object Library"
          Case Else
              RefFullName = "Not available in this very limited list."
      End Select
       
      End Function 

    Nguồn tham khảo: lessthan.com
  • RE: Đăng ký thư viện Tránh trường hợp lỗi ứng dụng khi sang máy khác

    hieuvn > 10-04-15, 06:30 PM

    tập dùng late bingding cho nó quen đi, mấy cái hàm đó hay bị lỗi lắm, viết cho 32bit sang 64bit là thấy cái cảnh lien 014
  • RE: Đăng ký thư viện Tránh trường hợp lỗi ứng dụng khi sang máy khác

    maidinhdan > 10-04-15, 08:12 PM

    Bạn hiếu có thể viết 1 bài hướng dẫn kg
    có demo càng tốt.
  • RE: Đăng ký thư viện Tránh trường hợp lỗi ứng dụng khi sang máy khác

    tt1212 > 11-04-15, 12:07 PM

    Mình chưa hiểu í bạn nói bạn có thể nói qua cho mình hiểu hơn không bạn Hiếu nhi? Quả là có nhiều vấn đề quá bạn a?
  • RE: Đăng ký thư viện Tránh trường hợp lỗi ứng dụng khi sang máy khác

    hieuvn > 11-04-15, 12:44 PM

    Hi, mình không giỏi viết tut nên tìm tài lieu trên mạng cho bạn hiểu khái niệm đã, và tất nhiên muốn sử dung thành thục thì phải thực hành mày mò rất nhiều
    link tham khảo:
    http://word.mvps.org/fAQs/InterDev/Early...inding.htm
  • RE: Đăng ký thư viện Tránh trường hợp lỗi ứng dụng khi sang máy khác

    tt1212 > 11-04-15, 03:54 PM

    Rất cảm ơn Hiếu, Cái này là dùng để khai báo và tạo các bảng hả bạn? Nó có phải là AOX không hay là DAO hay là ADO vậy bạn? Mình thấy lạ quá
    bạn có thể nói qua tác dung và các quá trình nó thực hiện hoạt động trong phần mềm mình không bạn, Hình như mình chỉ thấy tren Excel và word không thấy trên Access bạn nhỉ. Mong bạn hồi âm
  • RE: Đăng ký thư viện Tránh trường hợp lỗi ứng dụng khi sang máy khác

    Minh Tiên > 18-05-15, 04:41 PM

    (11-04-15, 12:44 PM)hieuvn Đã viết: Hi, mình không giỏi viết tut nên tìm tài lieu trên mạng cho bạn hiểu khái niệm đã, và tất nhiên muốn sử dung thành thục thì phải thực hành mày mò rất nhiều
    link tham khảo:
    http://word.mvps.org/fAQs/InterDev/Early...inding.htm
    Nếu có thể bạn "hieuvn" làm demo và Up để mọi người học hỏi với nhé !
    Thanks !
  • RE: Đăng ký thư viện Tránh trường hợp lỗi ứng dụng khi sang máy khác

    tt1212 > 18-05-15, 07:53 PM

    Maidinhdan và các cao thủ thân mền hiện nay mình làm một ứng dụng nhưng đau đầu là sang máy khác thì bị lỗi mà ở máy mình thì chạy rất OK
    Trong diễn đàn hôm trước thấy Maidinhdan có mấy hàm và thủ tục post lên nhưng thật sự mình không biết nó dùng thế nào?
    bạn có thể hướng dẫn mình không bạn nhỉ
    ai có cách giải quyết triệt để không nhỉ? hướng dẫn mình với. Mình xin cảm ơn nhiều
  • RE: Đăng ký thư viện Tránh trường hợp lỗi ứng dụng khi sang máy khác

    ledangvan > 18-05-15, 09:51 PM

    (10-04-15, 04:57 PM)tt1212 Đã viết: Xin chào mọi người, mình viết ứng dụng trên một máy tính ở nhà, khi mang sang máy khác thì lại bị lỗi do thiểu thư viện hoặc là thư viện báo Missting vậy làm thế nào để giải quyết?
    Mình làm thế này có đúng không?
    Mình tạo một Forder Trong đó mình đặt ứng dụng, và các Activex ...dll;.occ.ild...
    Sau đó mình viết trong biến co Load Form
    Hàm copy file
    copy("..Đương dẫn tai thư mục", "ĐƯờng dẫn tại quy định window)
    ĐƯờng dẫn tại quy định window thông thường là C:\Progrm file \Command file \Off.....
    Sau đó mình đăng ký thư viện
    Shell "C:\WINDOWS\system32\regsvr32.exe /s strPath1, vbNormalNoFocus"
    Shell "C:\WINDOWS\system32\regsvr32.exe /s strPath2, vbNormalNoFocus"
    Shell "C:\WINDOWS\system32\regsvr32.exe /s strPath3, vbNormalNoFocus"
    Shell "C:\WINDOWS\system32\regsvr32.exe /s strPath4, vbNormalNoFocus"

    Rồi mình chạy hàm add thư viện
    Mã PHP:
    Sub AddReference()
            
    Dim strPath1 As String
    Dim strPath2 
    As String
    Dim strPath3 
    As String
    Dim strPath4 
    As String
    strPath1 
    CurrentProject.Path "\msado28.tlb"
    Access.References.AddFromFile strPath1
    'strPath2 = CurrentProject.Path & "\user32.dll"
    strPath3 = CurrentProject.Path & "\msjro.dll"
    Access.References.AddFromFile strPath3
    strPath4 = CurrentProject.Path & "\msadox28.tlb"
    '
    Access.References.AddFromFile strPath2

    Access
    .References.AddFromFile strPath4
    End Sub
    Mà bị lỗi mình chưa thành công vì trên win 64
    win 32 đểu bị lỗi mong mọi người giúp đỡ nhé 

    Có thể bạn khai báo sai ở câu lệnh Shell ở trên : Dấu " phải đặt trước , vbNormalNoFocus

    Shell "C:\WINDOWS\system32\regsvr32.exe /s C:\KETOANH&V\.ocx", vbNormalNoFocus
    Shell "C:\WINDOWS\system32\regsvr32.exe /s C:\KETOANH&V\comdlg32.ocx", vbNormalNoFocus
    Shell "C:\WINDOWS\system32\regsvr32.exe /s C:\KETOANH&V\dmocx.dll", vbNormalNoFocus
    Shell "C:\WINDOWS\system32\regsvr32.exe /s C:\KETOANH&V\FM20.DLL", vbNormalNoFocus
    Shell "C:\WINDOWS\system32\regsvr32.exe /s C:\KETOANH&V\MSADODC.OCX", vbNormalNoFocus
    Shell "C:\WINDOWS\system32\regsvr32.exe /s C:\KETOANH&V\msadox.dll", vbNormalNoFocus
    Shell "C:\WINDOWS\system32\regsvr32.exe /s C:\KETOANH&V\MSCAL.OCX", vbNormalNoFocus

    Bạn thử lại xem có được không