none
Compactar e ou reparar BD Access no VB.NET 2010 RRS feed

  • Pergunta

  • Bom dia a todos!

     

    Coloquei a rotina de compactação de BD na minha aplicação, só que esta apresentando erros, como segue:

     Public Sub CompactRepairAccessDB(ByVal sDBFILE As String, Optional ByVal sPASSWORD As String = "")
       Dim sDBPATH As String, sDBNAME As String, sDB As String, sDBtmp As String
    
       sDBNAME = sDBFILE 'extrapulate the file name
       Do While InStr(1, sDBNAME, "\") > 0
         sDBNAME = Right(sDBNAME, Len(sDBNAME) - InStr(1, sDBNAME, "\"))
       Loop
       'get the path name only
       sDBPATH = Left(sDBFILE, Len(sDBFILE) - Len(sDBNAME))
    
       sDB = sDBPATH & sDBNAME
       sDBtmp = sDBPATH & "tmp" & sDBNAME
    
       'Call the statement to execute compact and repair...
       If sPASSWORD > "" Then
         Call DBEngine.CompactDatabase(sDB, sDBtmp, dbLangGeneral, , ";pwd=" & sPASSWORD)
       Else
         Call DBEngine.CompactDatabase(sDB, sDBtmp)
       End If
       'wait for the app to finish
       DoEvents()
       'remove the uncompressed original
       Kill(sDB)
       'rename the compressed file to the original to restore for other functions
        Name sDBtmp As sDB
      End Sub

    Como corrigí-los, por favor peço ajuda!

    Obrigado

     

    Dilson


    Dilson J. Hasselmann Desenvolvedor VB.NET
    quinta-feira, 9 de junho de 2011 14:07

Respostas

Todas as Respostas

  • Bom dia a todos!

     

    Coloquei a rotina de compactação de BD na minha aplicação, só que esta apresentando erros, como segue:

     

     Public Sub CompactRepairAccessDB(ByVal sDBFILE As String, Optional ByVal sPASSWORD As String = "")
      Dim sDBPATH As String, sDBNAME As String, sDB As String, sDBtmp As String
    
      sDBNAME = sDBFILE 'extrapulate the file name
      Do While InStr(1, sDBNAME, "\") > 0
       sDBNAME = Right(sDBNAME, Len(sDBNAME) - InStr(1, sDBNAME, "\"))
      Loop
      'get the path name only
      sDBPATH = Left(sDBFILE, Len(sDBFILE) - Len(sDBNAME))
    
      sDB = sDBPATH & sDBNAME
      sDBtmp = sDBPATH & "tmp" & sDBNAME
    
      'Call the statement to execute compact and repair...
      If sPASSWORD > "" Then
       Call DBEngine.CompactDatabase(sDB, sDBtmp, dbLangGeneral, , ";pwd=" & sPASSWORD)
      Else
       Call DBEngine.CompactDatabase(sDB, sDBtmp)
      End If
      'wait for the app to finish
      DoEvents()
      'remove the uncompressed original
      Kill(sDB)
      'rename the compressed file to the original to restore for other functions
      Name sDBtmp As sDB
     End Sub

     

    "DBEngine" is not declared. It may be inaccessible due to its protection level.
    ---------
    Generate method stub for "DBEngine" in "Minha Aplicação".

    Como corrigí-los, por favor peço ajuda!

    Obrigado

     

    Dilson


    Dilson J. Hasselmann Desenvolvedor VB.NET


    Dilson J. Hasselmann Desenvolvedor VB.NET
    quinta-feira, 9 de junho de 2011 14:16
  • Dilson,

    Dê onde você tirou esse DBEngine? Você pegou o exemplo em algum site? Provavelmente é alguma biblioteca que alguém construiu para fazer essa operação e você deve ter esquecido de baixar e referenciar essa biblioteca... Você poderia postar uma referência de onde você obteve esse código?


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    sexta-feira, 10 de junho de 2011 00:14
    Moderador