Conexión ADO

13/07/2003 - 21:56 por Paco | Informe spam
Buenas noches:

Tengo una pregunta que seguro ha salido otras veces, pero no se darle
salida. He mirado la ayuda y me da error, a saber: Uso Access2000

Tengo este procedimiento:
Public Sub sBotonADO()
Dim sRec As New ADODB.Recordset
Dim sBase As New ADODB.Connection
Dim sDato As String
Dim sConecta As String
Dim sRuta As String
Dim sCon As String


sCon = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\archivo mis documentos\pruebas\pruebas.mdb;"
sBase.ConnectionString = sCon
'sBase.Open sCon

sDato = InputBox("Elige un Producto.", "Producto", "Mopa")
sConecta = "select * from producto where producto='" & sDato & "';"
sRec.Open sConecta, sCon, adOpenKeyset, adLockOptimistic, adCmdText
With sRec
If .EOF Then
MsgBox "Este producto NO aparece: " & sDato
Else
MsgBox "Este producto SI aparece: " & sDato
End If
End With
sRec.Close
sBase.Close

End Sub


El caso es que así como está el código, me da error en el Srec(recordset),
pero se me abre el inputbox. Si cambio a sbase.open sCon me da el mismo
error, en el mismo lugar y no me abre el inputbox.

"El usuario "Admin" de la máquina ".." ha colocado la base en un estado que
impide que pueda ser abierta ni bloqueada"

Deciros que vinculo el procedimiento a un botón de comando.

A ver dónde la estoy pifiando...

Gracias anticipadas.
 

Leer las respuestas

#1 Softjaen
14/07/2003 - 01:16 | Informe spam
"Paco" escribió:

El caso es que así como está el código, me da error en el Srec(recordset),
pero se me abre el inputbox. Si cambio a sbase.open sCon me da el mismo
error, en el mismo lugar y no me abre el inputbox.

"El usuario "Admin" de la máquina ".." ha colocado la base en un estado
que impide que pueda ser abierta ni bloqueada"




Hola, Paco:

El código es correcto y de una forma u otra se tenía que establecer la
conexión con la base de datos.

Desconozco exactamente el motivo de dicho error, pero me huele que el
problema puede deberse a que tienes bloqueada la base de datos en el equipo,
por el motivo que sea: apagado accidental del equipo, tienes abierta la base
de datos en Access o en el mismo proyecto de Visual Basic.

Comprueba que en la misma carpeta donde se encuentra la base de datos NO
EXISTA el archivo de información de bloqueo de la base de datos. Se trata de
un archivo con el mismo nombre de la base de datos pero con la extensión
*.ldb, en tu caso sería «pruebas.ldb». Si existe dicho archivo, y si nadie
está utilizando la base de datos, borra el archivo de información e intenta
ejecutar de nuevo el código. Tampoco estaría de más que compactaras la base
de datos desde el propio Access a fin de reparar posibles errores.

Un saludo.

Enrique Martínez
[MS MVP - VB]

Preguntas similares