Option Explicit 'Modulo para Visual Basic 6 Private Const MAX_FILENAME_LEN = 256 Private Declare Function FindExecutableA Lib "shell32.dll" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long Function ExisteAccess(UnaRutaBd As String) As Boolean Dim I As Integer, S2 As String Dim Buho As String S2 = String(MAX_FILENAME_LEN, 32) & Chr$(0) I = FindExecutableA(UnaRutaBd & Chr$(0), vbNullString, S2) If I > 32 Then Buho = Left$(S2, InStr(S2, Chr$(0)) - 1) If Mid(Buho, InStrRev(Buho, "\") + 1) = "MSACCESS.EXE" Then ExisteAccess = True Else ExisteAccess = False End If Else ExisteAccess = False End If End Function 'Otra mas Function ExisteAccess1() As Boolean Dim ObjetoAccess As Object On Error GoTo Etiqueta_Error Set ObjetoAccess = CreateObject("Access.Application") Set ObjetoAccess = Nothing ExisteAccess1 = True Etiqueta_Error: MsgBox Err.Number 'aqui recoge el error que sea en una maquina donde no tengas 'access instalado, ya que no sé que error saldrá si no existe el Access 'pues yo en todas mis maquinas lo tengo. Yo creo que es el 429...pero pruebalo End Function Function probando1() MsgBox ExisteAccess1 End Function Function probando() MsgBox ExisteAccess(App.Path & "\tubase.mdb") End Function