error en 424. ya no se que hacer.

mundofin
03 de Enero del 2009
Hola.

Quizás os entre la risa pero... ¿qué quiere decir el mensaje “error 424 en tiempo de ejecución. Se requiere un objeto”?? En serio, no lo sé.
Resulta que estoy empezando con bases de datos y siguiendo el manual de un libro he conseguido, con el datacontrol, enlazar una bd en access. He seguido al 100% los pasos que se indican en el libro para crear un botón de búsqueda y he puesto el código que viene en el libro, el problema que cuado le doy a ejecutar para ver si funciona el invento, siempre me sale el dichoso mensaje. Lo curioso es que el ejemplo que viene en el CD-ron del libro si funciona (que por cierto en el ejemplo toma la base de datos “biblio.mdb” que viene en el directorio de VB 6) y lo he hecho todo igual excepto creando una nueva bd y sustituyendo la palabra “biblio.mdb” por “contactos.mdb” que es la que yo he creado.
Como ya he dicho la base “contactos” si la vincula, incluso deja moverme por los registros con los botones del datacontrol, pero cuado quiere hacer una búsqueda, o agregar un nuevo registro, siempre sale error 424.

Por favor, necesito vuestra ayuda. Por si sirve de algo os pongo el codigo del botón búsqueda tal y como viene en el manual.

Private Sub cmdBuscar_Click()
mensaje$ = "Introduzca el título completo del libro."
'obtiene la cadena que se utilizará en la búsqueda del título
SearchStr$ = InputBox(mensaje$, "Búsqueda del libro")
datBiblio.Recordset.Index = "Title" 'usa título
datBiblio.Recordset.Seek "=", SearchStr$ 'y busca
If datBiblio.Recordset.NoMatch Then 'si no encuentra ninguno
datBiblio.Recordset.MoveFirst 'va al primer registro.
End If
End Sub

Como ya he dicho este código funciona, excepto cuando lo traslado a mi creación que es exactamente igual excepto cambiado la bd Biblio por la mia.

Gracias de antemano.
Por cierto, también agradecería si me pudieran mandar algún otro código o sistema de búsqueda, agregar y eliminar registros.

Gracias nuevamente.


tetolie
03 de Enero del 2009
Hola, puede que eso se deba a que un campo que tienes en la bd no coincide con uno al que estas haciendo referencia checa bien eso.

aqui te mando un ejemplo de busqueda

puedes poner un textbox para darle por ejemplo el titulo del libro y cada vez que cambia el textbox o si quieres pon un boton para ejecutar la busqueda, este ejemplo es para cada vez que cambia el textbox mediante un LIKE

Private Sub txtcliente_Change()
Dim rstCL As New ADODB.Recordset

strSQL = "SELECT placa, cliente, forma " & _
"FROM placa " & _
"WHERE cliente " & _
"LIKE " & "'%" & Trim(txtcliente.Text) & "%'"
'"OR forma " & _
'"LIKE " & "'%" & Trim(txtforma.Text) & "%'"


rstCL.Open strSQL, conbd, adOpenDynamic, adLockOptimistic
If Not rstCL.EOF Then 'Verifica la existencia de Datos en el Recordset
If Not IsNull(rstCL) Then 'Verifica que los datos no sean NULL
MSFXG.Rows = 2
rstCL.MoveFirst
Do While Not rstCL.EOF
datos = rstCL!placa & Chr(9) & rstCL!cliente & Chr(9) & rstCL!forma
MSFXG.AddItem datos
rstCL.MoveNext
Loop
End If
Else
MSFXG.Rows = 2
MsgBox "No hay placas dadas de alta"
conbd.Close

Exit Sub
End If

End sub


el resultado de la busqueda lo meto a un msfg alli checa donde lo quieres meter tu, bueno espero y te ayude...

Marta
03 de Enero del 2009
Hola

¿puede ser que el texto del inputbox esté vacío? A mí me pasaba lo mismo cuando intentaba leer el texto de un combobox que no tenía nada seleccionado.

Un saludo

Anonimo
03 de Enero del 2009
Yo tambien tengo un error 424 y no se que hacer, a ver si alguien me puede ayudar. Mi problema es que el programa va a ser ejecutado desde un cd y no se cual es su ubicacion, por eso he tengo un codigo para adivinar la ubicacion, pero cuando tengo que ponerle a la base la ubicacion me sale todo bien, el databasename es al ubicacion pero despues al utilizar la base me da un error. Aqui pongo el codigo:
Private Sub Form_Initialize()
Dim Directorio As String
ChDir App.Path
ChDrive App.Path
Directorio = App.Path
If Len(Directorio) > 3 Then
Directorio = Directorio & "db1.mdb"
End If
Data1.Connect = Directorio
Data1.RecordSource = "articulo"
Form2.Visible = False
Data1.Recordset.MoveFirst
While Not Data1.Recordset.EOF
lista.AddItem Data1.Recordset.Fields![nombre].Value
Data1.Recordset.MoveNext
Wend
Data1.Recordset.MoveFirst
lista.Text = Label3.Caption
End Sub

A ver si alguien me puede ayudar porfavor.
Gracias